XGboost的数学原理

Gradient Descent or Newton-method

[0]. https://blog.csdn.net/On_theway10/article/details/103003077

[1]. https://zhuanlan.zhihu.com/p/37524275

[2]. https://www.zhihu.com/question/19723347

Gradient Boosting

XGboost

xgboost的全称是eXtreme Gradient Boosting,它是一种基于Tree Boosting方法的可扩展系统。与GBDT相仿,xgboost的基决策器(CART)也是串行的;不同的是,前者只是对损失函数Taylor展开到1阶,后者则Taylor展开到2阶。第t步需要优化的目标函数如下:

                                                   ,      (1)

其中,表示损失函数的形式,表示表示前t-1棵树对样本x_i的预测结果,f_t表示第t棵树(注意,这里只CART),表示对第t棵树所采用的正则项。将(1)Taylor展开到二阶后形式如下:

                                                                           (2)

其中,。整理得:

                                  (3)

(3)是关于叶子节点预测值w_j的二次函数,因此(3)的最小值将在对称轴处取得,即:

                                                                                             (4)

此时,第t棵树的预测损失为:

                                                                          (5)

对于第t棵树的某个节点,它分裂后损失函数的减小量为:

                                                   (6)

一般而言,当且仅当分裂后的损失函数的减小量小于某个阈值时才对该节点进行分裂。

Split Finding

论文给出了两个版本的算法框架来回答上述子标题中的问题,一个是Exact Greedy Algorithm,另一个是Approximate Algorithm。

      

Exact版本的分裂算法A1属于暴力搜索版本,可以得到相对比较精确的结果,但是往往也需要耗费大量的计算量,因此它一般应用于样本量小的场景;Approximate版本的分裂算法A2属于简化搜索版本,它事先根据排序后的样本所占总样本数的百分比来产生分裂的备选分裂点,然后通过遍历所有特征的备选分裂点来选择最优的分裂特征和对应的最优分裂点。

Left or Right, it's a question

为了回答这一问,论文提出了一种所谓的Sparsity-aware split finding算法,算法流程如下:

       

insight:遍历所有特征,将当前节点中的所有样本I按照遍历到的某个特征fea_k划分为两个部分I_kI-I_k(其中I_k表示在fea_k上不存在缺失的I中的样本的集合),然后将I-I_k分别划分到左子节点和右子节点,分别计算对应的损失函数的减小值,选择全局最大的score,这样我们即可得到最佳的划分特征、划分点以及在划分特征上存在缺失的样本默认划分节点。

Overfitting

  • column-sampling(借鉴RF)
  • loss-function中加入正则项 :

                                            , 其中,

  • 设定Tree的maxdepth

Faster

未完待续……

Reference

[1]. https://blog.csdn.net/yinyu19950811/article/details/81079192

[2]. https://mp.weixin.qq.com/s?__biz=MzI1MzY0MzE4Mg==&mid=2247485568&idx=1&sn=af15a42e91f2d19bf3909a9ae3e8a9bf&chksm=e9d01841dea79157be56b13da422ca17ce702a1673a93928f8dc8d76ab5b1555ae18d938157d&mpshare=1&scene=1&srcid=&sharer_sharetime=1573191831641&sharer_shareid=38f617e5700f979591dce0e07a0943ce&key=8e29a0afef50367141ff75c759d48aeb9af0bcce5b511688e8b36a9882d69e57ae9e5b04645f320c04c82435cc551253ac605dc47794f6e16d8af45737785addd266070e5d625f6e7a3d9c0dc9876797&ascene=1&uin=MTU2NTk4ODg0MQ%3D%3D&devicetype=Windows+10&version=62060833&lang=zh_CN&pass_ticket=xBiwk%2FkfeRKAB4M%2BMS5KP6SiWjRdO7VeeEbf%2B5ljiG1r4NgG1%2F1yXcu0oFUL6zFa

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ReLuJie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值