GBDT(梯度提升决策树)
看了一篇博客,觉得讲解得比较好,本文只是我的一篇笔记,主要是为了检验自己是否真的懂了。要看详细讲解,推荐参考https://blog.csdn.net/w28971023/article/details/8240756
按照博客中的介绍,对GBDT中的名词逐个进行解释。
-决策树
-提升
-梯度
决策树
一般听到决策树都会想到分类问题,如ID3,C4.5 ,计算信息增益;但是此处的决策树是回归树,构建回归树时,计算所有特征的所有取值后的平方误差(如特征A1,取值q1,则平方将c<=q1,分为一类,将c>q1分为另一类,将同一类中的所有取值的平均值作为预测值cm,用真实值与预测值的平方误差决定特征和值的选择)。
还是引用上述链接博客中的图,当每个叶节点就一个值,或是满足某一预设条件时,停止,得到回归树。
提升
一般提到boost(提升),就会想到AdaBoost, 但是此处也有不同。上述回归树,为了使得训练误差最小,常常出现过拟合的情况。而GBDT,利用多个决策树的结果相加求预测值,如下图,
先构造第1棵回归树,得到训练数据集的残差(如14被分到了15的节点上,即预测残差为14-15=-1),然后对残差构造回归树(右边),如此循环,直到叶节点残差为0,或者达到预设阈值。这样,最终的预测值为所有回归树的叶节点之和(如A=15-1=14;B=15+1=16).
梯度
这里并不是梯度下降中用到的概念,而是说,在训练得到回归树模型时,每一次都是根据上一棵树的残差来构造下一棵回归树,这样被错估的数据残差就会很大,在之后就会被注意到;所以回归树是按照残差的方向在优化的。(我目前是这么理解的)