GBDT(Gradient Boosting Decision Tree,梯度提升决策树)

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

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

GBDT的基本流程:

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

GBDT的公式:

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

损失函数:

对于 回归 问题,常用的损失函数是均方误差(MSE),可以写作:
L ( y , f ( x ) ) = 1 2 ( y − f ( x ) ) 2 L(y, f(x)) = \frac{1}{2}(y - f(x))^2 L(y,f(x))=21(yf(x))2

这里的参数说明如下:

  • y y y:样本的真实值
  • f ( x ) f(x) f(x):模型的当前预测值。
梯度计算:

在每次迭代中,我们计算损失函数的负梯度(残差)作为目标变量,以便构建下一个决策树。对于MSE损失函数,负梯度(残差)可以表示为:
r i = − [ ∂ L ( y i , f ( x i ) ) ∂ f ( x i ) ] f ( x ) = F m − 1 ( x ) = y i − F m − 1 ( x i ) r_i = -\left[\frac{\partial L(y_i, f(x_i))}{\partial f(x_i)}\right]_{f(x)=F_{m-1}(x)} = y_i - F_{m-1}(x_i) ri=[f(xi)L(yi,f(xi))]f(x)=Fm1(x)=yiFm1(xi)

这里的参数说明如下:

  • r i r_i ri: 第 i i i 个样本在第 m m m 次迭代的残差。
  • ∂ L ( y i , f ( x i ) ) ∂ f ( x i ) \frac{\partial L(y_i, f(x_i))}{\partial f(x_i)} f(xi)L(yi,f(xi)): 这是损失函数 L L L 关于预测值 f ( x i ) f(x_i) f(xi)偏导数,表示了损失函数的变化率,即损失函数如何随着预测值的变化而变化。
  • L ( y i , f ( x i ) ) L(y_i, f(x_i)) L(yi,f(xi)): 损失函数,它量化了预测值 f ( x i ) f(x_i) f(xi)实际值 y i y_i yi 之间的差异。
  • y i y_i yi: 第 i i i 个样本的实际输出值
  • f ( x i ) f(x_i) f(xi): 模型对第 i i i 个样本 x i x_i xi预测输出
  • F m − 1 ( x i ) F_{m-1}(x_i) Fm1(xi): 在迭代到第 m m m 轮之前,模型对样本 x i x_i xi预测值。这是一个累积的结果,由前面所有弱学习器(决策树)的预测叠加而成。
  • [ ⋅ ] f ( x ) = F m − 1 ( x ) \left[\cdot\right]_{f(x)=F_{m-1}(x)} []f(x)=Fm1(x): 这个符号表示在计算偏导数时,将预测值 f ( x ) f(x) f(x) 固定为当前模型 F m − 1 ( x ) F_{m-1}(x) Fm1(x)输出值。这意味着我们是在当前模型的基础上计算梯度以确定下一步如何调整模型以减少损失。
  • 负号(-): 表示我们实际上计算的是负梯度,这是因为我们要沿着梯度的反方向移动以最小化损失函数。在数学优化中,梯度指向函数增长最快的方向,所以我们需要取负梯度来找到下降最快的方向。
    因此,公式 r i = y i − F m − 1 ( x i ) r_i = y_i - F_{m-1}(x_i) ri=yiFm1(xi) 直观地表示了每个样本的残差,即实际值与当前模型预测值之间的差值

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

更新模型:

在每次迭代中,我们使用残差 r i r_i ri 来构建决策树 h m ( x ) h_m(x) hm(x),然后更新模型:
F m ( x ) = F m − 1 ( x ) + λ h m ( x ) F_m(x) = F_{m-1}(x) + \lambda h_m(x) Fm(x)=Fm1(x)+λhm(x)

这里的参数说明如下:

  • F m ( x ) F_m(x) Fm(x):在第 m m m迭代后模型的预测值。
  • h m ( x ) h_m(x) hm(x):在第 m m m迭代中构建的决策树的输出。
  • λ \lambda λ:学习率,控制每次迭代中模型更新的幅度。

总结:

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

  • 19
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不易撞的网名

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值