AIB Section2. n214 로지스틱 회귀(02/25)

Logistic regression

  1. train/validate/test
  2. 분류와 회귀문제의 차이점
  3. 로지스틱 회귀 이해 및 사용

1. Train/ Validate/ Test

  • Train data = 모델을 학습시키는 데이터
  • Validdate data = 학습된 모델을 검증하는 데이터
  • Test data = 학습/ 검증된 모델의 성능을 평가하는 데이터

2. 분류문제와 회귀문제의 차이점

  • 회귀문제는 보통 타겟변수를 타겟의 평균으로 기준모델로 설정한다.

  • 분류문제는 보통 타겟변수를 타겟에서 가장 빈번하게 나타나는 범주를 기준모델로 한다.

  • 분류문제

    #타겟에서 가장 빈번하게 나오는 범주
    major = y_train.mode()
    #타겟 샘플 수 만큼 0이 담긴 리스트 만들기
    y_pred = [major] * len(y_train)  
    #정확도 평가
    #Validate data도 동일하게 진행
    from sklearn.metrics import accuracy_score
    print("training accuracy: ", accuracy_score(y_train, y_pred))
    #Age, Cabin의 결측치를 평균 값으로 채웁니다.
    from sklearn.impute import SimpleImputer
    #결측치, 평균으로 채우기
    imputer = SimpleImputer() 
    X_train_imputed = imputer.fit_transform(X_train)
    X_val_imputed = imputer.transform(X_val)

3. 로지스틱회귀 모델

  • 로지스틱 회귀
#로지스틱 회귀 모델
from sklearn.linear_model import LogisticRegression
logistic = LogisticRegression()
logistic.fit(X_train_imputed, y_train)
#학습 정확도 평가
y_pred = logistic.predict(x_train_imputed)
print("training accuracy: ", accuracy_score(y_train, y_pred))
#검증 정확도 평가
y_pred = logistic.predict(x_val_imputed)
print("training accuracy: ", accuracy_score(y_val, y_pred))
  • 스케일링
    1. Standard Scaler
    각 피쳐의 평균을 0, 분산을 1로 맞춤  
    2. Robust Scaler
    스탠다드 스케일러와 비슷하다. 하지만 평균, 분산 대신 중위값과 Qualtiled를 사용한다. 이상치에 민간하지 않다.
    3. MinMax Scaler
    모든 피쳐가 0과 1사이에 위치하게 만든다. 데이터가 2차원 셋일 경우, 모든
    데이터는 x축의 0과 1사이에, y추의 0과 1사이에 위치하게 됩니다.
    4.MaxAbs Scaler
    데이터가 -1과 1사이에 위치하게 만든다.
    * 다중공산성은 PCA로 해결
    * 결론적으로 모든 스케일러 처리 전에는 아웃라이어 제거 선행

4.회고

  • 당일에 처리해야했는데 안했다... 0228에 처리 중이다. 안좋다... 열심히 하자!! 귀찮아도 계속해야 도움이 된다. 미루면 더 하기 힘들어진다. 열심히 하자!

좋은 웹페이지 즐겨찾기