关于GBDT理解
参考链接
从梯度下降角度:https://www.zhihu.com/question/63560633/answer/340862845
XGBoost每一步迭代目标函数推导:https://www.zybuluo.com/yxd/note/611571
刘建平(没有讲解为什么拟合负梯度):https://www.cnblogs.com/pinard/p/6140514.html
理解
模型:fk = fk-1(x) + hk(x)
目的:通过每一次加入一个新的学习器hk(x)后,相当于不断更新fk(x),使得当前全部样本代价函数Cost(y,fk(x)) 获得最大程度地减小,从而随着不断加入新的学习器,不断逼近代价函数全局最小值;
问题关键:新加入的学习器hk(x)如何才能保证更新后的fk(x)使得代价函数L(y,fk(x))朝着函数值减小最大的方向移动;
做法:
hk(x)= - learning_rate * Cost’(y,fk-1(x)),即hk(x)等于近似地负梯度,即可利用cart树拟合上一个学习器损失函数对于各个样本预测值的负梯度值;
特例(损失函数为平方损失)
当损失函数选择平方损失时,损失函数对于各个样本预测值的负梯度,即残差
原理:利用学习器hk(x)通过拟合上一个学习器fk-1(x)的预测残差,通过不断地更新整合的学习器fk(x),将代价函数Cost(y,fk(x))沿着梯度下降的方向移动,从而不断降低整合的学习器偏差;
推广算法
GBDT推广算法:
(1)利用cart回归树初始化学习器f0(x);
(2)由上一个fk-1(x)学习器获取损失函数在每一个样本i的负梯度值G(i,k-1);
(3)利用(Xi,Gi,k-1)数据集拟合上一轮负梯度值Gi,k-1,获取学习器hk(x);
(4)更新学习器为fk(x)=fk-1(x) + hk(x);
(5)重复(2)(3)(4)直至到达指定迭代次数;