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에 넣을 하이퍼 파라미터의 값들도 내가 직접 넣어야되는데 그 기준이 되는 것이 있는지 알아보고,
계산이 오래걸리는 모델의 경우 파라미터 조합별로 계산할 때 더 오래 걸리게 될텐데 그 떄는 어떻게 해야되나 궁금해졌다.
'AI_basic > ML' 카테고리의 다른 글
[ML] 앙상블 학습의 종류 (0) | 2021.07.22 |
---|---|
[ML] 데이터 전처리 - 원-핫 인코딩(pd.get_dummies) (0) | 2021.07.21 |
[ML] 지도학습/분류 결정트리 Decision Tree (0) | 2021.07.13 |
[ML] 분류모델의 성능 평가 지표 Part3. F1_score, ROC_curve and AUC (0) | 2021.07.07 |
[ML] 분류모델의 성능 평가 지표 Part.2 정밀도/재현율 트레이드오프(Trade-off) (0) | 2021.07.07 |