하이퍼파라미터 종류와 뜻 docs 링크
하이퍼파라미터 튜닝 docs 링크
LightGBM은 leaf-wise로 트리를 탐색하므로 데이터가 적을 경우 오버피팅이 일어날 수 있다. 이를 방지하기 위해 하이퍼파라미터에 꽤나 민감하다.
학습속도, 정확도, 오버피팅은 서로 trade-off 관계가 있으니 상황에 맞춰 하이퍼파라미터를 조절하면 된다.
min_data_in_leaf
: 노드에 포함되는 최소 feature 수. 최소 feature 수를 넘어야지만 트리가 확장된다. Default=20max_depth
: 트리의 깊이. Default=-1num_leaves
: 트리에 포함된 노드의 개수num_iterations
: boosting 횟수max_bin
: 최대 binning 수. Default=255. 항상 1보다 큰 정수. feature_fraction
: 사용할 feature 비율. Default=0.5bagging_fraction
: 복원추출할 비율. Default=1. bagging_freq=5
이고 bagging_fraction=0.75
이면, 5 iteration마다 75%만큼 re-sampleearly_stopping_rounds
: validation set이 나아지지 않으면 학습을 멈추는 최소 횟수일반적으로 높은 성능과 오버피팅 방지는 trade-off 관계이다.
max_bin
: 오버피팅과 반비례num_iterations
: learning_rate
는 작게 해야한다.num_leaves
: 오버피팅이 발생할 수 있다.learning_rate
: num_iterations
는 크게 해야한다.boosting_type=dart
를 이용한다. 단, 이 경우 early_stopping_rounds
는 무시된다. (경험상, gbdt
보다 속도는 느리다)path_smooth
: 트리 노드에 smoothing을 적용한다. Default=0이므로 사용할 경우 양의 실수를 쓴다. 이 파라미터를 사용할 경우, min_data_in_leaf
는 최소 2 이상이어야 한다.max_bin
num_leaves
min_data_in_leaf
bagging_fraction
+ bagging_freq
feature_fraction
lambda_l1
, lambda_l2
: 각각 L1, L2 정규화 적용, Default=0이며, 사용할 경우 모두 양수이다.