精华内容
下载资源
问答
  • xgboost原理

    2016-11-30 20:00:53
    xgboost作者陈天奇对xgboost原理的介绍,讲得很好,真的超级好!~~~
  • XGBoost原理

    2019-03-19 14:33:56
    XGBoost原理推导过程 如有不懂留言交流!!!

    点这里 XGBoost原理推导过程

    如有不懂留言交流!!!

    展开全文
  • Xgboost原理

    2018-03-16 17:55:11
    陈天奇大神的XGBoost的PPT,帮助理解xgb,有想了解机器XGBoost的可以下载
  • XGBOOST原理

    2019-01-03 20:52:26
    本文主要参照了陈天奇博士的PPT https://homes.cs.washington.edu/... 和这位博主的文章 ... 力求用最简单的语言刨析XGBOOST算法的原理,步骤尽可能详尽。 大家熟知的机器学习优化函数一般可以写成: obj=loss+reg ...

    本文主要参照了陈天奇博士的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
    在这里插入图片描述
    基本的推导就是这些,之后的内容以后再给与补充。

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,945
精华内容 2,778
关键字:

xgboost原理