梯度提升树
梯度提升树,是利用损失函数的负梯度在当前模型的值作为残差的一个近似值,进行拟合回归树,这样只要可以求梯度的函数,我们都可以进行求解。
为了简便去掉求和符号和下标,改用向量化表示,则损失函数为:
loss = L ( y , f m ( x ) ) = L ( y − f m − 1 ( x ) − h m ( x ; a m ) ) \text {loss}=L\left(y_, f_{m}\left(x\right)\right)=L \left(y-f_{m-1}\left(x\right)-h_{m}\left(x; a_{m}\right)\right) loss=L(y,fm(x))=L(y−fm−1(x)−hm(x;am))
按照泰勒一阶展开(注意这里xgboost用的是二阶展开式)进行展开:
loss = L ( y , f m − 1 ( x ) + h m ( x ; a m ) ) = L ( y , f m − 1 ( x ) ) + ∂ L ( y , f m − 1 ( x ) ) ∂ f m − 1 ( x ) h m ( x ; a m ) \text { loss }=L\left(y, f_{m-1}(x)+h_{m}\left(x ; a_{m}\right)\right)=L\left(y, f_{m-1}(x)\right)+\frac{\partial L\left(y, f_{m-1}(x)\right)}{\partial f_{m-1}(x)} h_{m}\left(x ; a_{m}\right) loss =L(y,fm−1(x)+hm(x;am))=L(y,fm−1(x))+∂fm−1(x)∂L(y,fm−1(x)