机器学习算法梳理(五):GBDT梯度提升树

GBDT

  • GBDT描述
  • GBDT思想
  • 前向分布算法
  • 参考文献

GBDT描述

GBDT也是集成学习Boosting家族的成员,但是却和传统的Adaboost有很大的不同。回顾下Adaboost,我们是利用前一轮迭代弱学习器的误差率来更新训练集的权重,这样一轮轮的迭代下去。GBDT也是迭代,使用了前向分布算法,但是弱学习器限定了只能使用CART回归树模型,同时迭代思路和Adaboost也有所不同。

GBDT思想

在GBDT的迭代中,假设我们前一轮迭代得到的强学习器是ft−1(x)ft−1(x), 损失函数是L(y,ft−1(x))L(y,ft−1(x)), 我们本轮迭代的目标是找到一个CART回归树模型的弱学习器ht(x)ht(x),让本轮的损失函数L(y,ft(x)=L(y,ft−1(x)+ht(x))L(y,ft(x)=L(y,ft−1(x)+ht(x))最小。也就是说,本轮迭代找到决策树,要让样本的损失尽量变得更小。

GBDT的思想可以用一个通俗的例子解释,假如有个人30岁,我们首先用20岁去拟合,发现损失有10岁,这时我们用6岁去拟合剩下的损失,发现差距还有4岁,第三轮我们用3岁拟合剩下的差距,差距就只有一岁了。如果我们的迭代轮数还没有完,可以继续迭代下面,每一轮迭代,拟合的岁数误差都会减小。

前向分布算法

李航《统计学习方法》
机器学习算法梳理(五):GBDT梯度提升树_第1张图片

提升树模型:
以决策树为基函数,进行前向分步算法得到的模型就是提升树模型,这种以决策树为基函数的提升方法成为提升树(boosting tree)。如果我们最终要构造的时分类模型,我们采用二叉分类树作为基函数;如果要构造回归模型,我们采用二叉回归树作为基函数。
提升树模型如果用来解决分类问题,我们只需将前向分布算法中的损失函数用指数损失,基函数用二叉分类树即可得到提升树模型;实质上我们在Adaboost算法中将基分类器限制为二叉分类树也可以得到提升树模型,与前者是等价的,因此提升树算法是Adaboost算法的一种特殊情况。
AdaBoost与前向分布算法:AdaBoost是前向分布加法算法的特例,这时,模型是由基本分类器组成的加法模型,损失函数是指数函数

参考文献

https://blog.csdn.net/xueyingxue001/article/details/51304490
https://blog.csdn.net/yy2050645/article/details/82354415
https://www.cnblogs.com/pinard/p/6140514.html

你可能感兴趣的:(机器学习)