2.2.4_Model_Selection

chang·2021년 2월 14일
0

부트캠프

목록 보기
23/28

[키워드]

  • Cross Validation

    RandomizedSearchCV / GridSearchCV

  • Hyperparameter tuning

[학습내용]

  • Cross Validation(k-fold-cv)의 개념과 의의

데이터가 충분하지 않아 validation set을 따로 뽑아내기 힘들 때 기존 train set을 k개로 등분해 k-1개를 train set처럼 사용하고 나머지 한 개를 validation set처럼 사용하는 과정을 나눈 k개의 경우에 대해 적용하는 것

  • 데이터의 크기가 충분하지 않아 train / validation set으로 나누어 train set으로 모델학습을 하거나 validation set으로 성능 평가/추정이 부정확할 경우 cv를 통해 해소 ~ 데이터 크기의 문제 해소
  • 어떤 모형으로 학습하고 또 그 모형에 어떤 하이퍼파라미터 값을 넣어야 최적의 모형을 만들 수 있는지 cv를 통해 모델 선택에 도움 ~ 모델 선택의 문제 해소
  • RandomizedSearchCV
from sklearn.model_selection import RandomizedSearchCV
pipe = make_pipeline(...)
dists = {..} # 
clf = RandomizedSearchCV(
    pipe, 
    param_distributions=dists, 
    n_iter= 00, # 반복 횟수 
    cv= 00, # folds 수
    scoring='00', # 평가 지표
    random_state = 00
)
clf.fit(X_train, y_train);
clf.best_params_ # 최적 모델의 하이퍼파라미터 조합
clf.predict(X_test) # test set을 넣은 예측값 / refit = True가 default라 바로 넣어도 되는 듯 싶다
  • GridSearchCV
from sklearn.model_selection import GridSearchCV
pipe = make_pipeline(...)
dists = {..} # 그리드로 조합할 하이퍼파라미터의 값 설정
clf_grid = GridSearchCV(
    pipe,
    param_grid=dists_grid, 
    cv= 00, # folds 수 
    scoring='00' # 평가지표
)
clf_grid.fit(X_train, y_train) # train set 통한 모형
clf_grid.best_params_ # 최적 모델의 하이퍼파라미터 조합
clf_grid.predict(X_test) # test set 통한 예측
  • 최적화 vs 일반화
    • 최적화 : train set에서 더 나은 성능 위해 모델 조정하는 과정
    • 일반화 : train set 이외의 데이터에서 보이는 성능의 정도

[찾아볼 내용]👀

  • 사용해 본 모델들의 하이퍼파라미터들 정리
  • cv의 scoring에 들어갈 평가지표들의 종류와 결과해석

0개의 댓글