理解Kaggle神器——Xgboost

题记

  • Xgboost作为集成模型的一个代表,一直以优异的性能著称,很多Kaggle比赛的获奖者都非常偏爱使用这个模型。然而,这个模型背后的原理,却比一般的集成模型更为复杂和难以理解。 这次对Xgboost的推导过程和重点内容做一些整理,尽量通俗易懂,希望帮助大家更好地理解Xgboost。

学习残差

  • Xgboost是一个由多个基模型构成的集成模型,每一个模型都在学习上一个模型的残差。因此,每多一棵树我们就离真实值更近了一步。最后,将所有模型的预测结果求和,作为最终的预测结果。
    在这里插入图片描述
  • 以上图为例,这次我们只看小boy,假设小boy的真实值为3,tree1的学习结果为2,则第二颗树是学习目标是真实值和预测值的差值(3-2)=1,而tree2学到了0.9。则最终对boy的预测值为2+0.9 = 2.9。是不是和真实值3非常接近?
  • 关键点:
    1.最终的预测值w,是由每颗树的结果求和得到的。
    2.我们可以将一个预测结果拆分成 前面所有树的预测结果+新增树的预测结果
    y ^ i ( t ) = ∑ k = 1 t f k ( x i ) = y ^ i ( t − 1 ) + f t ( x i ) \hat { y } _ { i } ^ { ( t ) } = \sum _ { k = 1 } ^ { t } f _ { k } \left( x _ { i } \right) = \hat { y } _ { i } ^ { ( t - 1 ) } + f _ { t } \left( x _ { i } \right) y^i(t)=k=1tfk(xi)=y^i(t1)+ft(xi)

正则化项

  • 为了避免过拟合的现象,我们从两个方面去约束Xgboost。
    1.叶子节点个数 (避免树过于庞大)
    2.对w进行L2正则化 (避免叶子节点上的值过分大和过分小)
    Ω ( f t ) = γ T + 1 2 λ ∑ j = 1 T w j 2 \Omega \left( f _ { t } \right) = \gamma T + \frac { 1 } { 2 } \lambda \sum _ { j = 1 } ^ { T } w _ { j } ^ { 2 } Ω(ft)=γT+21λj=1Twj2
    其中: T T T为一颗树上的叶子节点个数
    w w w 为叶子节点的权重值(可以理解成预测)
    γ \gamma γ λ \lambda λ 为代表约束力度的系数
  • 举例 计算正则化项 Ω \Omega Ω
    在这里插入图片描述

目标函数

  • 首先,我们想要优化的 目标函数 = 损失函数 l l l+正则化项 Ω \Omega Ω
    O b j ( t ) = ∑ i = 1 n l ( y i , y ^ i ( t ) ) + ∑ i = 1 t Ω ( f i ) O b j ^ { ( t ) } = \sum _ { i = 1 } ^ { n } l \left( y _ { i } , \hat { y } _ { i } ^ { ( t ) } \right) + \sum _ { i = 1 } ^ { t } \Omega \left( f _ { i } \right) Obj(t)=i=1nl(yi,y^i(t))+i=1tΩ(fi)
  • 将t棵树的总预测分解成前面t-1棵的总预测和最新的t棵的预测两部分,并且补充上常数项,得到
    O b j ( t ) = ∑ i = 1 n l ( y i , y ^ i ( t − 1 ) + f t ( x i ) ) + Ω ( f t ) +  constant  O b j ^ { ( t ) } = \sum _ { i = 1 } ^ { n } l \left( y _ { i } , \hat { y } _ { i } ^ { ( t - 1 ) } + f _ { t } \left( x _ { i } \right) \right) + \Omega \left( f _ { t } \right) + \text { constant } Obj(t)=i=1nl(
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值