LightGBM
LightGBM 에서는 어떤 파라매터를 주로 튜닝해야 하는가?
대회 코드를 살펴보면서 사람들이 튜닝하는 파라매터를 적어봤다. 괄호안 숫자는 대회 별 참조된 횟수를 의미한다. 즉, 많이 참조할수록 높은 값이다.
lambda_l1(3)lambda_l2(3)num_leaves(3)learning_rate(3)num_leaves(2)feature_fraction(3)bagging_fraction(3)bagging_freq(2)n_estimators(2)early_stopping_roundmin_child_samples(3)max_depthsubsampleis_unbalance: class 분류 문제를 풀때 클래스가 불균형한 상태인 경우 사용.scale_pos_weight와 같이 사용하면 안된다.- 전체적인 모델의 퍼포먼스를 향상시킬 순 있지만, 개별적인 class 의 확률을 계산하는데는 퍼포먼스를 떨어트릴 수 있다는 이슈가 있다고 한다.
- 이 옵션을
true로 설정하면서 dataset 에 weight 를 설정할 수 있다. 보다 섬세한 설정 (fine-grained control) 을 위해서라고 한다 (참고: ICR: optimized LGB [LB 0.17] - [CV 0.18] | Kaggle).
scale_pos_weight: positive class 의 가중치 weight- 이것도
is_unbalance와 비슷한 부작용이 있다고 한다.
- 이것도
B) XGBoost
learning_ratemax_depthcolsample_bytreesubsampleetagammascale_pos_weight: 클래스 데이터 불균형 관찰시 사용하는 파라매터
C) CatBoost
learning_rateiterationsdepthcolsample_bylevelsubsamplel2_leaf_regearly_stopping_roundsauto_class_weights: 클래스 데이터 불균형 관찰시 사용하는 파라매터
D) Notes
Optuna 에서 수행한 벤치마크에 따르면, 가장 중요한 parameter 는 feature_fraction, num_leaves, 또는 bagging_fraction 이라고 한다.
중요한 정도는 parameter 의 값이 변하면 그에 따른 validation score 역시 심하게 변할수록 중요하다고 판단하는 것 같다.