XGBoost 模型相对较高的正则化参数是防止过拟合的唯一方法

数据挖掘 回归 xgboost 正则化
2022-02-04 18:47:29

我正在为非常右偏的数据建模一个连续回归/预测问题。我一直在使用 ElasticNet 和 Huber 回归并取得了相当大的成功,最近开始使用 XGBoost 看看它是否会提供任何额外的价值。我的训练矩阵的维度是 60,000 行 x 500 列。

我发现,更简单、更易解释的 ElasticNet/Huber 回归模型通常优于我构建的任何 XGBoost 模型。我可以让 XGBoost 竞争的唯一方法是使用大量不同形式的正则化。特别是:性能最高的 XGBoost 模型的reg_alpha/reg_lambda参数在 [10-150] 范围内;gamma在0.5、0.5和浅的[25, 100]范围内,例如 3/4/5 subsample大约为 150 colsample_by_treemax_depthsn_estimators

从我在各种在线教程gamma中收集到的信息来看,超过 10 或 20 的值似乎非常高,尽管我完全承认该声明可能非常依赖于所使用数据集的特性。

对于这个超正则化模型,从直观的角度来看,预测和特征重要性是有意义的。

我想我只是在寻找一些输入——我有这么高的正则化参数是疯了,还是我比以前认为的这些高值更合理,因为证据似乎在模型预测能力的布丁中/普遍性和重要特征?

1个回答

我支持你的“证据在布丁中”的观点。

根据我的经验,其中一些超参数并不是那么极端。增强树通常在个体学习者较弱的情况下表现最好;max_depth是正确的,我习惯于认为是最好的。分数正则化惩罚(alpha,lambda)在我的经验中并没有发挥那么重要的作用,但我习惯于看到在高两位数中选择的最佳参数。如果在我通常认为最佳的下端,您的子采样率和列子集率似乎也很合理。您的伽玛值很高,但这并不意味着有问题;也许如果您将最大深度缩小一点,您可以放松伽马正则化,但我认为这没有任何必要

这种情况的一种可能解释是:您的数据是相对线性的并且没有交互,因此 xgboost 没有得到它的主要好处。而且您的数据足够嘈杂,以至于缺少那些非线性趋势,xgboost 最终很容易适应噪声,除非您对其进行强烈正则化。