我正在为非常正确的数据建立一个连续回归/预测问题。我一直在使用ElasticNet和Huber回归,取得了相当大的成功,最近我开始使用XGBoost,看看它是否会提供任何额外的价值。我的训练矩阵的尺寸是60,000行和500列。
我发现,更简单、更可解释的ElasticNet/Huber回归模型通常比我构建的任何XGBoost模型都要好。让XGBoost参与竞争的唯一方法是使用大量不同形式的正则化。特别是:最具表现力的XGBoost模型的reg_alpha/reg_lambda参数在10-150范围内;gamma在[25, 100]范围内,subsample为0.5,colsample_by_tree为0.5,浅层max_depths,例如3/4/5,约为150 n_estimators。
从我在各种教程 online中收集到的信息来看,超过10或20的gamma值似乎非常高,尽管我完全承认这一声明可能非常依赖于所使用的数据集的特性。
对于这个超正则化的模型,从直觉的角度来看,预测和特征的重要性是有意义的。
我想我只是在寻找一些输入--我有这么高的正则化参数是疯了吗,还是说我在这些高值中比以前认为的更有道理,因为证据似乎就在模型预测能力/泛化性和重要特性的布丁中?
发布于 2020-09-25 15:29:51
我支持你的“证明就是布丁”的观点。
在我的经验中,有些超参数并没有那么极端。对于弱的学习者来说,提升树的表现往往是最好的;你的max_depth是对的,这与我习惯的最佳表现是一致的。分数正规化惩罚(alpha,lambda)在我的经验中不起重要作用,但我习惯于看到以高两位数选择的最佳参数。您的次抽样和列调整率似乎也是合理的,如果是在我通常认为是最优的低端。你的伽玛值很高,但这并不意味着出了什么问题,也许如果你稍微缩小了最大深度,你可以放松伽玛正则化,但我认为这在任何方面都没有必要。
对于这种情况,一个可能的解释是:您的数据相对来说是线性的,并且没有交互,因此xgboost没有得到它的主要好处。而且你的数据噪音很大,如果没有这些非线性趋势,除非你对其进行严格的正则化,否则xgboost最终很容易适应噪音。
https://datascience.stackexchange.com/questions/82213
复制相似问题