统计学习方法|AdaBoost

01 起

在之前的文章中,我们学习了几种经典的分类算法:KNN,Naive Bayes,Decision Tree,Logistic Regression,SVM。

接下来我们学习一种方法来提升分类效果,这种方法的核心思想就是:三个臭皮匠,顶个诸葛亮。

我们先从集成方法讲起,简单介绍Bagging和Boosting,然后着重介绍提升方法(Boosting),然后给出一种常用的提升方法Adapt Boost(AdaBoost),最后介绍一种AdaBoost的特例,提升树。


02 几种集成方法

学习了那么多经典的分类算法,我们会发现,算法有各自的优势和缺点;处理了那么多数据,我们会发现,数据有好坏均衡之分;那么你有没有想过,将不同的分类器、不同的数据集择优训练,结合得到一个更好的分类器呢?

这就是集成方法,集成方法有这样几种思路:

  1. 不同基本分类器的集成
  2. 同一基本分类器在不同参数设置下的集成
  3. 数据集不同部分分配给不同或相同基本分类器后的集成(Bagging(相同分类器时))
  4. 同一数据集不同权值分配给同一基本分类器的集成(Boosting)

其中第三种思路,数据集不同部分分配给相同基本分类器后的集成,叫做自举汇聚法(Bootstrap Aggregating),即Bagging;第四种思路,同一数据集不同权值分配给同一基本分类器的集成叫提升方法,即Boosting,也是本文的重点。

这两种方法的区别如下,

Bagging过程:

  1. 建立S个新数据集
    从原始数据集选择S次后,得到S个新数据集:新数据集与原数据集大小相等,各数据集都是在原数据集中随机选择一个样本来进行替换得到的,即可以多次选择同一个数据放入某个新数据集中,而原数据集有些数据则不会存在于某个新数据集中。
  2. 学习分类器
    将某个学习算法分别作用于每S个新数据集,得到S个分类器
  3. 投票分类
    要对新数据分类时,用学习到的S个新分类器进行分类,选择分类器投票结果中最多的类别,作为该数据的最终分类结果

相比于Bagging,Boosting有这样一些不同点:

  1. 新数据集不同
    Bagging,通过从原数据集中随机选择数据构造新数据集
    Boosting,通过改变原数据集各数据权重来构造新的数据集
  2. 加权方式不同
    Bagging,训练得到的分类器,等权重投票
    Boosting,对训练得到的分类器加权求和得到最终分类器,权重与分类器分类正确率正相关

下面我们学习提升方法Boosting。


03 提升方法

基本思路

三个臭皮匠,顶个诸葛亮

对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好。

基本概念

  • 强可学习
    一个概念/类,如果存在一个多项式的学习算法能够学习它,且正确率很高,那么就称这个概念是强可学习的
  • 弱可学习
    一个概念/类,如果存在一个多项式的学习算法能够学习它,但学习但正确率仅比随机猜测略好,那么就称这个概念是弱可学习的

一个概念强可学习的充要条件是这个概念是弱可学习的。那么,如果已经发现了弱可学习算法,那么能否将它提升为强可学习算法?

这就是提升方法的由来。

我们再来看看提升方法要解决的两个问题

1. 在每一轮如何改变训练数据的权值或概率分布?
提高那些被前一轮弱分类器错误分类样本的权值
降低那些被前一轮弱分类器正确分类样本的权值
(使得被错误分类的样本受到下一轮的更多关照)

2. 如何将弱分类器合成一个强分类器?
加权多数表决法:加大分类误差小的弱分类器权值,减小分类误差大的弱分类器权值

这就是提升方法的原理和基本思路,下面我们介绍一种常用且有效的提升方法。


04 AdaBoost

AdaBoost是Adapt Boost的缩写,即可适应提升方法,这种方法可以适应每次优化的模型的训练误差,使得每次训练的准确率都较上一次有尽可能大的提升。

AdaBoost算法

算法特点:不改变所给训练数据,通过不断改变训练数据权值的分布,使得训练数据在基本分类器中起不同的作用

我们可以认为AdaBoost算法是这样的二分类学习方法:

  1. 模型为加法模型
  2. 损失函数为指数函数
  3. 学习算法为前向分步算法

其中,前向分步算法是一种很重要的算法思想,我认为可以总结为:分而治之。其基本思路是:对于一个加法模型(如上述的f(x),如果能从前向后,每一步只学习一个基函数及其系数,逐步逼近目标函数,那么就可以简化优化的复杂度。如此,前向分步算法,将同时求解所有参数的优化问题简化为逐次求解各个参数的优化问题。

前向分步算法:

可以认为,AdaBoost是前向分步算法的特例。

AdaBoost总体来说是一种算法思路,并不是一种具体的算法,因为算法8.1中的步骤(a)的基本分类器并没有指定。如果我们将基本分类器设定为决策树,那么此时的算法就叫做“提升树”。

提升树是以分类树/回归树为基本分类器的提升方法(即,提升树是AdaBoost算法的特例,其基本分类器是决策树),被认为是统计学习中性能最好的方法之一。

不同的提升树算法

  1. 分类问题的提升树 (损失函数为指数函数)
    算法:将算法8.1中的基本分类器限制为分类决策树即可

  2. 回归问题的提升树 (损失函数为平方误差函数)
    算法:


上述介绍的提升方法,损失函数都是指数或平方损失函数,当损失函数为指数函数或平方损失函数时,每一步的优化都很简单,但对一般损失函数而言,每一步的优化都不那么容易,那么能不能找到近似方法去求解呢?

能,这就是梯度提升算法,其关键点是,利用损失函数的负梯度在当前模型的值,作为回归问题提升树算法中残差的近似值,拟合一个回归树


05 总结

本文先从集成方法讲起,简单介绍Bagging和Boosting,然后着重介绍提升方法(Boosting),然后给出一种常用的提升方法Adapt Boost(AdaBoost),最后介绍一种AdaBoost的特例,提升树。

下期我们将利用Python3实现AdaBoost算法,敬请期待~


06 参考

《统计学习方法》 李航 Chapter8

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

推荐阅读更多精彩内容