GBDT(Gradient Boosting Decision Tree)

GBDT原理详解
本文深入探讨了GBDT(梯度提升决策树)的工作原理,包括其作为提升树模型的基础概念,以及如何通过前向分步模型来逐步逼近最优预测值。文章详细解释了在不同损失函数下的梯度提升策略,并提供了算法实现流程。

GBDT(Gradient Boosting Decision Tree)

1.提升树

提升树模型的基分类器为决策树,每次训练的结果影响下一次训练的决策树。我们这里只谈回归问题,训练的结果为M个决策树相加。对于二分类问题只需把AdaBoost算法的基分类器换为决策树。

用前向分步模型表示

fm(x)=fm1(x)+T(x;θm)

其中
T(xi;θm)=j=1JcjI(xiRj)

T(xi;θm)为回归决策树,它将特征空间分割J个区域,每个区域表示为Rj,每个区域设定一个值cj,当xiRj时 决策树的输出为cj

当使用平均方差损失函数时

L(yi,fm(xi))=12(yifm1(xi)T(xi;θm))2=12(rmiT(xi;θm))2=L(rmi,T(xi;θm))

rmi是当前模型fm1(x) 的残差yifm1(xi)。因此我们可以用当前模型的残差去拟合下一颗决策树。

2.梯度提升

当损失函数不是平均方差时,用损失函数的负梯度近似去代替当前模型的残差

[L(yi,f(x))f(x)]f(x)=fm1(x)

算法:

  1. 初始化 f0(x)=argmincNi=1L(yic)

  2. 对于 m= 1,2,.., M

    a 对于 i = 1,.., N 计算

    rmi=[L(yi,f(x))f(x)]f(x)=fm1(x)

    b 对rm拟合一颗回归树,得到第m颗树的叶结点区域 Rmj ,j=1,2,..,J

    c 对 j=1,2,,…J 计算

    cmj=argmincxiRmjL(yi,fm1(x)+c)

    d 更新 fm(x)=fm1(x)+jj=1cmjI(xRmj)
  3. 得到提升数 fM(x).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值