ML

Tuning The Hyper Parameter - GridSearchCV

성지우 2024. 1. 28. 14:38

Hyper Parameter

사용자의 입력값

우리가 설정 가능한 입력값

사용할 데이터에 따라 가장 적합한 모델, 그 모델의 하이퍼 파라미터 값이 다름 

-> 데이터마다 파라미터 입력값을 하나하나 찾아줘야함 => 하이퍼 파라미터 튜닝

 

# 직접 입력값을 하나하나 넣고 결과를 도출해보기 전까지 어떤 입력값이 좋을지 전혀 예측할 수 없음

 

GridSearchCV

교차검증 + 하이퍼 파리미터 튜닝

머신러닝에서 모델의 성능향상을 위해 쓰이는 기법 중 하나

사용자가 직접 모델의 하이퍼 파라미터의 값을 리스트로 입력하면 값에 대한 경우의 수마다 예측성능을 측정평가하여 비교하면서 최적의 하이퍼 파라미터 값을 찾는 과정을 진행 

=> 검증하고 싶은 하이퍼 파라미터들의 수치를 정해주고 그 조합을 모두 검증,

실험하려는 하이퍼파라미터와 값 범위를 지정하면 교차검증을 사용해 모든 조합을 수행

>> 설정한 모든 가능한 파라미터 조합을 다 시험해보는 방법

 

sklearn 공식사이트 - https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html#sklearn.model_selection.GridSearchCV

 

 

GridSearchCV의 parameters

  • estimator : 적용 알고리즘 모델 
  • param_grid : 튜닝을 위한 대상 파라미터, 사용될 파라미터를 딕셔너리 형태로 넣어
  • scoring : 예측 성능을 측정할 평가 방법 - 분류='accuracy' , 'f1' / 회귀 = 'neg_mean_squared_error'. 'r2'
  • cv : 교차검증에서 몇개로 분할되는지 가정 (default : cv = 3), 정수 넣으면 K겹 교차검증 = KFold(k)
  • refit : True로 하면 최적의 하이퍼 파라미터 찾아 estimator를 재학습시킴 (default = True)

 

GridSearchCV의 attributes

  • cv_results_ : 결과를 데이터 프레임으로 변환, fit시킨 결과, 파라미터 조합별 결과 조회
  • best_score_ : 최고 점수 출력
  • best_params_ : 최적의 파라미터 출력
  • best_estimator_ : 가장 좋은 성능을 낸 모델 

https://datarian.io/blog/grid-search-random-search

Grid를 촘촘하게 만들면 어떨까?

하이퍼파라미터가 1개인 경우에는 촘촘하게 만드는게 나쁘지 않을 수 있으나 여러개 일 경우 경우의 수가 매우 커짐

-> 연산의 양이 매우 증가

 


참고 및 출처 : https://dacon.io/codeshare/4568 , https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html#sklearn.model_selection.GridSearchCV