GBDT 深入理解

来源:互联网 发布:数据正态分布统计方法 编辑:程序博客网 时间:2024/06/11 06:14

(1) GBDT 两个不同版本

残差版本: 认为GBDT是一个残差迭代树,每一颗树都在学习前面树的残差。

Gradient 版本:认为GBDT是一个梯度迭代树,使用梯度下降法来求解。

相同之处:都是迭代回归树,每棵树都是在学习前面N-1棵树的不足。

不同之处:在每步的迭代的时候,前者不用gradient,而是用残差,残差反应出全局最优值,或者gradient是局部最优的步长。也就是前者试图让结果变得最好,后者试图让结果变得好一点。

看起来前者更加科学一点,为什么放着全局最优不用,还要用一个局部最优方向呢?
前者残差版本(主要用来做回归问题)最大的问题是它依赖残差,cost function一般反映残差的均方误差,因此很难处理除了回归之外的其他问题。
后者求解的方式是梯度下降(可做分类回归),只要可求导的cost function 都可以适用。比如GBDT处理多分类的问题 

(2) GBDT用作多分类

这里写图片描述

假设对于一个样本x, 其估计值分别是F1(x),F2(x)......Fk(x) .
第0步:初始化
第1步:迭代M步
第2步:如果一个分类问题是多项式分布,则可以Logistic变换来得到属于每类的概率pk(X),向量的长度是1。
第三步:对每一个类建立一个回归树
第四步 :对于logistic多分类问题,一般采用log最大似然的损失函数,注意这里是对Fk(x) 求导的梯度,表示残差减少的梯度方向。计算过程如下图所示、

这里写图片描述

第五步: 根据每一个样本点x,根据残差减少的梯度的方向,建立一个回归树,J个叶子节点的时候停止,得到一棵由J个叶子节点组成的回归树。

第六步:当决策树建立完成之后,通过这个公式,得到每个叶子节点的增益。

第七步:合并,往更好的方向走。

0 0
原创粉丝点击