机器学习方法篇(9)------梯度提升决策树GBDT

来源:互联网 发布:哈密顿算法求最短路径 编辑:程序博客网 时间:2024/05/16 15:12

● 每周一言

生命在于运动,无论脑力还是体力。

导语

前面第3、4两节介绍了决策树,由于决策树简单有效,可解释性强,因此被包装成了一些更为高效的机器学习算法,其中最为知名的就是梯度提升决策树GBDT(Gradient Boosting Decision Tree)和随机森林(Random Forest)这两种模型。本节讲解GBDT,讲讲这个在各大竞赛中炽手可热的模型。

GBDT

G-B-D-T梯度提升决策树,顾名思义,是一个与梯度有关、对决策树进行了提升的机器学习模型。我们不妨从后往前依次聊聊GBD这几个定语,从而理解这个模型的精髓。

fig1

DT(Decision Tree) 决策树。 T自不必多说,作为一种常见的数据结构出现在各种算法当中。DT决策树,有分类树与回归树两种,之前文章中讲到了分类树,可参见 机器学习方法篇(3)——决策树入门 与 机器学习方法篇(4)——决策树剪枝。回归树原理机制与分类树相似,区别在于分类树只有在叶子结点返回唯一分类,而回归树的每个节点都能返回预测值,通常为当前节点下所有样本的均值。

B(Boosting) 提升。即在原来模型的基础之上做进一步提升,提升决策树BDT的基本思想是采用多棵决策树串行建模。具体过程为,对于第一棵树之后的每一棵决策树,都基于前一棵决策树的输出进行二次建模,整个串行建模过程相当于对预测结果朝目标值进行修正。

G(Gradient) 梯度。梯度的大小反映了当前预测值与目标值之间的距离。因此,上面B所述的串行决策树模型,除开第一棵决策树使用原始预测指标建树,之后的每一棵决策树都用前一棵决策树的预测值与目标值计算出来的负梯度(可以理解为残差或者增量)来建树。这相当于给分错的样本加权多次分类,使样本最终的残差趋近于0。除开第一棵树的其他树,由于都是对目标的残差或增量进行建模预测,因此GBDT模型只需把过程中每一棵决策树的输出结果累加,便可得到最终的预测输出。

fig2

这里借用网上流传较广的一个预测年龄的例子来描述GBDT的过程。一共4个样本:
A(消费较高、经常被学弟问问题)27岁
B(消费较高、经常问学长问题) 23岁
C(消费较低、经常被学弟问问题)17岁
D(消费较低、经常问学长问题)13岁

串行决策树构建如下图所示。可知模型拟合情况,A的年龄为25 + 2 = 27岁,B的年龄为25 - 2 = 23岁,C为15 +2 = 17岁,D为15 - 2 = 13岁。

fig3

综上,一句话概括GBDT的核心思想就是:串行训练n(n > 2)棵决策树,其中第i(1 < i ≤ n)棵树学习第i - 1棵树的负梯度(可理解为残差或增量),n棵树的输出结果累加作为最终输出结果。敬请期待下节内容。

结语

感谢各位的耐心阅读,后续文章于每周日奉上,敬请期待。欢迎大家关注小斗公众号 对半独白

face

原创粉丝点击