梯度提升回归是否有可能预测超出训练数据范围的值?

机器算法验证 随机森林 预言 损失函数 助推
2022-04-13 08:24:22

我正在使用http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.GradientBoostingRegressor.html来拟合基于回归树的梯度提升模型 (GBM)。我使用 alpha=0.5 的分位数损失,即我的损失函数是平均绝对误差 (MAE)。具有此损失函数的最佳模型是条件中位数,其中表示预测变量,是协变量向量。median[Y|X]YX

我很少看到超出模型训练数据范围的预测。例如,我的训练数据中的可能位于中,并且(很少)我看到的预测。GBM 理论上可以做到这一点,还是我应该怀疑我的代码和/或 sklearn 中存在错误?Y[500,20000]Y^<500

假设我正确理解随机森林 (RF),RF 应该不可能发生这种情况,因为预测值都是训练数据子集的均值/中位数(取决于使用绝对误差还是平方误差损失)。但 GBM 与 RF 不同,这种说法不成立。理论上,GBM 是否可以进行超出训练数据范围的预测?

1个回答

在评论中你要求一个例子。你可以在这里找到它(链接到最丰富的评论,但为了清楚起见,请阅读整个线程)。

在上面的例子中,对我来说最有趣的部分是-666. 它是第二棵树上的分数(带有变量 V2 的那棵)。请注意,分数不在的假设分布范围内,即Y[200020000]

我理解这可能是因为-666从上面的示例中,并不是像简单回归树/随机森林那样来自平均,而是因为整个预测来自不同子树结果的聚合(链式求和)。总和涉及分配给每棵树的权重,权重本身来自:w

wj=GjHj+λ

where Gj and Hj are within-leaf calculations of first and second order derivatives of loss function, therefore they do not depend on the lower or upper Y boundaries.

Please note that the linked example does not prove this is mathematically or empirically possible, because values in the example are arbitrarily selected and do not come from an actual model.

Formulas above come from xgboost website / paper