本文介绍了XGboost模型。首先在GBDT的基础上介绍XGboost,然后对比了XGboost与GBDT的不同之处,最后介绍了XGboost的损失函数和学习过程。
作者 | 文杰
编辑 | yuquanle
XGBoost
XGBoost是基于GBDT的一个改进,改进之处有以下几点:
- 传统GBDT以CART作为基分类器,XGBoost还支持线性分类器;
- 目标函数中引入了正则项,决策树作为基学习器时约束定义叶子节点数和系数,线性分类器使用和;
- 损失函数的残差拟合使用二阶多项式拟合,不再采用梯度下降策略,而是导数为导出决策树和权重参数;
- 支持并行,并行不是在基学习器层次,而是在特征选择层面,将特征列排序后存储,在迭代过程中重复使用;
- 样本采样,后剪枝处理防止过拟合;
- 对于缺失值处理,特征分裂时会默认给样本进行分类。
XGBoost目标函数如下:
在第次迭代中有:
其中可以看做是损失函数在某一点的泰勒展开后的。
,,且采用决策树做基学习器,则有:
其中是决策树的系数,是拟合一阶导的决策树,是拟合二阶导的决策树,而这两颗决策树可以共用决策树的结构,决策值不同构成一个二维输出的决策树。且二维决策树在两个维度的系数是有关系的,即,。
对求导为0,有:
将代入目标函数得:
由此,构建决策树的准则即为最小化目标函数,当决策树定下之后,也就定下。所以在XGBoost中实际上的参数只有决策树自身。
The End