XGBoost细谈

注:本文中所有公式和思路来自于邹博先生的《机器学习升级版》,我只是为了加深记忆和理解写的本文。


XGBoost是陈天奇先生提出的一种提升方法,较GBDT不同的是,XGBoost采用了二阶导的信息,不说废话,直接介绍推导过程。我们以CART树为例:

首先我们设定目标函数为:

这其中yi为第i个样本标记值,y~(t-1)为第t-1棵树的预测值,ft(xi)是第t棵树,Ω是为了防止过拟合加入的正则项,C我们先不理会它,后边再解释它的由来。

推导这个过程我们先要回顾一个公式:Taylor展式:

 

我们可以将y~(t-1)看做x, ft(xi)看做Δx,令:

可得:


现在目标函数已经得到,现在来重新说一下决策树的结构:我们使用决策树做分类或者回归,无非是从根节点到叶子节点的细化过程,落在同一个叶节点的预测值也是一样的,假设某个决策树有T个叶节点,每个叶节点的权值为W=(w1,w2...wT),决策树的学习过程就是构造如何使用特征得到划分,从而得到这些权值的过程。如下图所示:


这里边的q(x)就是如果输入x值最终落到第几个叶节点上而已。w就是叶节点的预测值。目标函数J中的Ω的成分分析如下图:


需要解释的:正则项也就是对决策树的惩罚主要包含两部分,1.如果叶节点越多也就是T越大,越惩罚,2.叶权值平方和越大,越惩罚。

目前准备工作完成,开始计算目标函数:



此时,定义:


从而:

对wj求偏导:


最后将w带回目标函数J中:

其中G、H都是我们实现可以计算出来的:

虽然说目标函数确定了,但是这棵树是我们假设的,所以我们需要先确定这棵树的结构,可以使用ID3/C4.5/CART等方式,用贪心法实现:

1.对于某个划分点,计算划分后的J

2.对于所有的划分,选择J降低最小的分割点

枚举所有划分点,选择最大的增益,直到达到阀值或者得到纯节点:


至此,XGBoost就介绍完毕了,相对于GBDT,XGBoost采用二阶导信息,更快收敛,由于属于“随机森林族”,所以有天然好的泛华能力。


致谢:邹博先生



  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值