原理
xbt中的目标函数是有个正则项惩罚复杂模型;
将树拆分成结构部分q和叶子部分权重w;
构建最优模型的一般方法是最小化训练数据的损失函数,我们用字母 L表示,如下式:
式(1)称为经验风险最小化,训练得到的模型复杂度较高。当训练数据较小时,模型很容易出现过拟合问题。
因此,为了降低模型的复杂度,常采用下式:
其中J(f)为模型的复杂度,式(2)称为结构风险最小化,结构风险最小化的模型往往对训练数据以及未知的测试数据都有较好的预测 。
应用:决策树的生成和剪枝分别对应了经验风险最小化和结构风险最小化,XGBoost的决策树生成是结构风险最小化的结果,后续会详细介绍。
Boosting方法的回归思想
Boosting法是结合多个弱学习器给出最终的学习结果,不管任务是分类或回归,我们都用回归任务的思想来构建最优Boosting模型 。
回归思想:把每个弱学习器的输出结果当成连续值,这样做的目的是可以对每个弱学习器的结果进行累加处理,且能更好的利用损失函数来优化模型。
假设
是第 t 轮弱学习器的输出结果,
是模型的输出结果,
是实际输出结果,表达式如下:
上面两式就是加法模型,都默认弱学习器的输出结果是连续值。因为回归任务的弱学习器本身是连续值,所以不做讨论,下面详细介绍分类任务的回归思想。
分类任务的回归思想:
根据2.1式的结果,得到最终的分类器:
分类的损失函数一般选择指数函数或对数函数,这里假设损失函数为对数函数,学习器的损失函数是
若实际输出结果yi=1,则:
求(2.5)式对
的梯度,得:
负梯度方向是损失函数下降最快的方向,(2.6)式取反的值大于0,因此弱学习器是往增大
的方向迭代的,图形表示为:
如上图,当样本的实际标记 yi 是 1 时,模型输出结果
随着迭代次数的增加而增加(红线箭头),模型的损失函数相应的减小;当样本的实际标记 yi 是 -1时,模型输出结果
随着迭代次数的增加而减小(红线箭头),模型的损失函数相应的减小 。这就是加法模型的原理所在,通过多次的迭代达到减小损失函数的目的。
小结:Boosting方法把每个弱学习器的输出看成是连续值,使得损失函数是个连续值,因此可以通过弱学习器的迭代达到优化模型的目的,这也是集成学习法加法模型的原理所在 。
XGBoost算法的目标函数推导
目标函数,即损失函数,通过最小化损失函数来构建最优模型,由第一节可知, 损失函数应加上表示模型复杂度的正则项,且XGBoost对应的模型包含了多个