Homework——GBDT(梯度提升树)

1. 前向分步算法

考虑加法模型 f ( x ) = ∑ m = 1 M β m b ( x ; γ m ) f(x)=\sum_{m=1}^M \beta_mb(x;\gamma_m) f(x)=m=1Mβmb(x;γm),其中,b是基分类器, γ \gamma γ是基分类器的参数, β \beta β是基分类器的系数。在标签数据以及损失函数L(y,f(x))已知的情况下,为了求解出f(x),需要最小化损失函数
min ⁡ β m , γ m L ( y , f ( x i ) ) \min_{\beta_m,\gamma_m}L(y,f(x_i)) βm,γmminL(y,f(xi))
前向分步算法就是为了解决这一优化问题,简单来说:因为学习的是加法模型,如果能够从前向后,每一步只学习一个基分类器以及他的系数,逐渐逼近之前提到的损失函数,那么就可以简化他的复杂度。具体算法如下:
输入:训练数据集 T = ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x N , y N ) T={(x_1,y_1),(x_2,y_2),\dots,(x_N,y_N)} T=(x1,y1),(x2,y2),,(xN,yN);损失函数L(y,f(x));基函数集 b ( x ; γ ) {b(x;\gamma)} b(x;γ);
输出:加法模型f(x)
(1) 初始化 f 0 ( x ) = 0 f_0(x)=0 f0(x)=0
(2)对于 m = 1 , 2 , … , M m=1,2,\dots,M m=1,2,,M:
①极小化损失函数
( β m , γ m ) = a r g m i n β , γ ∑ i = 1 N L ( y i , f m − 1 ( x i ) + β b ( x ; γ ) ) (\beta_m,\gamma_m)=argmin_{\beta,\gamma}\sum_{i=1}^NL(y_i,f_{m-1}(x_i)+\beta b(x;\gamma)) (βm,γm)=argminβ,γi=1NL(yi,fm1(xi)+βb(x;γ))
得到参数 β , γ \beta,\gamma β,γ
②更新 f m ( x ) = f m − 1 ( x ) + β m b ( x , γ m ) f_m(x)=f_{m-1}(x)+\beta_mb(x,\gamma_m) fm(x)=fm1(x)+βmb(x,γm)
(3)得到加法模型
f ( x ) = f M ( x ) = ∑ m = 1 M β m b ( x ; γ m ) f(x)=f_M(x)=\sum_{m=1}^M\beta_m b(x;\gamma_m) f(x)=fM(x)=m=1Mβmb(x;γm)
这样,前向分步算法将同时求解从m=1到M所有的参数 β m , γ m \beta_m,\gamma_m βm,γm的优化问题简化为逐步求解各个 β m , γ m \beta_m,\gamma_m βm,γm的问题.
梯度提升树使用了前向分步算法,但是弱分类器限定了只能使用CART回归树模型。

2. 负梯度拟合

在上一节中,我们介绍了前向分步算法的一般步骤,在GBDT中,我们用负梯度拟合来解决第二步中损失函数拟合的问题。
通过用损失函数的负梯度来拟合本轮损失的近似值,进而拟合一个CART回归树。
第t轮的第i个样本的损失函数负梯度表示为:
r t i = − [ ∂ L ( y i , f ( x i ) ) ∂ f ( x i ) ] f ( x ) = f t − 1 ( x ) r_{ti}=-[\frac{\partial L(y_i,f(x_i))}{\partial f(x_i)}]_{f(x)=f_{t-1}(x)} r

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值