lightgbm调参的关键参数

提高准确率:

learning_rate:学习率.

默认值:0.1
调参策略:最开始可以设置得大一些,如0.1。调整完其他参数之后最后再将此参数调小。
取值范围:0.01~0.3.

max_depth:树模型深度

默认值:-1
调整策略:无
取值范围:3-8(不超过10)

num_leaves:叶子节点数,数模型复杂度。

默认值:31
调整策略:可以设置为2的n次幂。如 但要大于分类的类别数
取值范围:

降低过拟合

max_bin:工具箱数(叶子结点数+非叶子节点数?)

工具箱的最大数特征值决定了容量 工具箱的最小数特征值可能会降低训练的准确性, 但是可能会增加一些一般的影响(处理过度学习)
LightGBM 将根据 max_bin 自动压缩内存。 例如, 如果 maxbin=255, 那么 LightGBM 将使用 uint8t 的特性值

min_data_in_leaf:一个叶子上数据的最小数量. 可以用来处理过拟合

默认值:20
调参策略:搜索,尽量不要太大。

feature_fraction:每次迭代中随机选择特征的比例。

默认值:1.0
调参策略:0.5-0.9之间调节。
可以用来加速训练
可以用来处理过拟合

bagging_fraction:不进行重采样的情况下随机选择部分数据

默认值:1.0
调参策略:0.5-0.9之间调节。
可以用来加速训练
可以用来处理过拟合

bagging_freq:bagging的次数。0表示禁用bagging,非零值表示执行k次bagging

默认值:0
调参策略:3-5

lambda_l1:L1正则
lambda_l2:L2正则

min_split_gain:执行切分的最小增益
默认值:0.1

For Faster Speed

  • Use bagging by setting bagging_fraction and bagging_freq
  • Use feature sub-sampling by setting feature_fraction
  • Use small max_bin
  • Use save_binary to speed up data loading in future learning
  • Use parallel learning, refer to Parallel Learning Guide

For Better Accuracy

  • Use large max_bin (may be slower)
  • Use small learning_rate with large num_iterations
  • Use large num_leaves (may cause over-fitting)
  • Use bigger training data
  • Try dart

Deal with Over-fitting

  • Use small max_bin
  • Use small num_leaves
  • Use min_data_in_leaf and min_sum_hessian_in_leaf
  • Use bagging by set bagging_fraction and bagging_freq
  • Use feature sub-sampling by set feature_fraction
  • Use bigger training data
  • Try lambda_l1, lambda_l2 and min_gain_to_split for regularization
  • Try max_depth to avoid growing deep tree

你可能感兴趣的:(lightgbm调参的关键参数)