XGBOOST原理

本文主要参照了陈天奇博士的PPT
https://homes.cs.washington.edu/~tqchen/pdf/BoostedTree.pdf
和这位博主的文章
https://www.jianshu.com/p/7467e616f227
力求用最简单的语言刨析XGBOOST算法原理,步骤尽可能详尽。

大家熟知的机器学习目标优化函数一般可以写成:
obj=loss+reg 的形式
那么XGBOOST的 目标优化函数其中的损失函数和正则化部分又是怎么样的一种形式呢。
先来讨论第一部分loss,loss是一个关于预测值和实际值之间的函数。
xgboost是一个监督模型,是由多个CART树组成。只有一个树的话,它的叶子节点就是预测的数据。多个树的话就是把每棵树的结果相加。
1一棵树时候的情况 此时
在这里插入图片描述

下面是多颗树的情况

在这里插入图片描述此时的预测值为在这里插入图片描述

我们可以用数学形式把预测值精准描述出来
在这里插入图片描述
其中k是树的个数,xi是第i个样本,此式子就是K个树对样本xi所得出的预测值的累加。
有了预测值,我们可以应用MSE作为损失函数 在这里插入图片描述
或者对于分类问题我们可以应用
在这里插入图片描述
此时目标优化函数的一大组成部分loss函数已经有了,那么如何去正则化这个模型呢?
xgboost中正则化的部分是模型的复杂度,这里先给出最初的公式
在这里插入图片描述
reg部分是K颗树模型复杂度的累加。那么如何定义个颗树有多么复杂呢?看叶子节点的个数?看预测值的大小?为了解决把这个抽象的问题用数学描述。xgboost应用了加法训练。

概况起来说首先优化第一颗树,然后再优化第二颗树,直到把所有k颗树全部优化完。
过程如下
在这里插入图片描述
这时候又有新的疑问了,我们所添加的f_t(x_i)是什么呢。假设我们处于第t时刻,现在我们已经有了t时刻之前的所有数据,就是说
在这里插入图片描述
的前半部分是确定的,此时我们要添加的f_t(x_i)是可以使t时刻的目标函数在这里插入图片描述
最小的值
t时刻之前的数值都是确定的,所以说1到(t-1)的数的复杂度是一个确切的数值。
这时候我们将上述目标函数进一步变形
在这里插入图片描述
此时我们将此式子进行二阶泰勒展开
在这里插入图片描述
所要应用泰勒展开的目的是为了之后我们可以应用求解一元二次多项式的方法来得出我们要的最佳值
泰勒展开后的式子为在这里插入图片描述
其中 gi,hi分别为损失函数对于y^_(t-1)的一阶二阶微分在这里插入图片描述
可能这时候所定义的概念有点多了 让我们来举个栗子
假设我选取了MSE作为损失函数
在这里插入图片描述

gi ,hi 可分别写成在这里插入图片描述
这里注意一点,假设我们在优化第t颗树,可以看出gi,hi都是确定的数值
接下来我们将展开的二阶泰勒优化目标函数的确定的值去掉
在这里插入图片描述
其中constant为前(t-1)颗树的复杂度,l(yi, yi^t-1)也是一个确定的数值。所以去掉常量之后的结果是
在这里插入图片描述
前面说过我们要寻找的是使第t颗树的目标优化函数最小的f_t(xi),看到这个式子是不是发现gi,hi是确切的数,那么我们只要知道如何定义第t颗树的复杂度,整个式子就只剩下了f_t(xi)一个未知数。

接下来我们来定义树的复杂度:
首先我们定义:
在这里插入图片描述
其中假设我们的第t颗树有T个叶子节点,也就是预测值。这T个叶子节点组成了一个T维向量w,而q(x)是一个映像,它说明了样本归属于第几个叶子节点。这样w_q(x)也就是树对于x这个样本的预测值。
这里我们举个栗子在这里插入图片描述
可以看出w_q(小男孩)=2
有了上述的说明我们就可以定义复杂度了:

在这里插入图片描述
前面一度分跟叶子的数目有关,后面是所有叶子节点平方的累加,γ和λ都是超参数可以自己取值,越大就说明越希望数的结构简单。
接下来又可以愉快的举个栗子
在这里插入图片描述
接下来我们就可以完全清晰的优化目标函数了
将上述提到的优化目标函数做如下转换
在这里插入图片描述
第二行是简单的复杂度以及前面定义的w_q(x)的代入,这样所表达的意思是对于每个样本,我们找到树对它的预测值,然后乘上相关系数(hi,gi)做累加
第二行到第三行的转换需要加以说明
在这里插入图片描述其实是一个样本空间,空间内包括了第j个叶子节点中所有的样本的序号
前面说到了第t颗树有T个叶子节点,第三行就是对于每个叶子节点,找到叶子节点中所包含的样本,然后从叶子结点的角度进行累加。第二行是从样本的角度进行累加。

也许你会觉得最后转换出来的双层累加有些难以下手,现在让我们把他变成只有一个累加
首先定义
在这里插入图片描述
G_J是对于第j个叶子节点,旗下所有样本的gi的累加,H_J同理
然后将刚才的式子进行转化
在这里插入图片描述
这时候我们可以激动的发现,上述式子除了wj这个要求的值未知以外,所有的东西都是确定的数值(γ和λ由你自己给定)。
接下来我们很愉快的运用初中所学的知识
在这里插入图片描述
得出了对于第j个叶子节点它的最佳值,然后进行累加
在这里插入图片描述
这里的obj是用来衡量第t颗数的结构的好坏,可以看出整个式子跟第t颗树的叶子节点值是无关的。

让我们举个栗子来得出obj
在这里插入图片描述
基本的推导就是这些,之后的内容以后再给与补充。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值