XGBoost: A Scalable Tree Boosting System

[ 论文阅读地址 ]

1. 背景知识介绍

函数的风险

  给定关于 X X Y 的空间,学习一个函数 h:XY h : X → Y ,函数的输入 xX x ∈ X ,输出 yY y ∈ Y 。要学习函数 h h ,需要有样本:(x1,y1),(xm,ym) ,其中 xiX,yiY x i ∈ X , y i ∈ Y ,我们的目标是学习到 h(xi) h ( x i )
  形式化的描述如下:假定 X X Y 服从概率分布 P(x,y) P ( x , y ) ,含有 m m 个样本的训练集(x1,y1),(xm,ym) 是从分布 P(x,y) P ( x , y ) 依据独立同分布原则采样得来。这里关于概率分布 P(x,y) P ( x , y ) 的假设,使得我们可以对预测的不确定性进行建模,因为 y y 并不是关于x 的一个确定函数,而是一个随机变量,对于给定的 x x ,服从分布p(y|x)
  同时也假设,已经有一个非负实数损失函数 L(y^,y) L ( y ^ , y ) ,这个函数度量了预测值 y^ y ^ 和实际值 y y 的偏差大小。
  关于h(x) 的风险定义如下:

R(h)=E[L(h(x),y)]=L(h(x),y)dP(x,y)(1) (1) R ( h ) = E [ L ( h ( x ) , y ) ] = ∫ L ( h ( x ) , y ) d P ( x , y )

  学习问题的最终目标是,在固定的函数空间 H H 中学习到这样的函数 h h ∗ ,使得 R(h) R ( h ) 值最小化:
h=argminhHR(h)(2) (2) h ∗ = arg ⁡ min h ∈ H R ( h )

经验风险最小化(Empirical risk minimization)

  通常情况,由于分布 P(x,y) P ( x , y ) 是未知的,风险函数 R(h) R ( h ) 也是未知的。因此,我们使用经验风险作为对风险函数的近似:

Remp(h)=1mi=1mL(h(xi),yi)(3) (3) R e m p ( h ) = 1 m ∑ i = 1 m L ( h ( x i ) , y i )

  经验风险最小化原则表明,我们要找的函数 h h ∗ 应满足:
h=argminhHRemp(h)(4) (4) h ∗ = arg ⁡ min h ∈ H R e m p ( h )

  因此,给予ERM的学习算法变成了解决如上的优化问题。

加法模型

  加法模型定义如下:

f(x)=m=1Mβmb(x;γm)(5) (5) f ( x ) = ∑ m = 1 M β m b ( x ; γ m )

  其中, b(x;γm) b ( x ; γ m ) 为基函数, γm γ m 为基函数的参数, βm β m 为基函数的系数。
  在给定训练数据及 L(y,f(x)) L ( y , f ( x ) ) 的条件下,学习加法模型 f(x) f ( x ) 成为经验风险极小化即损失函数极小化问题:
=minβm,γmi=1NL(yi,f(xi;βm,γm))minβm,γmi=1NL(yi,m=1Mβmb(xi;γm))(6)(7) (6) min β m , γ m ∑ i = 1 N L ( y i , f ( x i ; β m , γ m ) ) (7) = min β m , γ m ∑ i = 1 N L ( y i , ∑ m = 1 M β m b ( x i ; γ m ) )

前向分布算法

  由于对加法模型的求解是一个复杂的优化问题,因而采用前向分布算法来对加法模型进行求解。
  前向分布算法的想法是:因为学习的是加法模型,如果能从前向后,每一步只学习一个基函数及其系数,逐步逼近优化目标函数式,那么就可以简化优化的复杂度。具体的,每步只需优化如下损失函数:

minβ,γi=1NL(yi,βb(xi;γ))(8) (8) min β , γ ∑ i = 1 N L ( y i , β b ( x i ; γ ) )

  给定训练数据集 T={(x1,y1),(x2,y2),,(xN,yN)} T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x N , y N ) } xiXRn x i ∈ X ⊆ R n yiY={1,+1} y i ∈ Y = { − 1 , + 1 } 。损失函数 L(y,f(x)) L ( y , f ( x ) ) 和基函数的集合 {b(x;γ)} { b ( x ; γ ) } ,学习加法模型 f(x) f ( x ) 的前向分布算法如下:
前向分布算法

2.提升树(Boosting tree)

提升树模型介绍

提升树模型

提升树算法

这里写图片描述

3.梯度提升(Gradient boosting)

模型介绍

梯度提升模型介绍

算法介绍

这里写图片描述

3.XGBoost

模型介绍

  梯度提升算法中,使用了对函数的梯度来作为参数,这样就不能在使用传统的优化算法。因此,作者提出了xgboost以解决这一问题。先考虑如下的优化目标:

这里写图片描述

  其中, y^(t) y ^ ( t ) 是第i个样本在第t轮迭代时的预测值, ft(xi) f t ( x i ) 是待求的参数。
  这里,记 F(x)=l(yi,x) F ( x ) = l ( y i , x ) ,那么 l(yi,y^(t1)i+ft(xi))=F(y^(t1)i+ft(xi)) l ( y i , y ^ i ( t − 1 ) + f t ( x i ) ) = F ( y ^ i ( t − 1 ) + f t ( x i ) ) ,这里使用泰勒展开,取前三项近似得到 F(y^(t1)i+ft(xi))F(y^(t1)i)+F(y^(t1)i)ft(xi)+12F′′(y^(t1)i)ft(xi)f2t(xi) F ( y ^ i ( t − 1 ) + f t ( x i ) ) ≃ F ( y ^ i ( t − 1 ) ) + F ′ ( y ^ i ( t − 1 ) ) ∗ f t ( x i ) + 1 2 F ″ ( y ^ i ( t − 1 ) ) ∗ f t ( x i ) ∗ f t 2 ( x i ) ,因此 L(t) L ( t ) 中对函数的梯度,就转换成了 F F 函数对常数 y^i(t1) 的一阶、二阶导数。


参考李航著《统计学习方法》和此博客

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值