【机器学习】XGboost

2020-04-07 17:03:50 浏览数 (1)

本文介绍了XGboost模型。首先在GBDT的基础上介绍XGboost,然后对比了XGboost与GBDT的不同之处,最后介绍了XGboost的损失函数和学习过程。

作者 | 文杰

编辑 | yuquanle

XGBoost

XGBoost是基于GBDT的一个改进,改进之处有以下几点:

  1. 传统GBDT以CART作为基分类器,XGBoost还支持线性分类器;
  2. 目标函数中引入了正则项,决策树作为基学习器时约束定义叶子节点数和系数,线性分类器使用和;
  3. 损失函数的残差拟合使用二阶多项式拟合,不再采用梯度下降策略,而是导数为导出决策树和权重参数;
  4. 支持并行,并行不是在基学习器层次,而是在特征选择层面,将特征列排序后存储,在迭代过程中重复使用;
  5. 样本采样,后剪枝处理防止过拟合;
  6. 对于缺失值处理,特征分裂时会默认给样本进行分类。

XGBoost目标函数如下:

在第次迭代中有:

其中可以看做是损失函数在某一点的泰勒展开后的。

,,且采用决策树做基学习器,则有:

其中是决策树的系数,是拟合一阶导的决策树,是拟合二阶导的决策树,而这两颗决策树可以共用决策树的结构,决策值不同构成一个二维输出的决策树。且二维决策树在两个维度的系数是有关系的,即,。

对求导为0,有:

将代入目标函数得:

由此,构建决策树的准则即为最小化目标函数,当决策树定下之后,也就定下。所以在XGBoost中实际上的参数只有决策树自身。

The End

0 人点赞