梯度提升(可选单元)

在回归问题中,将有符号误差定义为预测值与标签之间的差值是合理的。不过,对于其他类型的问题,这种策略通常会导致效果不佳。在梯度提升中,更好的策略是:

  • 定义一个类似于神经网络中使用的损失函数。例如,分类问题的熵(也称为对数损失)。
  • 训练弱模型,以根据强模型输出预测损失的梯度

形式上,给定损失函数 L(y,p)(其中 y 是标签,p 是预测),用于在第 i 步训练弱模型的伪响应 zi 为:

zi=L(y,Fi)Fi

其中:

  • Fi 是强模型的预测结果。

上面的示例是一个回归问题:目标是预测数值。对于回归问题,平方误差是一个常见的损失函数:

L(y,p)=(yp)2

在本例中,梯度为:

z=L(y,Fi)Fi=(yp)2p=2(yp)=2 signed error

换句话说,梯度是示例中带有系数 2 的有符号误差。请注意,由于收缩,常量因子不重要。请注意,只有对于使用平方误差损失函数的回归问题,此等式才成立。对于其他监督学习问题(例如分类、排名、使用百分位损失函数的回归),梯度和有符号误差之间并不等价。

使用牛顿方法步骤优化叶和结构

牛顿法是一种优化方法,与梯度下降法类似。不过,与仅使用函数梯度进行优化的梯度下降法不同,牛顿法同时使用函数的梯度(一阶导数)和二阶导数进行优化。

梯度下降法的步骤如下:

xi+1=xidfdx(xi)=xif(xi)

和牛顿法如下所示:

xi+1=xidfdx(xi)d2fd2x(xi)=xif(xi)f(xi)

您可以通过以下两种方式将牛顿法集成到梯度提升树的训练中(可选):

  1. 训练完树后,系统会对每个叶子应用一个牛顿步骤,并替换其值。树结构保持不变;只有叶值会发生变化。
  2. 在树生长过程中,系统会根据包含牛顿公式组件的得分来选择条件。树的结构会受到影响。
YDF 代码
在 YDF 中:
  • YDF 始终对叶节点应用牛顿步骤(选项 1)。
  • 您可以使用 use_hessian_gain=True 启用选项 2。