最近在网上查询阅读了关于XGBoost的文章和博客,便对自己的理解做了总结。XGBoost(eXtreme Gradient Boosting)全名叫极端梯度提升,是集成学习方法中的王牌,在绝大数的回归和分类问题上表现的强悍,在这里梳理下XGBoost的算法原理。
1.最优模型的构建方法
构建最优模型的一般方法是最小化训练数据的损失函数,我们用字母 L表示,如下式:
式(1)称为经验风险最小化,训练得到的模型复杂度较高。当训练数据较小时,模型很容易出现过拟合问题。
因此,我们可以利用添加正则项的结构风险最小化模型:
结构风险最小化模型在考虑了损失函数最小化的基础上,控制了模型复杂度,用来避免过拟合的情况,往往对训练数据以及测试数据都有较好的预测效果。
2.Boosting方法的回归思想
Boosting法是结合多个弱学习器给出最终的学习结果,不管任务是分类或回归,我们都用回归任务的思想来构建最优Boosting模型 。
回归思想:把每个弱学习器的输出结果当成连续值,这样做的目的是可以对每个弱学习器的结果进行累加处理,且能更好的利用损失函数来优化模型。
假设 f t ( x i ) f^t(x_i) ft(xi)是第 t t t 轮弱学习器的输出结果, y ^ i t \hat{y}_i^t y^it是模型的输出结果,而 y i y_i yi是实际输出结果,表达式如下:
上面两式就是加法模型,都默认弱学习器的输出结果是连续值。
3.分类任务的回归思想
根据2.1式的结果,得到最终的分类器:
分类的损失函数一般选择指数函数或对数函数,这里假设损失函数为对数函数,学习器的损失函数是
若实际输出结果yi=1,则:
对 y ^ i t \hat{y}_i^t y^i