关于梯度提升树残差(李航机器学习)的一些理解(附代码)

恰逢最近在学习提升树(boosting tree)算法,参考了李航统计学习方法(第二版),但仍觉有一些疑惑,遂上网看了很多资料但仍感觉有些细节不清楚,主要原因是网上的公式符号使用自成一体,且一些结论缺少具体推理,于是以李航统计学习书上的公式表达为基础,记录一些思考。一:采用平方误差损失函数时损失函数的负梯度就是提升树的残差首先在书8.4节,167页,当损失函数为负梯度时:其中分别代表真...
摘要由CSDN通过智能技术生成

恰逢最近在学习提升树(boosting tree)算法,参考了李航统计学习方法(第二版),但仍觉有一些疑惑,遂上网看了很多资料但仍感觉有些细节不清楚,主要原因是网上的公式符号使用自成一体,且一些结论缺少具体推理,于是以李航统计学习书上的公式表达为基础,记录一些思考。
一:采用平方误差损失函数时损失函数的负梯度就是提升树的残差
首先在书8.4节,167页,当损失函数为负梯度时:
在这里插入图片描述
其中
在这里插入图片描述
分别代表真实值与第m-1个模型预测值的残差,以及第m课我们想要学习的树。
从损失函数(1)中可以看出,第m棵树学习的是如何逼近残差r。当学习了第m个树T以后,由加法模型第m个模型为:
在这里插入图片描述
因为这里损失函数为平方误差损失函数,所以对于学到的第(m-1)个模型fm-1(x) 有
在这里插入图片描述
可以看出(3)对fm-1(x) 导数的负值(负梯度)就是残差r,所以为什么采用平方误差损失函数时损失函数的负梯度就是提升树的残差。

网上还有人用二阶泰勒展开来解释上面的结论。
在这里插入图片描述
这里提供一个详细推到版:由式(2)(4),将第m个模型的损失函数写为
在这里插入图片描述
将g和h带入得(6)
在这里插入图片描述
我们希望学习 一个树T(x; θ   m   \theta~m~ θ m )来使得损失函数(6)最小化,很明显(6)是关于T(x; θ   m   \theta~m~ θ m )的二元二次凹函数(fm-1(x)为上一步学习的模型),其极小点在“-b/2a”处取得(牛顿法)所以
在这里插入图片描述
每一次树学习的(叶子节点的值)都是第上一个模型结果与真实标签的残差。
二:当采用一般损失函数时,第m棵树学习的是损失函数对第m-1个模型的负梯度
梯度下降算法:对于损失函数L( θ \theta θ),我们希望通过迭代 θ \theta θ来最小化损失函数以求得最优的 θ \theta θ即:
在这里插入图片描述
而对于梯度提升算法的损失函数L(y,fm(x)),同样我们也可以通过迭代f(x)获得一个使损失函数最小的模型fm(x).
在这里插入图片描述
比较(2)和(8)可得
在这里插入图片描述
所以对于一般损失函数,每个决策树拟合的都是负梯度。<

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值