XG Boost Regression 对因变量的对数建模

数据挖掘 机器学习 xgboost
2022-02-14 02:49:09

我正在研究一个具有连续因变量的数据集。我使用 XG Boost 对因变量建模。但是,当我通过应用对数变换来变换因变量,然后使用 XG Boost 对其进行建模时,结果得到了显着改善。我在测试数据上得到的结果接近 100% 的实际结果。对此有什么解释吗?

1个回答

对连续变量执行某种类型的缩放实际上是一种好习惯。box-cox 变换(或正变量)或​​ yeo-johnson 变换(适应 box-cox 变换)属于scikit-learn中实现的功率变换类。

我看一下实现,你会看到你应用的日志转换是 box-cox 的一个特例。

梯度提升包括一个优化步骤,该步骤将依赖于计算损失函数的梯度。ML 中一个反复出现的主题是,当数据具有高数量级时,梯度下降如何更难找到最佳解决方案。本质上,信息以高数量级存在,但优化空间是“拉伸的”——如果你愿意,缩放数据会使一切更接近(这是对所发生情况的一个非常粗略的解释)。

因此,本质上,您在通过转换数据以获得更好的模型来充分利用数据方面做得很好。

这实际上是一个很好的案例,因为您经常听到在使用决策树时不应该缩放数据,而这意味着特征当使用决策树模型进行回归时,您绝对应该考虑缩放目标。