09 集成学习 - XGBoost公式推导

08 集成学习 - XGBoost概述

根据上面的知识对XGBoost公式推导

回顾: 第t次迭代后,模型的预测值= t-1次模型的预测值+第t棵树的预测值。

09 集成学习 - XGBoost公式推导

目标函数可以写成:

09 集成学习 - XGBoost公式推导

回顾泰勒公式:

09 集成学习 - XGBoost公式推导

将误差函数在yi^ (t-1)处进行二阶泰勒展开。即对原损失函数进行泰勒展开,yi是定值,y^t是变化量,即泰勒公式中的Δx。
然后将yit展开: yit = L( y^ it-1 + ft(x))

09 集成学习 - XGBoost公式推导

09 集成学习 - XGBoost公式推导

至此,我们使用了一个二阶的泰勒展开公式,代表了原有的损失函数。这是一个近似值。
gi :第i个观测值在t-1个模型下的一阶偏导数的值。

09 集成学习 - XGBoost公式推导


将损失函数中所有的常数项去掉:

09 集成学习 - XGBoost公式推导

将函数f和正则项代入公式得到以下公式:
使用贪心算法计算得: (前t-1棵树已经是定值了)

09 集成学习 - XGBoost公式推导

最后求上面这个loss函数最小时的最优模型即可。


定义每个叶子节点 j 上的样本集合为 Ij
09 集成学习 - XGBoost公式推导

解释这个式子,我们回到最初的一张图来理解:
j=1时,i=男孩;
j=2时,i=女孩;
j=3时,i=爷爷、奶奶、妈妈;
Ij 就是包含了上面三项的样本集合。

09 集成学习 - XGBoost公式推导

将样本累加操作转换为叶子节点的操作
09 集成学习 - XGBoost公式推导

最终目标函数

09 集成学习 - XGBoost公式推导

如果__树的结构确定__(q函数确定),为了使目标函数最小,可以令导数为0,可以求得最优的w,将w代入目标函数,可以得到__最终的损失__为:
09 集成学习 - XGBoost公式推导

下面看个图来理解上面的公式,损失函数越小,我们的树形结构越好:
09 集成学习 - XGBoost公式推导