一、梯度提升(Gradient boosting)
提升既可以用于分类,也可以用于回归。提升背后的思想是:每一步产生一个弱学习器,通过不断地把若学习器加权累加到总模型当中,来最终得到一个强预测模型。其基本公式如下:
(1)
其中,m为基学习器个数,beta是系数,f 是基学习器,F就是总的模型。我们的最终目的是得到一个优秀的总模型,尽可能的使得损失函数最小,即:
(2)
上面说了,F最终是由多个基学习器加权组成的,所以不可能同时求解。因此,梯度提升使用了一种贪心的算法,在刚开始时,模型F为一个常函数,然后每次只求解一个基学习器及其系数,从而一步一步地来提升F的性能。这听起来是不是很像梯度下降法,是的,Gradient boosting就是每次让新加的这一项等于损失函数的负梯度,从而最快地最小化损失函数。所以,新加的一项可以写成下式:
(3)
上式中gamma为称为步长,包含了负梯度的负号以及beta参数。公式左边除去gamma的部分一般称为伪残差(也可以称为梯度),即:
(4)
根据上式,F的上一步模型已知,对于每一个训练样本,我们总可以求出它的伪残差R。这样,只要假设一种基学习器,我们就可以根据训练样本的x和y值(即伪残差R,用基学习器来拟合)来训练得到当前的基学习器fm。最后将训练完的基学习器带入(2)式,使得损失函数最小,即可求出gamma。
二、GBDT(Gradient Boosting Decision Tree)
在GDBT中,其基学习器是CART决策树,也就是每一次用CART决策树去拟合各个样本的伪残差。另外,不管是分类还是回归问题,在拟合时使用的都是CART决策树中的回归树。