XGBOOST(一)

本文深入介绍了XGBoost算法,从集成算法与Boosting的概念出发,详细讨论了决策树与CART树,接着讲解了Gradient Boosting算法与GBDT。XGBoost作为Gradient Boosting的优化版,通过正则化目标和梯度提升方法避免过拟合,提升模型性能。
摘要由CSDN通过智能技术生成

轮回Pan  Refinitiv创新实验室ARGO 

“本文作者为Argo特约AI专家, 含有大量有些难度数学公式,预计阅读时间15分钟”


 

XGBoost自2014年由陈天奇博士提出以来,2015年便开始在kaggle的竞赛中频频发力,绝大多数冠军团队都使用了这一算法。它可靠、灵活,而且准确。在大多数的回归和分类问题上,XGBoost的实际表现都十分耀眼,因此在工作中大家可能频繁接触到这一算法。之前作者看了陈天奇博士的XGBoost论文和相应的Slides,翻译和总结了一些内容,所以才有了这篇文章。


 

因为XGBoost的提出基于前辈们对于机器学习算法的不断开拓创新,是分阶段进化的产物,所以本文将从这几个阶段逐层展开:

 

  • 集成算法与Boosting
  • 决策树与CART树
  • Gradient Boosting算法与GBDT
  • XGBOOST


 

一 集成算法与Boosting

 

之前ARGO讲随机森林算法时,我们曾提到过随机森林算法是Bagging算法,是集成算法的一种表现形式。而Boosting算法,则是集成算法的另外一种典型的形式。

 

集成算法的历史可以追溯到Valiant和 Kearns提出了 PAC学习模型,在这个模型中,两人提出了 弱学习器是否可以和强学习器等价的问题。因为一旦等价,就意味着从此以后,人们不必在花费大量的代价去追寻强学习器,而可以依靠某种固定的方式把弱学习器提升为强学习器。1990年, Schap ire构造出一种多项式级的算法 ,对该问题做了肯定的证明,这也是最初的Boosting算法的原型。自此,机器学习领域的提升算法开始繁荣发展。

 

集成算法有两个基本的要求:一 弱学习器不能太弱(低于50%的正确率),二 各个弱学习器不同Bagging和Boosting两种集成算法在训练得到不同的弱学习器上,采用了不同的方法。Bagging对每个弱学习器训练时,使用训练样本的随机放回采样,各个弱学习器使用的训练样本分布类似,但是样本不全相同,最后在使用弱学习器投票产生结果时权重一样,注重的是减少拟合的方差Boosting算法的弱学习器训练不抽样,而且只能顺序进行,其训练依赖上次的弱学习器的结果。比如基于改变样本权重的AdaBoost,每次弱学习器的训练结果里,错分的样本将增加权重,分对的样本减少权重。这样,其投票权重也是按照其正确率各有不同,拟合上注重的是减少其偏差。在Boosting算法中,还有典型的在下文介绍的Gradient Boosting,其基于梯度下降方法计算得到不同的弱学习器。

 

Boosting算法是一种广义加法模型,在Boosting算法里,选择不同的损失函数会有不同的具体的算法:

比如大家熟知的AdaBoost是指数损失函数,而今天所说的XGBoost,则以Gradient Boosting为基础。Boosting算法的弱学习器原则上没有要求,任何的弱学习器都可以跟Boosting算法集成。但是在工程实践中,一般会选用简单的树。XGBoost对于传统GBDT做了优化优化,继承了其选用CART树作为其弱分类器的算法模型。

 

 

二 决策树与CART树

 

决策树之前已经着重讲过ID3, 对于其他类型的树也有了一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值