集成学习之bagging,stacking,boosting

集成学习之bagging,stacking,boosting

首先吐槽下知乎标题栏字数限制太少了吧。这标题已经不允许让我多加一个字了。俗话说,如果你不能向一个老奶奶解释清楚这个概念,那表示你没掌握这个概念。所以这篇文章我尽量简单,如果有公式,也是看不看都不影响理解的公式。如果能让读者你觉得读完就有醍醐灌顶的感觉,那将会是笔者的莫大欣慰。


这篇文章主要讲解集成学习三种方法。集成学习(Emsemble Learning)是通过结合几个模型的元算法(meta-algorithm),使得最后的表现比任何一个模型好。在Kaggle,集成学习是取得高排名的不二法宝。本文介绍集成学习的三种模式,以便帮助读者对自己的最后模型进行决策。这三种方法以及他们的效果分别是:

  1. Bagging:减少 variance
  2. boosting: 减少 bias
  3. stacking:增强预测效果

1.bagging

Bagging 是 bootstrap aggregation的缩写。bagging对于数据集进行取样,每个数据点有同等几率被采样,然后创建n个模型,每个模型进行m个数据采样,最后进行投票(voting)得出最后结果。


例如n=4,m=4,数据条目数味8,bagging过程如下:每个bag从数据集里随机取样,然后训练,如下图


训练好后,预测新数据时,过程是一个投票(voting)。voting过程如下:


Bagging已经有很广泛的应用,例如random forest就是把n个decision tree进行bagging,然后通过投票选出最可能的结果。


为什么bagging可以降低variance?这里打个比方:

一个班级有50个人,如果这个50个人同时朗读,你会觉得对你注意力造成影响。因为他们声音的variance很大。variance衡量的是每个时间点的幅度与总体均值的关系。如果你把他们齐读的声音作为波形图,你会发现波形非常抖,离中轴很远,也就是variance非常大,大概是这样的。


但如何他们是自由读呢?很有可能的是正负波形有一部分抵消,然后各种声音混合,产生这样的声波:

在bagging中,单个人说话的幅度各自产生variance,但加起来总的bias没降低,也就是分贝其实并没降低。



2.boosting

相比下boosting比较复杂,但也很巧妙。

Bagging的思想比较简单,它是均匀概率分布,有放回的,每个bag或者说predictor是平行的。

boosting的每一次抽样的样本分布都是不一样的,每个predictor是有顺序的。

boosting创建了一系列predictor,或者说是learner。前面的learner用简单的模型去适配数据,然后分析错误。然后会给予错误预测的数据更高权重,然后用后面的learner去修复。boosting通过把一些列的weak learners串起来,组成一个strong learners。


最常用的方法是AdaBoost[1],是adaptive boosting的简称,为了使得本文可读性增加,我把这Adaboost单独写一篇文章,具体可以参考

桔了个仔:AdaBoost算法以及公式傻瓜式一步一步超详细讲解带示例zhuanlan.zhihu.com图标

比喻一下,大家做过作业吧,有收集过错题本吗?今天考试我这道题做错了,我把它记在错题本里,下次考试前,我就单独翻开错题本单独做一遍。如果下次考试做对了,就从错题本里删除,否则,在错题本里把这道题再做一次。这样每次下去,你的考试成绩就很可能提高。Boosting就是这样的原理。


3.Stacking

stacking的算法如上图。其实和和bagging不同的是,stacking通常是不同的模型。

第一步,有T个不同模型,根据数据,各自独立训练。每个模型输出结果为 h_t ,其中t= 1,2,3...T

第二步,根据每个模型预测,创建新的『训练集』,训练集的数据(X)是预测结果,Y是实际结果。

第三步,再训练一个classifier,这里叫meta-classifier,来从各个预测中再生成最后预测。

和bagging有点相似,不一样的是:

  1. bagging每个classifier其实是同一种模型
  2. bagging每个bag用部分数据训练,stacking每个classifier都用了全部训练数据

个人实践,如果第三步没有足够训练数据,可以取平均。如果有足够数据,可以用线性回归,毕竟数据维度有点太低。如果有读者有更好实践,请大声在评论区喊出来。



Reference:

[1] towardsdatascience.com/

编辑于 2018-08-14

文章被以下专栏收录