1.GBDT原理:
GBDT(gradient boosting decision tree)梯度提升决策树,是属于boosting集成算法的一类。bagging算法是每个个体学习器的样本是存在差异的,但是boosting每个个体学习器的样本是不变,但是每次迭代的样本权重是不同的。Adabost算法也是boosting算法之一,它是根据上一次的误差修改此次训练的样本权重,不断的迭代实现误差接近于零。而GBDT算法采用前向分布算法。
2.前向分布算法:
多学习器结合的基本思想是根据多个学习器的输出线性加法求和之后,将加法模型的损失最小化,即将问题转化成损失函数极小化的问题。
多个个体分类器的线性组合就得到下面的加法模型:
其中b(x;γm)为基函数,γm为基函数的参数,βm为基函数的系数,βm表示着对应的基函数在加法模型f(x)中的重要性。
最小化加法模型的损失函数:
由于学习的是加法模型,如果能从前向后每一步只学习一个基函数及其系数,逐步逼近优化目标函数式,那么就可以简化优化的复杂度。每次学习一个基函数(基分类器),只针对这个基分类器进行优化,使其损失函数最小。
3.负梯度拟合和损失函数
最关键的来了,那这个所谓的损失是什么呢?下表是常见的损失函数:
对应损失函数列表可知,GBDT使用的平方损失,经过负梯度拟合得到了y−f(xi),这就是我们最终要去拟合的,它的另一个名字叫作残差。
4.GBDT回归算法:
伪代码如下: