我正在研究一个具有连续因变量的数据集。我使用 XG Boost 对因变量建模。但是,当我通过应用对数变换来变换因变量,然后使用 XG Boost 对其进行建模时,结果得到了显着改善。我在测试数据上得到的结果接近 100% 的实际结果。对此有什么解释吗?
XG Boost Regression 对因变量的对数建模
数据挖掘
机器学习
xgboost
2022-02-14 02:49:09
1个回答
对连续变量执行某种类型的缩放实际上是一种好习惯。box-cox 变换(或正变量)或 yeo-johnson 变换(适应 box-cox 变换)属于scikit-learn中实现的功率变换类。
我看一下实现,你会看到你应用的日志转换是 box-cox 的一个特例。
梯度提升包括一个优化步骤,该步骤将依赖于计算损失函数的梯度。ML 中一个反复出现的主题是,当数据具有高数量级时,梯度下降如何更难找到最佳解决方案。本质上,信息以高数量级存在,但优化空间是“拉伸的”——如果你愿意,缩放数据会使一切更接近(这是对所发生情况的一个非常粗略的解释)。
因此,本质上,您在通过转换数据以获得更好的模型来充分利用数据方面做得很好。
这实际上是一个很好的案例,因为您经常听到在使用决策树时不应该缩放数据,而这意味着特征。当使用决策树模型进行回归时,您绝对应该考虑缩放目标。
其它你可能感兴趣的问题