机器学习笔记:XGBoost 公式推导

目标函数 = 损失函数 + 正则化项


:在 时刻的目标函数。

:当前预测结果,其中 是在 时刻要训练的 CART 树, 是已经训练得到的 CART 树的线性组合。

:正则项,具体如下:

这里 是 时刻训练的 CART 树的叶子结点个数, 是在编号为 的叶子结点上的输出, 和 是超参数。

使用二阶泰勒展式



使用二阶泰勒展式:

其中 是在 时刻要训练的 CART 树,且

并且

所以

因为 是一个确定的数,可以归入 ,上式右边

把 换成叶子结点的输出 ,再把 用定义展开,上式右边


下面把“对样本的编号”( 个样本)换成“叶子结点的编号”( 个叶子),为了避免混淆,叶子结点的编号使用 ,上式右边

说明: 表示第 个样本属于第 个叶子结点。接下来把 项合并,上式右边

接下来定义:

表示同属于第 个叶子结点的一阶导数之和。与

表示同属于第 个叶子结点的二阶导数之和。于是上式右边

上式对 求偏导并令其等于 ,得:

于是得到编号为 的叶子结点的输出值:

接下来,再把这个输出值回代到目标函数中,得

如何选择 CART 的分割点

那么如何选择 CART 的分割点呢,用启发的方法,在所有的可行划分中选择增益最大的。

划分之前,叶子结点假设有 个

划分之后:叶子结点假设有 个

划分之前 > 划分之后,因此增益:

整理一下,上式右边

选择增益最大的那个划分。

你可能感兴趣的:(机器学习笔记:XGBoost 公式推导)