GBDT(Gradient Boosting Decision Tree 梯度提升/迭代树)算法

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对正确、错误的样本进行直接加权还是有区别的。

你可能感兴趣的:(决策树)