lightgbm如何处理正增益无进一步划分,最佳增益为-inf的情况

18

如何处理 [警告] 无法进一步分裂,最佳收益为:-inf。是否有不合适的参数?

4个回答

12

来自lightGBM问题的一些解释:

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

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

这不是一个错误,这是一个特性。

输出消息是为了警告用户参数可能有误,或者数据集难以学习。

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

相反地,数据很难拟合。


3
减少“num_leaves”有助于避免在有用之外使用不必要的叶子节点。减少此值有助于避免警告信息的出现。 - Dale Kube

6
这意味着,在超参数限制的情况下,向树中添加更多叶子节点将无法获得改进。虽然限制树的深度可能有助于防止过度拟合,但这不一定是坏事。然而,如果决策树欠拟合数据,请尝试调整这些超参数:
  • 减少 min_data_in_leaf - 叶节点中的最小数据点数。
  • 减少 min_sum_hessian_in_leaf - 叶节点中每个观察值对目标函数的二阶导数(Hessian)的总和的最小值。对于某些回归目标,这只是必须落入每个节点的最小记录数量。对于分类目标,它表示概率分布的总和。它的作用类似于 xgboost 中的 min_child_weight
  • 在创建数据集时增加 max_binmax_bin_by_feature

LightGBM 将连续特征划分为离散区间以提高训练速度并降低内存需求,这个划分仅在数据集构建时进行一次。增加每个特征的箱数可以增加可以进行的分裂数。

max_bin 控制特征将被划分为的最大箱数。也可以通过传递 max_bin_by_feature 来针对每个特征设置此最大值。


3

将params中的'verbosity'设为-1,就可以生效!


2
我认为问题在于解决潜在的问题,而不仅仅是忽略警告信息。 - James Lamb

0
增加 max_depth 或将其设置为 -1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接