XGBoost: A Scalable Tree Boosting System

来源:互联网 发布:江南大学网络教育入口 编辑:程序博客网 时间:2024/05/16 02:36

[ 论文阅读地址 ]

1. 背景知识介绍

函数的风险

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

R(h)=E[L(h(x),y)]=L(h(x),y)dP(x,y)

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

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

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

Remp(h)=1mi=1mL(h(xi),yi)

  经验风险最小化原则表明,我们要找的函数h 应满足:
h=argminhHRemp(h)

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

加法模型

  加法模型定义如下:

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

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

前向分布算法

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

minβ,γi=1NL(yi,βb(xi;γ))

  给定训练数据集T={(x1,y1),(x2,y2),,(xN,yN)}xiXRnyiY={1,+1} 。损失函数L(y,f(x)) 和基函数的集合{b(x;γ)} ,学习加法模型f(x) 的前向分布算法如下:
前向分布算法

2.提升树(Boosting tree)

提升树模型介绍

提升树模型

提升树算法

这里写图片描述

3.梯度提升(Gradient boosting)

模型介绍

梯度提升模型介绍

算法介绍

这里写图片描述

3.XGBoost

模型介绍

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

这里写图片描述

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


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

1 0