https://lightgbm.readthedocs.io/en/latest/Parameters-Tuning.html
lightgbm相比xgboost/catboost, 其是leaf-wise的,也就是其會首選可以最大information gain的node, 而xgboost/catboost會首先考慮是否存在level較小的node. 可以參考(https://lightgbm.readthedocs.io/en/latest/Features.html#leaf-wise-best-first-tree-growth)
1. num_leaves,這個參數應該小於;
2. min_data_in_leaf, 這個值過大,會導致under fit; 這個值過小,會導致overfit;
3. max_depth,這個參數控制樹的深度;
爲了更快的速度:
1. 設置bagging_fraction與bagging_freq去使用bagging;
2. 設置feature_fraction對feature做低採樣;
3. 小的max_bin值;
4. 設置save_binary以加速數據加載;
5. 利用並行學習。
爲了更高的精度:
1. 使用更大的max_bin;
2. 更小的learning_rate與更大的num_iterations;
3. 使用更大的num_leaves;
4. 更大的訓練集;
5. 嘗試dart;
對付過擬合:
1. 使用小的max_bin;
2. 使用小的num_leaves;
3. 利用min_data_in_leaf與min_sum_hessian_in_leaf;
4. 設置bagging_fraction, bagging_freq以利用bagging;
5. 設置feature_fraction對變量低採樣;
6. 利用更大的training集;
7. 利用lambda_l1, lambda_l2, min_gain_to_split
進行正則化;
8. 嘗試max_depth防止過深的樹;
9. 嘗試extra_trees.