一.前言
大概浏览GBDT论文总结一下相关原理及推导,之前看原理现在都没什么印象了!!!(悲哀啊)
二.原理流程
1.GBDT是基于CART分类回归树并借鉴了梯度这一重要概念,它的整体思想就是串行组合多个弱分类器进行计算,并会在进行每个分类器生成时进行梯度计算拟合当前弱学习器,进而让前向迭代往梯度方向最快下降(当然也需要人为加入学习率ν);首先定义强学习器预测函数表达式:
(1)
2.进而对(1)进行化简表示方便后续计算:
(2)
进而有:(3)
3.计算梯度得:
(4)
4.进而得出:
5.已知式(4)负梯度,那么要当前第m个弱分类器沿当前负梯度下降最快,得到:
(7)
这个是梯度提升树的主要思想利用整个强分类器实现预测函数计算的同时使的损失函数一直在减小 ,相当于神经网络或者逻辑回归等算法参数的更新(ω),只不过此处第m个弱分类器预测值相当于ω,但是并不是更新而是相加!
6.然后进行线性搜索得到最优步长βm:
7.进而得到大概流程如下:
三.2分类梯度提升树
1.下面以二分类提升树为实例进行推导,损失函数和预测函数分别定义为:
2.现在要进行变换了和逻辑回归进行统一:
逻辑回归预测函数:
此时式(2)F(x)=将此式带入式(1)中得:
由于 已知,那么可以求得梯度:
进而最终得到进过当前第m个弱学习器后的总预测值为:
3.整个流程为:
总结:整个流程大概是这样,核心思想是梯度,把预测函数当做叠加的训练参数进行求解并利用式(2)进行概率求解得到最终分类(这里公式变换省略),这样就会得到当前的弱分类器,GBDT的迭代是前向生成一个总的强分类器。