Scikit-Learn梯度提升决策树(GBDT)




1、梯度提升决策树(GBDT)


梯度提升决策树(GBDT)是集成学习Boosting提升中的一种重要算法。GBDT在机器学习知识结构中的位置如下:

在这里插入图片描述
梯度提升决策树(Gradient Boosting Decision Tree,GBDT)是一种迭代的决策树算法,它通过构造一组弱学习器(决策树),并把多颗决策树的结果累加起来作为最终的预测输出。该算法将决策树与集成思想进行了有效的结合

1.1、Boosting方法


我们已经知道,Bagging方法在训练过程中,各基分类器之间无强依赖,可以进行并行训练

与Bagging方法不同,Boosting方法在训练基分类器时采用串行的方式,各个基分类器之间有依赖

Boosting的基本思路是将基分类器层层叠加,每一层在训练的时候,对前一层基分类器分错的样本,给予更高的权重。预测时,根据各层分类器的结果的加权得到最终结果

在这里插入图片描述

  • Boosting:串行,将基分类器层层叠加
  • Bagging:并行,各基分类器之间无强依赖

1.2、GBDT的原理


梯度提升决策树算法的流程如下:

  • 初始化:设定一个初始预测值,通常为所有样本目标变量的均值,这个初始预测值代表了我们对目标变量的初始猜测

  • 迭代训练:GBDT是一个迭代算法,通过多轮迭代来逐步改进模型。在每一轮迭代中,GBDT都会训练一棵新的决策树,目标是减少上一轮模型的残差。残差是预测值与真实值之间的误差,新的树将学习如何纠正这些残差

    • 计算残差:在每轮迭代开始时,计算当前模型对训练数据的预测值与实际观测值之间的残差。这个残差代表了前一轮模型未能正确预测的部分

    • 拟合残差:以当前残差为新的学习目标变量,训练一棵新的决策树。这棵树将尝试纠正上一轮模型的错误,以减少残差

    • 更新模型:将新训练的决策树与之前的模型进行组合,更新预测值。具体地,将新树的预测结果与之前模型的预测结果累加,得到更新后的模型

  • 终止/集成:当达到预定的迭代次数或残差变化小于阈值时停止迭代。将所有决策树的预测结果相加,得到最终的集成预测结果。这个过程使得模型能够捕捉数据中的复杂关系,从而提高预测精度

GBDT的核心点在于不断迭代,每一轮迭代都尝试修正上一轮模型的错误,逐渐提高模型的预测性能

GBDT算法流程的数学描述参考文章:https://blog.csdn.net/u010366748/article/details/111060108

例如,使用GBDT预测年龄:

在这里插入图片描述

  • 第一个弱分类器(第一棵树)预测一个年龄(如20岁),计算发现误差有10岁

  • 第二个弱分类器(第二棵树)拟合残差10,预测值6,计算发现差距还有4岁

  • 第三个弱分类器(第三棵树)继续拟合残差4,预测值3,发现误差只有1岁了

  • 第四个弱分类器(第四课树)用1岁拟合剩下的残差,完成

最终,四个弱分类器(四棵树)的结论累加起来,得到30岁这个标准答案。实际在工程应用中,GBDT计算负梯度,使用负梯度近似残差

1.3、GBDT回归的损失函数


回归任务下,GBDT在每一轮迭代时对每个样本都会有一个预测值,此时的损失函数为均方差损失函数:

在这里插入图片描述
损失函数的负梯度计算如下:

在这里插入图片描述
可以看到,当损失函数选用均方误差损失时,每次拟合的值就是真实值减预测值,即残差

梯度提升决策树(GBDT)的训练过程(案例)详见文章:传送门

1.4、梯度下降与梯度提升


负梯度方向是梯度下降最快的方向。梯度下降与梯度提升两种迭代优化算法都是在每一轮迭代中,利用损失函数负梯度方向的信息,更新当前模型。但两者是完全不同的概念

梯度下降中,模型是以参数化形式表示,从而模型的更新等价于参数的更新

在这里插入图片描述

梯度提升中,模型并不需要进行参数化表示,而是直接定义在函数空间中,从而大大扩展了可以使用的模型种类

在这里插入图片描述
梯度提升与梯度下降的主要区别如下:

比较项 梯度下降 梯度提升
模型定义空间 参数空间 函数空间
优化规则 θ t \theta_t θt= θ t − 1 \theta_{t-1} θt1+ Δ θ t \Delta\theta_t Δθt f t ( x ) f_t(x) ft(x)= f t − 1 ( x ) f_{t-1}(x) ft1(x)+ Δ f t ( x ) \Delta f_t(x) Δft(x)
损失函数 L L L= ∑ t l ( y t , f ( x ; θ t ) ) \sum_{t}^{}l(y_t,f(x;\theta_t)) tl(y
  • 8
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值