LightGBM parameter tuning-(1)

joon_1592·2021년 7월 18일
0

하이퍼파라미터 종류와 뜻 docs 링크
하이퍼파라미터 튜닝 docs 링크

LightGBM은 leaf-wise로 트리를 탐색하므로 데이터가 적을 경우 오버피팅이 일어날 수 있다. 이를 방지하기 위해 하이퍼파라미터에 꽤나 민감하다.

학습속도, 정확도, 오버피팅은 서로 trade-off 관계가 있으니 상황에 맞춰 하이퍼파라미터를 조절하면 된다.

1. 학습 속도 향상

1. Increase

  • min_data_in_leaf: 노드에 포함되는 최소 feature 수. 최소 feature 수를 넘어야지만 트리가 확장된다. Default=20

2. Decrease

  • max_depth: 트리의 깊이. Default=-1
  • num_leaves: 트리에 포함된 노드의 개수
  • num_iterations: boosting 횟수
  • max_bin: 최대 binning 수. Default=255. 항상 1보다 큰 정수.
  • feature_fraction: 사용할 feature 비율. Default=0.5
  • bagging_fraction: 복원추출할 비율. Default=1. bagging_freq=5이고 bagging_fraction=0.75이면, 5 iteration마다 75%만큼 re-sample

3. Use

  • early_stopping_rounds: validation set이 나아지지 않으면 학습을 멈추는 최소 횟수

2. 높은 성능(정확도 등)

일반적으로 높은 성능과 오버피팅 방지는 trade-off 관계이다.

1. Large

  • max_bin: 오버피팅과 반비례
  • num_iterations: learning_rate는 작게 해야한다.
  • num_leaves: 오버피팅이 발생할 수 있다.

2. Small

  • learning_rate: num_iterations는 크게 해야한다.

3. Use

  • boosting_type=dart를 이용한다. 단, 이 경우 early_stopping_rounds는 무시된다. (경험상, gbdt보다 속도는 느리다)

3. 오버피팅 방지

1. Large

  • path_smooth: 트리 노드에 smoothing을 적용한다. Default=0이므로 사용할 경우 양의 실수를 쓴다. 이 파라미터를 사용할 경우, min_data_in_leaf는 최소 2 이상이어야 한다.

2. Small

  • max_bin
  • num_leaves

3. Use

  • min_data_in_leaf
  • bagging_fraction + bagging_freq
  • feature_fraction
  • lambda_l1, lambda_l2: 각각 L1, L2 정규화 적용, Default=0이며, 사용할 경우 모두 양수이다.
profile
공부용 벨로그

0개의 댓글