xgboost的模型推导

1、Boost Tree 模型

提升树模型一般是以CART树为基函数,采用加法模型与前向分布算法来拟合目标。第t时刻的模型为:


f(t)(x)=f(t1)(x)+Tt(x;θ)

其中, f(t1)(x) 是t-1时刻的模型,通过经验风险最小化来获得下一棵决策树 Tt(x;θ) 。优化目标函数为:

obj=i=1nl(yi,f(t)(x))=i=1nl(yi,f(t1)(x)+Tt(x;θ))


当采用平方误差损失作为模型的损失函数时,损失函数可以改写为:

l(y,f(t1)(x)+Tt(x;θ))=(yf(t1)(x)Tt(x;θ))2=(rTt(x;θ))2


其中, r=yf(t1)(x) 是当前模型拟合数据的残差。因此,当损失函数为平方误差损失时,提升树算法只需要简单第拟合当前模型的残差来构造下一棵树即可。

2、GBDT模型

上面讲到,当损失函数是平方误差损失时,我们可以直接简单地拟合模型的残差来训练回归树,是指数函数时, e(f(t1)(x)+Tt(x;θ)) ,取log后与平方误差的形式一致,也容易训练。但当损失函数是其他损失函数时,优化目标则没有那么友好简单,也就使得优化变得困难。这时候,GBDT模型就被提出来了,与提升树不同的一点是,它利用损失函数的负梯度在当前模型下的值作为提升树算法中残差的近似值,拟合一个回归树。


r=[l(y,f(x))f(x)]f(x)=f(t1)(x)

3、xgboost模型

xgboost是GBDT的一个改进模型,能够克服GBDT难以并行化,计算复杂度高等问题,下面给出xgboost模型的推导过程。
一般来讲,以结构风险最小化为优化目标的机器学习模型,其优化函数的形式如下:


obj=i=1nl(yi,yi^)+λΩ(T)

其中第一项是模型预测值与真实值的损失度量函数,第二项是一个正则化项,起到控制模型复杂度,防止过拟合的作用。
将提升树的加法模型代入上式可得:

obj=i=1nl(yi,f(t1)(xi)+Tt(xi;θ))+λΩ(T)

若我们采用平方误差损失作为损失函数,上式可以转化为:

obj
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值