AI

[Kaggle] LightGBM 파라미터 튜닝

아나엘 2023. 10. 4. 19:08

파라미터 튜닝 :

데이터 사이언티스트는 언제나 어떤 파라미터를 언제 사용할지 그리고 어떤 값이 최적의 파라미터 값일지 결정하기 위해 고민합니다.

모델 정확도 향상 :

  1. num_leaves : Tree 모델의 복잡성을 컨트롤하는 주요 파라미터입니다. 이상적으로 num_leaves 값은 2 ^ (max_depth) 값보다 적거나 같아야 합니다. 이것보다 많은 값은 과적합을 유발할 것입니다.
  2. min_data_in_leaf : 큰 값으로 세팅하는 것은 Tree가 너무 깊게 확장되는 것을 막을 수 있지만 under-fitting 언더 피팅이 발생할 수도 있습니다. 관행적으로, 수백 또는 수천 개로 정하는 것이 큰 데이터 세트에 충분합니다.
  3. max_depth : Tree 깊이를 명확하게 제한하기 위해 max_depth 값을 설정할 수도 있습니다.

더 빠른 속도:

  • bagging_fraction과 baggin_freq 을 설정하여 bagging 을 적용
  • feature_fraction을 설정하여 feature sub-sampling
  • 작은 max_bin 
  • save_binary 를 값을 통해 다가오는 학습에서 데이터 로딩 속도 줄이기
  • parallel learning 병렬 학습을 적용

더 나은 정확도 :

  •  max_bin 값 (아마 속도는 느려질 수 있습니다)
  • 작은 learning_rate 값을 큰 num_iterations 값과 함께 사용하십시오
  •  num_leaves 값을 사용하십시오 (아마 과적합을 유발할 수도 있습니다)
  • 더 큰 트레이닝 데이터를 사용하십시오
  • dart 를 사용하십시오
  • 범주형 feature를 사용하십시오

과적합을 해결하기 위해 :

  • 작은 max_bin 값을 사용
  • 작은 num_leaves 값을 사용
  • min_data_in_leaf  min_sum_hessian_in_leaf 파라미터를 사용
  • bagging_fraction  bagging_freq 을 사용하여 bagging 을 적용
  • feature_fraction을 세팅하여 feature sub-sampling
  • lambda_l1, lambda_l2 그리고 min_gain_to_split 파라미터를 이용해 regularization
  • max_depth 를 설정해 Deep Tree 가 만들어지는 것을 방지

출처 : Microsoft LightGBM Documentation

반응형