데이터의 특성을 이해하고, 그에 맞는 모델과 최적의 하이퍼파라미터를 바로 구할 수 있으면 좋겠지만, 인간지능으로 한계가 있고 어느정도 empirical한 영역이기 때문에 컴퓨터에게 튜닝을 맡긴다.
sklearn.model_selection
의
GridSearchCV
각 parameter의 후보를 정하고, 모든 조합을 계산
RandomizedSearchCV
각 parameter의 후보를 정하고, 랜덤하게 선택한 조합을 계산
GridSearchCV(estimator, param_grid, scoring, cv)
param_grid에는 hyperparameter (string) 와 list 의 dictionary를 사용한다.
- 이 둘은 검색의 개념이다.
- .best_params_
로 parameter 얻음
GridSearch에서는 모든 조합을 다 계산하고, RandomSearch에서는 성능이 나오지 않았던 hyperparameter 주변도 계산하게 된다.
Bayesian optimization은 이전에 계산한 결과에 근거해, 성능이 좋을 가능성이 높은 hyperparameter를 bayesian 확률로 탐색한다. 😮
pip install bayesian-optimization
from bayes_opt import BayesianOptimization
hyperopt
https://wooono.tistory.com/102
xgboost 모델의 hyperparameter
전체적인 흐름을 먼저 설정
학습률, decision tree 개수 등
eta
num_round
모델의 복잡성 / 랜덤성을 제어하는 hyperparameter
max_depth
min_child_weight
gamma
alpha
lambda
decision tree의 잎 가중치 정규화 강도
subsample
랜덤성 추가 - 오버피팅 억제
ing...