XGBoost 与 Boosted Tree

本文深入探讨了Boosted Tree算法,包括其同义词、有监督学习的逻辑组成、特别是梯度提升法(GBDT)与模型优化。作者陈天奇介绍了CART回归树作为基学习器,以及如何通过additive training优化模型。文章以XGBoost为例,展示了该算法如何应用于大规模并行任务,并已在多个kaggle比赛中取得优异成绩。
摘要由CSDN通过智能技术生成

作者:陈天奇,毕业于上海交通大学ACM班,现就读于华盛顿大学,从事大规模机器学习研究。

注解:truth4sex 

编者按:本文是对开源xgboost库理论层面的介绍,在陈天奇原文《梯度提升法和Boosted Tree》的基础上,做了如下注解:1)章节划分;2)注解和参考链接(以蓝色红色字体标注)。备注:图片可点击查看清晰版。

1. 前言
应 @龙星镖局  兄邀请写这篇文章。作为一个非常有效的机器学习方法,Boosted Tree是数据挖掘和机器学习中最常用的算法之一。因为它效果好,对于输入要求不敏感,往往是从统计学家到数据科学家必备的工具之一,它同时也是kaggle比赛冠军选手最常用的工具。最后,因为它的效果好,计算复杂度不高,也在工业界中有大量的应用。

2. Boosted Tree的若干同义词
说到这里可能有人会问,为什么我没有听过这个名字。这是因为Boosted Tree有各种马甲,比如GBDT, GBRT (gradient boosted regression tree),MART 1 1,LambdaMART也是一种boosted tree的变种。网上有很多介绍Boosted tree的资料,不过大部分都是基于Friedman的最早一篇文章Greedy Function Approximation: A Gradient Boosting Machine的翻译。个人觉得这不是最好最一般地介绍boosted tree的方式。而网上除了这个角度之外的介绍并不多。这篇文章是我个人对于boosted tree和gradient boosting 类算法的总结,其中很多材料来自于我TA UW机器学习时的一份讲义 2 2

3. 有监督学习算法的逻辑组成
要讲boosted tree,要先从有监督学习讲起。在有监督学习里面有几个逻辑上的重要组成部件 3 3,初略地分可以分为:模型,参数 和 目标函数。

i. 模型和参数
模型指给定输入 xi xi如何去预测 输出  yi yi。我们比较常见的模型如线性模型(包括线性回归和logistic regression)采用了线性叠加的方式进行预测 y^i=jwjxij y^i=∑jwjxij 。其实这里的预测 y y可以有不同的解释,比如我们可以用它来作为回归目标的输出,或者进行sigmoid 变换得到概率,或者作为排序的指标等。而一个线性模型根据 y y的解释不同(以及设计对应的目标函数)用到回归,分类或排序等场景。参数指我们需要学习的东西,在线性模型中,参数指我们的线性系数 w w

ii. 目标函数:损失 + 正则
模型和参数本身指定了给定输入我们如何做预测,但是没有告诉我们如何去寻找一个比较好的参数,这个时候就需要目标函数登场了。一般的目标函数包含下面两项

1

常见的误差函数有 L=nil(yi,y^i) L=∑inl(yi,y^i) 比如平方误差  l(yi,y^i)=(yiy^i)2 l(yi,y^i)=(yi−y^i)2 ,logistic误差函数( l(yi,y^i)=yiln(1+ey^i)+(1yi)ln(1+e

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值