XgBoost详解

Tree Ensemble

参数对应树的结构,以及每个叶子节点上的预测分数

如何学习参数

  • 定义合理的目标函数,然后尝试优化目标函数
    • 我们可以把模型定义成 yi^=Kk=1fk(xi)    fkF
    • 因此目标函数可以写为Obj(Θ)=ni=1l(yi^,yi)+Kk=1Ω(fk)

模型学习:Additive Trainning

这里写图片描述

  • 那么问题来了,第t论应该选取什么模型呢?答案很明显:使
    这里写图片描述

  • 对于一般的平方误差损失,还可以写为一下二次函数
    这里写图片描述
    很明显,上面的二次函数的最优解为yiyi^(t1),也就是残差的定义

  • 不失一般性,对于更加general的情况
    这里写图片描述
  • 到了这里,我们可以看到,这样一个形式可以包含所有可以求导的目标函数。因此可以求解回归,分类,排序问题。

    树的复杂度定义

  • 首先我们先把树拆成两部分,结构函数q(x)和权重函数w(x)
    这里写图片描述

  • 下面我们给出复杂度的一种定义,当然这不唯一。但下面给出的定义学习出来的效果往往还不错
    这里写图片描述

    求解目标函数,建立决策树

  • 首先整理一下目标函数
    这里写图片描述
    定义Gj=iIjgi     Hj=iIjhi

    上式可以整理为

    Obj(t)=j=1T[Gjwj+12(Hj+λ)w2j]+γT

    不难看出,关于这个二次函数的最小值即为wj=GjHj+λ,此时目标函数的最小值为
    Obj(t)=12j=1T[G2jHj+λ]+γT

    这里写图片描述
    有了上面的理论推导,我们可以把建立决策树的过程分为两部分
  • 建立决策树结构

    与ID3算法类似,也是利用贪心法建立树的结构,每一次尝试对已有的叶子进行分割,只不过这里的分割标准不再是信息增益,而是以下公式
    这里写图片描述
    对于每次扩展,我们要枚举所有的分割方案,如何高效的枚举所有的分割呢?下面是x<a的分割
    这里写图片描述
    不难看出,对于所有的a,我们只要从左到右扫描一遍,就可以枚举所有的分割方案,然后通过上述公式计算每种分割的分数,选出最优分割。
    使heuristic

  • 确定叶子节点的权值
    一旦树的结构确定了,权值可以利用公式

    wj=GjHj+λ
    来确定

    最后一点思考

    XgBoost如何处理带权重的样本呢?

    这里写图片描述

    算法流程示意图

    这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值