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
    评论
XGBoost(eXtreme Gradient Boosting)是一种基于梯度提升树的机器学习算法,它在各种机器学习竞赛中表现出色。下面是XGBoost的原理和公式推导: 1. 原理: XGBoost是一种集成学习算法,通过组合多个弱学习器(决策树)来构建一个强学习器。它采用了梯度提升的思想,每一轮迭代都通过拟合前一轮模型的残差来训练新的模型,然后将新模型加入到集成中。 2. 损失函数: XGBoost使用了一种特殊的损失函数,称为目标函数。目标函数由两部分组成:损失函数和正则化项。常用的损失函数有平方损失函数、逻辑损失函数等。 3. 梯度提升: 在XGBoost中,每个决策树都是通过梯度提升来构建的。梯度提升的过程可以简单描述为以下几个步骤: - 初始化模型:将初始预测值设置为常数,通常为训练集样本的平均值。 - 计算残差:计算当前模型对训练集样本的预测值与真实值之间的差异,得到残差。 - 拟合决策树:使用残差作为目标变量,拟合一个决策树模型。 - 更新模型:将新的决策树模型加入到集成中,并更新模型的预测值。 - 重复以上步骤,直到达到预定的迭代次数或满足停止条件。 4. 正则化: 为了防止过拟合,XGBoost引入了正则化项。正则化项由两部分组成:树的复杂度和叶子节点权重的L1或L2正则化。通过控制正则化参数,可以平衡模型的复杂度和拟合能力。 5. 公式推导: XGBoost的公式推导涉及到目标函数、损失函数、正则化项等,具体推导过程较为复杂。你可以参考XGBoost的论文《XGBoost: A Scalable Tree Boosting System》中的相关推导部分,详细了解公式推导的细节。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值