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.