浅谈 GBDT

在 Xgboost 那篇文章 (Kaggle 神器 xgboost) 中提到了 Gradient Boosted Decision Trees,今天来仔细看看 GBDT。

本文结构:

  • 什么是 GBDT ?
  • GBDT 与 Adaboost 的区别与联系是什么 ?
  • GBDT 与 Xgboost 的区别是什么?

什么是 GBDT?

GBDT(Gradient Boosting Decision Tree,梯度提升决策树),由名字可以看出涉及到三点:

1. 首先是 Boosting:

前面写过一篇 Adaboost 算法,里面简单介绍了 Boosting 的思想:

给定初始训练数据,由此训练出第一个基学习器;
根据基学习器的表现对样本进行调整,在之前学习器做错的样本上投入更多关注;
用调整后的样本,训练下一个基学习器;
重复上述过程 T 次,将 T 个学习器加权结合。

简单讲,就是每次训练单个弱学习器时,都将上一次分错的数据权重提高一点再进行当前单个弱学习器的学习。这样越往后执行,训练出的单个弱学习器就会越在意那些容易分错(权重高)的点。当执行 M 次后,通过加权求和的方式组合成一个最终的学习器。

2. 接着是 Gradient Boosting:

Gradient boosting 是 boosting 的其中一种方法,它主要的思想是,每一次建立单个学习器时,是在之前建立的模型的损失函数的梯度下降方向。

我们知道损失函数(loss function)越大,说明模型越容易出错,如果我们的模型能够让损失函数持续的下降,则说明我们的模型在不停的改进,而最好的方式就是让损失函数在其梯度(Gradient)的方向上下降。

接下来看算法具体细节:

最终模型 F 是多个弱学习器的加权组合:


整体损失函数,其中 P 为模型的参数:


我们要求使损失函数达到最小的参数:


或者写成梯度下降的方式,就是我们将要得到的模型 fm 的参数 {αm,βm} 能够使得 fm 的方向是之前得到的模型 Fm-1 的损失函数下降最快的方向

因为 Fm-1 的损失函数下降最快的方向为:


那我们可以用最小二乘法来得到 αm:


在此基础上,可以得到 βm:


最终得到整体:


完整算法:


3. 然后是 Decision Tree:

GBDT 是 GB 和 DT 的结合,就是当 GB 中的单个学习器为决策树时的情况,此处 DT 使用的是回归树。

下面两个图分别表示 DT 和 由 100 棵树组合成的 GB 在树的深度为 0,3,6 时的效果,0 时就是要拟合的函数的图像,可以看到 GB 可以在有限的深度就能得到比较光滑的的拟合:

Decision Tree
Gradient Boosting

既然都是 boosting 方法,那么 GBDT 与 Adaboost 的区别与联系是什么?

它们都属于 boosting 提升方法:

adaboost 可以表示为 boosting 的前向分布算法(Forward stagewise additive modeling)的一个特例。

在上图中,如何选择损失函数决定了算法的名字。不同的损失函数和极小化损失函数方法决定了 boosting 的最终效果,下面是几个常见的 boosting:

AdaBoost 是通过提升错分数据点的权重来定位模型的不足,
而 Gradient Boosting是通过算梯度(gradient)来定位模型的不足。


GBDT 与 Xgboost 的关系又是什么?

Kaggle 神器 xgboost 这篇文章中简单地提了一下 xgboost 的特点,除了很多优化外它与 GBDT 的区别有:

  • Xgboost 是 GB 算法的高效实现,xgboost 中的基学习器除了可以是CART(gbtree)也可以是线性分类器(gblinear)。

  • xgboost在目标函数中显示的加上了正则化项:


  • GB 中使用 Loss Function 对 f(x) 的一阶导数计算出伪残差用于学习生成fm,xgboost 不仅使用到了一阶导数,还使用二阶导数:


  • CART 回归树中寻找最佳分割点的衡量标准是最小化均方差,xgboost 寻找分割点的标准是最大化,lamda,gama 与正则化项相关:


参考:
统计学习方法
A Gradient Boosting Machine-Jerome H. Friedman
http://homes.cs.washington.edu/~tqchen/pdf/BoostedTree.pdf
http://blog.csdn.net/yangtrees/article/details/7506052
http://blog.csdn.net/shenxiaoming77/article/details/51542982
http://blog.csdn.net/dark_scope/article/details/24863289
http://arogozhnikov.github.io/2016/06/24/gradient_boosting_explained.html


推荐阅读 历史技术博文链接汇总
http://www.jianshu.com/p/28f02bb59fe5
也许可以找到你想要的

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容