这篇文章不知道为什么被吞了....我又得重新写一下,方便以后自己复习
写在前面:这篇文章觉得部分都是照搬 这里,详细的描述可以直接看原文。本文只是将原文翻译成自己比较能理解的思路而已。
1. XGBoost的原理
XGBoost光从名字上我们就知道有boost的身影在里面了,它和AdaBoost的其中一个区别就是在合并模型的时候不需要加上一个权重系数,而是直接做加法运算模式。
所以XGBoost也还是采用一个前向分布加法模型的,具体的表达式就是:这里的T是模型数量
最终损失函数就是:这里的N是样本数量
2. 定义目标函数:
模型的预测精度由偏差和方差共同决定,损失函数代表了模型的偏差,想要方差小则需要更简单的模型
所以XGBoost的 目标函数最终由损失函数L与抑制模型复杂度的正则项Ω组成, 所以目标函数如下:
然后这个正则项可以的表达式是如下:
其中 就是叶子节点数,
就是叶子结点上的权重,其余都是超惨
3. 简化目标函数
我们上面说了,XGBoost是一个前向分布加法的模型,现在我们假定已经有t-1步了,求t步,模型对于第i个样本的预测为:
我们把目标函数根据上面这个公式继续改写一下:
这个时候最优化这个目标函数的关键点就落在了

本文详细解读了XGBoost的原理,从其与AdaBoost的区别,到目标函数的构建,重点讲解了如何利用泰勒展开简化目标函数,以及树的切分策略。特别强调了二阶导数在优化中的作用,以及XGBoost如何通过加法训练防止过拟合。
最低0.47元/天 解锁文章
1012

被折叠的 条评论
为什么被折叠?



