GBDT是将AdaBoost进行推广,误差函数(error function)扩展为任意的。
GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树
算法,该算法由
多棵决策树组成,
所有树的结论累加起来做最终答案。
GBDT主要由三个概念组成:Regression Decistion Tree(即DT),Gradient Boosting(即GB),Shrinkage (算法的一个重要演进分枝,目前大部分源码都按该版本实现)。
一、 DT:回归树 Regression Decision Tree
GBDT中的树都是回归树,不是分类树
二、 GB:梯度迭代 Gradient Boosting
GBDT的核心就在于,每一棵树学的是之前所有树结论和的残差,这个
残差就是一个加预测值后能得真实值的累加量
。
比如A的真实年龄是18岁,但第一棵树的预测年龄是12岁,差了6岁,即残差为6岁。那么在第二棵树里我们把A的年龄设为6岁去学习,如果第二棵树真的能把A分到6岁的叶子节点,那累加两棵树的结论就是A的真实年龄;如果第二棵树的结论是5岁,则A仍然存在1岁的残差,第三棵树里A的年龄就变成1岁,继续学。
GBDT和随机森林的相同点:
1、都是由多棵树组成
2、最终的结果都是由多棵树一起决定
GBDT和随机森林的不同点:
1、组成随机森林的树可以是分类树,也可以是回归树;而GBDT只由回归树组成
2、组成随机森林的树可以并行生成;而GBDT只能是串行生成
3、对于最终的输出结果而言,随机森林采用多数投票等;而GBDT则是将所有结果累加起来,或者加权累加起来
4、随机森林对异常值不敏感,GBDT对异常值非常敏感
5、随机森林对训练集一视同仁,GBDT是基于权值的弱分类器的集成
6、随机森林是通过减少
模型方差提高性能,GBDT是通过减少
模型偏差提高性能
每一次的计算是为了减少上一次的残差(residual),而为了消除残差,我们可以在残差减少的梯度(Gradient)方向上建立一个新的模型。
在Gradient Boost中,每个新的模型的建立是为了使得之前模型的残差往梯度方向减少。
与传统Boost对正确、错误的样本进行直接加权还是有区别的。