上一章:机器篇——集成学习(六) 细说 GBDT 算法
下一章:机器篇——集成学习(八) 细说 ball49_pred 项目(彩票预测)
本小节,细说 XGBoost 算法,下一小节细说 ball49_pred 项目
论文参考以下链接: XGBoost: A Scalable Tree Boosting System
二. 具体算法
7. XGBoost 算法(Extreme Gradient Boostin, XGBoost)
XGBoost 是 GB 算法的一种高效实现。XGBoost 中的基学习器除了可以是 CART(gbtree),也可以是线性分类器(gblinear)。
(1). XGBoost 是一种监督学习算法,它实现了一个称为增强的过程,以产生准确的模型。
监督学习的常用目标函数,通常包含两个部分:训练误差 + 正则化
:为损失函数,度量模型预测值和真实值的误差。
平方损失函数:
交叉熵损失函数:
为分类数,特别地,当
时,为 二分类的交叉熵损失函数:
logistic 损失函数:
:为正则化项,度量模型的复杂度,避免过拟合。常用的正则化有
正则化。
正则:
正则:
(2). 模型融合
一棵 CART 往往过于简单,而无法有效地进行预测,因此更加高效的是使用多个 CART 进行融合,使用集成的方法提升预测效果。
①. 假设有两棵回归树,进行融合预测结果,公式为:
:为树的棵数
:为第
棵树对于输入
输出的得分
:为相应函数
:为相应函数空间
②. 目标函数:
:为损失函数。
(3). 模型训练
①. 假设每次迭代生成一棵树,则训练目标函数可以写成:
:为第
步迭代的预测值。
②. 迭代关系:
③. 训练目标函数可以写成: