GBDT/GBRT迭代决策树

GBDT基本概念

        用ID3算法和C4.5算法学习得到的决策树,有可能导致模型过拟合,通常使用剪枝算法来解决。随着集成学习的发展,出现了比较典型的迭代决策树GBDT随机森林RF,即将多棵单决策树进行模型组合,形成多决策树,可以看成Treelink。

       迭代决策树有以下名称:
GBDT(Gradient Boost Decision Tree)渐进梯度决策树
GBRT(Gradient Boost Regression Tree)渐进梯度回归树
MART(Multiple Additive Regression Tree)多决策回归树

GBDT核心思想

       决策树(Decision Tree,DT)分为回归树和分类树,GBDT是指回归树。

       回归树用于预测实数值,例如温度、年龄;

       分类树用于分类标签值,例如晴天/阴天/雾/雨、用户性别。

       回归树加减具有意义,而分类树无法加减,GBDT的核心思想在于累加所有树的结果作为最终结果,所以GBDT是回归树。

GBDT/GBRT迭代决策树

        F0 是初始值,类似y=ax+b中的b用来调整函数直线位置,Ti是第i 棵树,βi作为权重控制Ti对最终结果的影响度。Treelink例子如下图:

GBDT/GBRT迭代决策树


GBDT实例

       还是年龄预测,简单起见训练集只有4个人,A,B,C,D,他们的年龄分别是14,16,24,26。其中A、B分别是高一和高三学生;C,D分别是应届毕业生和工作两年的员工。如果是用一棵传统的回归决策树来训练,会得到如下图1所示结果:

GBDT/GBRT迭代决策树

       现在我们使用GBDT来做这件事,由于数据太少,我们限定叶子节点做多有两个,即每棵树只有一个分枝,并且限定只学两棵树。我们会得到如下图2所示结果:

GBDT/GBRT迭代决策树

       开始学习第一棵树。由于A,B年龄较为相近,C,D年龄较为相近,他们被分为两拨,每拨用平均年龄作为预测值。此时计算残差(残差的意思就是: A的预测值 + A的残差 = A的实际值),所以A的残差就是16-15=1。

       进而得到A,B,C,D的残差分别为-1,1,-1,1。然后我们拿残差替代A,B,C,D的原值,到第二棵树去学习。由于A,C的值为-1,B,D的值为1,他们被分为两拨,每拨用平均值作为预测值。此时所有人的残差均为0,停止学习。

       新进来一个测试例E,较少购物,经常问学长问题,预测年龄为:15-1=14岁。

GDBT适用范围

       几乎可用于所有的回归问题(线性/非线性),相对logistic regression仅能用于线性回归,GBRT的适用面非常广。亦可用于二分类问题(设定阈值,大于阈值为正例,反之为负例)。

       GBDT也可以用来做搜索引擎排序应用RankNet、推荐算法等。

Reference

GBDT学习

Treelink算法介绍

【机器学习】迭代决策树GBRT

转载于:https://my.oschina.net/keyven/blog/615436