lightgbm如何应对没有进一步分裂正增益,最佳收益:-inf

ji *_*nye 5 lightgbm

如何处理[警告]没有进一步分裂正增益,最佳收益:-inf是否有任何参数不合适?

小智 8

lightGBM 问题的一些解释:

这意味着当前迭代中的树的学习应该停止,因为不能再分裂了。

我认为这是由“min_data_in_leaf”:1000引起的,您可以将其设置为较小的值。

这不是错误,而是功能。

输出消息是警告用户您的参数可能有误,或者您的数据集不容易学习。

链接:https : //github.com/Microsoft/LightGBM/issues/640

所以相反,数据很难拟合。

  • 减少 'num_leaves' 有助于避免在有用的叶子之上使用不必要数量的叶子。减少此值有助于避免出现警告消息。 (3认同)

Vik*_*ova 6

这意味着在超参数的限制下,通过向树添加额外的叶子不会获得任何改进。这不一定是坏事,因为限制树的深度可以防止过度拟合。但是,如果树与数据拟合不足,请尝试调整这些超参数:

  • decrease min_data_in_leaf- 叶子中数据点的最小数量

  • decrease min_sum_hessian_in_leaf- 叶子中观测值的 Hessian 矩阵(针对每个观测值评估的目标函数的二阶导数)的最小总和。对于某些回归目标,这只是必须落入每个节点的最小记录数。对于分类目标,它表示概率分布的总和。它的工作原理类似于xgboost 中的 min_child_weight

  • 创建数据集时增加max_binmax_bin_by_feature

LightGBM 训练将连续特征存储到离散箱中,以提高训练速度并减少训练的内存需求。这种分箱在数据集构建期间完成一次。增加每个特征的 bin 数量可以增加可以进行的分割数量。

max_bin控制要素将放入的最大垃圾箱数量。还可以通过传递 来逐个功能设置此最大功能max_bin_by_feature