gbdt梯度下降树和xgboost

参考链接:
https://www.cnblogs.com/bnuvincent/p/9693190.html
https://www.cnblogs.com/bentuwuying/p/6667267.html
https://blog.csdn.net/yangxudong/article/details/53872141
https://blog.csdn.net/zpalyq110/article/details/79527653

在这里插入图片描述

当损失函数为mse时,上一个树的残差作为下一个树的标签值
当损失函数mse时,求残差困难,使用损失函数的梯度来优化
这个损失函数是整体强分类器的损失函数,用梯度下降算法不断优化强分类器的损失函数,每一步都可以得到一个弱分类器

加法模型:最好的提升树F(x),F(x)=多个树的和

前项分布算法:现在的树的输出等于前一个树+当前这个树的值。当前这个树拟合的是上个树的残差。损失函数:loss(f(x),y)
fm(x)=fm-1(x)+T(x,参数)

对于有n个树, 整体损失函数为:Loss(yi,fn(xi)),往上推得到:
Loss(yi,fn-1(x)+T(x,参数n))
往上递推,直到Loss(yi,f0)

gbdt对损失函数通过一阶泰勒展开近似,
xgboost对损失函数通过二阶泰勒展开近似,并加正则项

由梯度下降算法启发而来:
xi=xi-1+a*gi
gi表示f(xi)的负梯度值

对于gbdt:
分类器f(x)相当于x,损失函数loss(f(x),y)相当于是f(x)

训练好一个弱分类器后,得到损失函数的负梯度,将损失函数的负梯度作为训练下一个弱分类器的标签。
将所有弱分类器的和,作为最终结果。

发布了73 篇原创文章 · 获赞 10 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Jiiaaaoooo/article/details/104259945