본문 바로가기
코딩 독학/코딩 에러

2장복습

by 효니루 2020. 9. 21.

1. 교차검증

사이킷런 model selection 모듈

1. kfold = KFold(n_splits= n)  -> kfold.split(X)  : 데이터셋을 n개의 폴드로 나누고 학습/검증셋을 돌려가며 교차검증

2. skf = StratifiedKFold(n_splits=n) -> skf.split(X,y) : kfold와 같지만, 레이블을 학습/검증셋에 균일하게 배분

-> for문 사용해서 학습/데이터세트 분리하고 estimator를 fit하고 predict하여 accuracy구하기

3. cross_val_score(estimator, X, y, scoring=None, cv=None) : 폴드세트나누기, 학습/예측/평가까지 한꺼번에!

4. GridSearchCV(dtree, param_grid, scoring=None, refit=True, cv=None)

   parameters = {'max_depth': [a, b, c...], 'min_samples_split': [x, y, ...]

   train_test_split으로 데이터분리하고 GridSearchCV해준 dtree에 학습데이터로 fit해서 해당 데이터에 대해 각각의 하이퍼파라미터들을 교차검증하고 최적화.

: 분류/회귀 알고리즘(dtree)을 내가 정한 param_grid 하이퍼파라미터들 중에서 최적화하고 교차검증까지 해줌

-> 결과는 .cv_results_에 dic형태로 저장됨

 

2. 데이터전처리

  • 결손값(null/NaN) 처리

  • 데이터인코딩 : 문자형 카테고리형 속성을 숫자값으로 변환

    사이킷런 preprocessing 모듈

    1) 레이블인코딩 : 각 피처에 고유인덱스 부여
        * LabelEncoder()  ,  1d array를 넣음

    2) 원핫인코딩 : 각 피처에 해당하는 컬럼을 만들고 해당피처컬럼에만 1, 나머지는 0으로 표시 (인덱스간의 대소비교를 막음)
        * LabelEncoder()로 피처에 인덱스 부여후 OneHotEncoder()
        * 2d array를 넣음

    3) 판다스 get_dummies(데이터프레임) : 원핫인코딩을 df에서 해줌

  • 피처스케일링 : 

    사이킷런 

    1) StandardScaler : 평균 0 분산 1인 정규분포로 변환
    2) MinMaxScaler : 데이터값을 모두 0~1 값 사이로 변환 (또는 -1~1)

댓글