摘抄整理大多来自:lightgbm调参的关键参数_lightgbm maxbin_yessica_Chen的博客-CSDN博客
和lightgbm使用手册——参数篇_模型lgb_爱挠静香的下巴的博客-CSDN博客
LightGBM优点:
- 基于Histogram的决策树算法
- 带深度限制的Leaf-wise的叶子生长策略
- 直方图做差加速
- 直接支持类别特征
- Cache命中率优化
- 基于直方图的稀疏特征优化
- 多线程优化
LGB是一种高效、分布式的梯度提升树算法,具有训练速度快、内存占用少等优点。在使用LGB时,可以设置一些参数来优化模型的性能。
LGB常见参数调整:
- 提高准确率
(1)learn_rate 学习率
默认值:0.1
最开始可以设置得大一些,如0.1。调整完其他参数之后最后再将此参数调小。
建议取值范围:0.01~0.3 0.001~1 ?
(2)max_depth 树的深度(叶结点最大深度)
默认值:-1
需要考虑到数据量、特征维度和连续特征的数量。大多数情况下,建议设置<=20。 在数据量较小的情况下、连续特征的数量较多时,可以设置较低的max_depth,以避免过拟合。
建议取值范围:3-8(不超过10)
(3)num_leaves 叶子节点数
默认值:31
值越大,模型的复杂度越高,容易出现过拟合。值越小,模型的复杂度越低,容易出现欠拟合。
- 降低过拟合
(1)max_bin 工具箱数
工具箱的最大数特征值决定了容量。最小数特征值可能会降低训练的准确性, 但是可能会增加一些一般的影响(处理过度学习)
LightGBM 将根据 max_bin 自动压缩内存。 例如, 如果 maxbin=255, 那么 LightGBM 将使用 uint8t 的特性值
(2)min_data_in_leaf 一个叶子上数据的最小数量。可以用来处理过拟合
默认值:20
尽量不要太大。
(3)feature_fraction 每次迭代中随机选择特征的比例。控制在每一次树木生长时选择多少特征
默认值:1.0
常用的取值范围是0.5到1。
可用来加速训练、处理过拟合。
(4)bagging_fraction 每次迭代中,模型将使用多少数据
默认值:1.0
常见的取值范围:0.5~1。值越小,模型的多样性更强,越不容易过度拟合。
(5)bagging_freq 每n次迭代进行子采样
默认值:0
调参策略:3-5。减少子采样的频率可以提高准确性,但会增加训练时间。
(6)lambda_l1/l2 正则
(7)min_split_gain 执行切分的最小增益
默认值:0.1