GBDT(Gradient Boosting Decision Tree,梯度提升决策树)是一种集成学习算法,用于解决回归和分类问题。它通过迭代地构建多个决策树,并以梯度下降的方式最小化损失函数,以此来提升预测精度

GBDT的核心思想是通过组合弱学习器(通常是决策树)形成一个强学习器。

GBDT的基本流程:
  1. 初始化模型:通常初始化为所有训练样本预测值的平均值损失函数的最小化值。
  2. 计算残差:对于每一个样本,计算当前模型预测值与真实值之间的残差(损失函数的负梯度)。
  3. 构建决策树:使用残差作为新的目标变量,构建一个决策树,这个树试图拟合残差。
  4. 更新模型:将新构建的决策树的输出加权加入到现有的模型中,形成一个新的模型。
  5. 重复步骤2-4:直到达到预定的迭代次数或满足停止条件为止。
GBDT的公式:

GBDT的目标是最小化训练数据的损失函数 GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_集成学习。对于给定的损失函数,GBDT使用梯度下降的思想来逐步改进模型。在每次迭代中,它构建一个决策树来拟合损失函数关于当前模型预测的负梯度。

损失函数:

对于 回归 问题,常用的损失函数是均方误差(MSE),可以写作:
GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_决策树_02

这里的参数说明如下:

  • GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_迭代_03:样本的真实值
  • GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_损失函数_04:模型的当前预测值。
梯度计算:

在每次迭代中,我们计算损失函数的负梯度(残差)作为目标变量,以便构建下一个决策树。对于MSE损失函数,负梯度(残差)可以表示为:
GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_集成学习_05

这里的参数说明如下:

  • GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_boosting_06: 第 GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_迭代_07 个样本在第 GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_迭代_08 次迭代的残差。
  • GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_损失函数_09: 这是损失函数 GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_决策树_10 关于预测值GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_损失函数_11偏导数,表示了损失函数的变化率,即损失函数如何随着预测值的变化而变化。
  • GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_损失函数_12: 损失函数,它量化了预测值 GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_损失函数_11实际值 GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_集成学习_14 之间的差异。
  • GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_集成学习_14: 第 GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_迭代_07 个样本的实际输出值
  • GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_损失函数_11: 模型对第 GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_迭代_07 个样本 GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_损失函数_19预测输出
  • GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_迭代_20: 在迭代到第 GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_迭代_08 轮之前,模型对样本 GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_损失函数_19预测值。这是一个累积的结果,由前面所有弱学习器(决策树)的预测叠加而成。
  • GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_决策树_23: 这个符号表示在计算偏导数时,将预测值 GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_损失函数_04 固定为当前模型 GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_集成学习_25输出值。这意味着我们是在当前模型的基础上计算梯度以确定下一步如何调整模型以减少损失。
  • 负号(-): 表示我们实际上计算的是负梯度,这是因为我们要沿着梯度的反方向移动以最小化损失函数。在数学优化中,梯度指向函数增长最快的方向,所以我们需要取负梯度来找到下降最快的方向。
    因此,公式 GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_决策树_26 直观地表示了每个样本的残差,即实际值与当前模型预测值之间的差值

在GBDT中,这些残差被用作下一棵树的训练目标,以便进一步修正模型的预测,最终达到减小损失函数的目的。

更新模型:

在每次迭代中,我们使用残差 GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_迭代_27 来构建决策树 GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_迭代_28,然后更新模型:
GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_损失函数_29

这里的参数说明如下:

  • GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_迭代_30:在第 GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_迭代_08迭代后模型的预测值。
  • GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_boosting_32:在第 GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_迭代_08迭代中构建的决策树的输出。
  • GBDT(Gradient Boosting Decision Tree,梯度提升决策树)_决策树_34:学习率,控制每次迭代中模型更新的幅度。
总结:

GBDT通过迭代地拟合损失函数的负梯度来逐步优化模型。在每一次迭代中,它都会基于当前模型预测和真实的输出之间的差距来训练一个新的决策树,然后将这个决策树的预测值加权加入到现有的模型中,以期减少总体的损失。这种迭代过程使得GBDT能够处理复杂的非线性关系,并且在很多情况下比单独的决策树有更好的泛化能力。