본문 바로가기
AI_basic/ML

[ML] GridSearchCV - 교차 검증과 최적 하이퍼 파라미터 튜닝을 같이

by hits_gold 2021. 7. 21.
반응형

GridSearchCV란 교차검증을 기반으로 하이퍼 파라미터의 최적 값을 찾게 해주는 모듈입니다.

이 모듈은 cross_validation을 위한 학습/테스트 세트로 자동으로 분할한 뒤에 하이퍼 파라미터 그리드에 기술된 모든 파라미터를 순차적으로 적용해 최적의 파라미터를 찾을 수 있게 해줍니다.

 

붗꽃 품종 예측 예제를 통해 살펴보겠습니다.

위 params에 정리된 하이퍼 파라미터들의 경우의 수에 따라 6가지 조합이 나오고, 각 조합마다의 교차 검증(cv = 3)을 하여 평균 정확도(설정된 score)를 계산합니다. 위의 경우 4번 5번 행의 조합이 공동 1위이고, 이 때 평균 검증 정확도는 0.975로 계산되었습니다.

 

GridSearchCV 주요 파라미터

  1. estimator : classifier, regressor, pipeline

  2. param_grid : "파라미터명"(key) + 파라미터 값(list) 로 이루어진 딕셔너리

  3. cv : 교차검증을 위한 fold 개수

  4. refit : default = True, 최적의 하이퍼 파라미터를 입력된 estimator 객체에 재학습시킴

 

GridSearchCV객체에서의 속성

  1. best_params_ : 최고 성능을 나타낸 하이퍼 파라미터 조합

  2. best_score_ : best_params_에 따른 평과 결과 값

  3. best_estimator : GridSearchCV의 refit값이 True일 때 최적 하이퍼파라미터로 학습한 estimator가

     저장되어있음

 

최적 파라미터로 학습된 estimator를 별도의 검증 데이터에 대해 예측하고 성능을 평가해본 결과,

accuracy가 약 0.9667로 평가되었습니다.

 

 GridSearchCV를 이용해 최적 하이퍼 파라미터 튜닝을 한 후 별도의 테스트 세트에서 평가하는 것이 일반적인

머신러닝 모델 적용 방법입니다.

 

 

 

내 생각

 params에 넣을 하이퍼 파라미터의 값들도 내가 직접 넣어야되는데 그 기준이 되는 것이 있는지 알아보고, 

계산이 오래걸리는 모델의 경우 파라미터 조합별로 계산할 때 더 오래 걸리게 될텐데 그 떄는 어떻게 해야되나 궁금해졌다.

 

반응형