Light GBM 中的 L1 和 L2 正则化

数据挖掘 xgboost 正则化 lightgbm
2021-09-21 02:06:16

这个问题与 Light GBM 中的 L1 和 L2 正则化参数有关。根据官方文档:

reg_alpha (float, optional (default=0.)) – 权重的 L1 正则化项。

reg_lambda (float, optional (default=0.)) – 权重的 L2 正则化项

我见过数据科学家同时使用这两个参数,理想情况下你要么使用 L1 要么使用 L2,而不是同时使用。

在阅读有关调整 LGBM 参数的信息时,我遇到了一个这样的案例:Kaggle 官方 GBDT 规范和优化研讨会在巴黎,讲师是 ML 专家。这些专家在 LGBM 模型中使用了 L1 和 L2 参数的正值。下面的链接(Ctrl+F 'search_spaces' 直接到达这个长内核中的参数网格)

http://www.kaggle.com/lucamassaron/kaggle-days-paris-gbdt-workshop

我在 XGBoost 实现中也看到了同样的情况。

我的问题是为什么在 LGBM/XGBoost 中同时使用两者。

谢谢。

3个回答

首先,请注意,在逻辑回归中,同时使用 L1 和 L2 惩罚非常常见,因此有自己的名称:ElasticNet。(也许请参阅https://stats.stackexchange.com/q/184029/232706。)因此使用两者并非史无前例。

其次,XGBoost 和 LightGBM 有相当多的超参数,它们的用途重叠。树的复杂性可以通过最大深度、最大叶子数、每片叶子的最小样本(计数或权重)或最小标准增益来控制。对于某些问题,这些的任何组合都可能是最佳的。过度拟合也可以通过学习率与树的数量(和提前停止)、二次采样率和正则化惩罚中的任何一种来对抗。

最后,由于 GBDT 中的 L1 正则化应用于叶分数,而不是像逻辑回归那样直接应用于特征,它实际上有助于减少树的深度。反过来会倾向于减少预测性较差的特征的影响,但它并不像逻辑回归中那样从本质上移除特征那么引人注目。您可能会认为 L1 正则化比 L2 正则化对预测性较差的特征更具攻击性。但是同时使用这两种方法可能是有意义的:一些 L1 来惩罚预测性较差的特征,然后还有一些 L2 来进一步惩罚大叶分数,而不是对预测性较差的特征如此苛刻。

玩具示例:https ://github.com/bmreiniger/datascience.stackexchange/blob/master/trees_L1_reg.ipynb

可能有用:
https ://github.com/dmlc/xgboost/blob/release_0.90/src/tree/split_evaluator.cc#L118
https://xgboost.readthedocs.io/en/latest/tutorials/model.html#模型复杂度

在这篇中型帖子中,您可以找到关于这些参数的简洁明了的解释https://medium.com/@gabrieltseng/gradient-boosting-and-xgboost-c306c1bcfaf5

Gabriel Tseng,博文的作者:“这两个正则化项对权重有不同的影响;L2 正则化(由 lambda 项控制)鼓励权重较小,而 L1 正则化(由 alpha 项控制)鼓励稀疏——所以它鼓励权重为 0。这在逻辑回归等模型中很有帮助,在这些模型中您需要一些特征选择,但在决策树中我们已经选择了我们的特征,因此将它们的权重归零并不是很有帮助。因此,我发现在正则化时设置一个高 lambda 值和一个低(或 0)alpha 值是最有效的。”

我见过数据科学家同时使用这两个参数,理想情况下你要么使用 L1 要么使用 L2,而不是同时使用。

很快 - 使用L1 惩罚太小的权重和 L2 的高权重(== 异常值),以防止过度拟合。