集成方法概述
集成学习是一种机器学习范式。
在集成学习中,我们会训练多个模型(通常称为「弱学习器」)解决相同的问题,并将它们结合起来以获得更好的结果。最重要的假设是:当弱模型被正确组合时,我们可以得到更精确的模型
也就是说,集成学习有两个主要的问题需要解决,第一是如何得到若干个个体学习器,第二是如何选择一种结合策略,将这些个体学习器集合成一个强学习器。
在集成学习理论中,我们将弱学习器(或基础模型)称为「模型」
,这些模型可用作设计更复杂模型的构件。在大多数情况下,这些基本模型本身的性能并不是非常好,这要么是因为它们具有较高的偏置
(例如,低自由度模型),要么是因为他们的方差太大导致鲁棒性不强
(例如,高自由度模型)。
集成方法的思想是通过将这些弱学习器的偏置/
或方差
结合起来,从而创建一个「强学习器」(或「集成模型」),从而获得更好的性能。
很重要的一点是: 我们对弱学习器的选择应该和我们聚合这些模型的方式相一致。如果我们选择具有低偏置高方差的基础模型
,我们应该使用一种倾向于减小方差的聚合方法
;而如果我们选择具有低方差高偏置的基础模型
,我们应该使用一种倾向于减小偏置
的聚合方法
集成学习在各个规模的数据集上都有很好的策略。
- 数据集大:划分成多个小数据集,学习多个模型进行组合
- 数据集小:利用Bootstrap方法进行抽样,得到多个数据集,分别训练多个模型再进行组合
集合方法可分为两类:
- 序列(串行)集成方法,其中参与训练的基础学习器按照顺序生成,学习器之间存在强依赖关系。
代表算法是boosting系列算法
。序列方法的原理是利用基础学习器之间的依赖关系。通过对之前训练中错误标记的样本赋值较高的权重,可以提高整体的预测效果。 - 并行集成方法,其中参与训练的基础学习器并行生成,学习器之间不存在强依赖关系。
代表算法是bagging和随机森林(Random Forest)系列算法
。并行方法的原理是利用基础学习器之间的独立性,通过平均可以显著降低错误。
学习器生成策略(串行)–boosting
从图中可以看出,Boosting算法的工作机制是首先用带初始权重
的训练集训练出一个弱学习器1,根据弱学习的学习误差率
表现来更新训练样本的权重
,使得之前弱学习器1学习误差率高的训练样本点的权重变高
,使得这些误差率高的点在后面的弱学习器2中得到更多的重视。然后基于调整权重后的训练集来训练弱学习器2.,如此重复进行,直到弱学习器数达到事先指定的数目T,最终将这T个弱学习器通过集合策略
进行整合,得到最终的强学习器。
Boosting系列算法里最著名算法主要有AdaBoost算法和提升树(boosting tree)系列算法
。提升树系列算法里面应用最广泛的是 梯度提升树(Gradient Boosting Tree)。
学习器生成策略(并行)-- bagging、Random Forest
从上图可以看出,bagging的个体弱学习器的训练集是通过随机采样
得到的。通过T次的随机采样,我们就可以得到T个采样集,对于这T个采样集,我们可以分别独立的训练
出T个弱学习器,再对这T个弱学习器通过集合策略
来得到最终的强学习器。
对于这里的随机采样有必要做进一步的介绍,这里一般采用的是自助采样法(Bootstrap sampling)
,即对于m个样本的原始训练集,我们每次先随机采集一个样本放入采样集,接着把该样本放回,也就是说下次采样时该样本仍有可能被采集到,这样采集m次,最终可以得到m个样本的采样集,由于是随机采样,这样每次的采样集是和原始训练集不同的,和其他采样集也是不同的,这样得到多个不同的弱学习器。
随机森林是bagging的一个特化进阶版,所谓的特化
是因为随机森林的弱学习器都是决策树。所谓的进阶
是随机森林在bagging的样本随机采样基础上,又加上了特征的随机选择,其基本思想没有脱离bagging的范畴
结合策略之学习法–堆叠法(Stacking)
对于学习法,代表方法是stacking
,当使用stacking的结合策略时, 我们不是对弱学习器的结果做简单的逻辑处理,而是再加上一层学习器,也就是说,我们将训练集弱学习器-0级(0 level)学习器的学习结果作为输入,将训练集的输出作为输出,重新训练一个学习器-1级(1 level)学习器来得到最终结果。
在这种情况下,我们将弱学习器称为初级学习器
,将用于结合的学习器称为次级学习器
。对于测试集,我们首先用初级学习器预测一次,得到次级学习器的输入样本,再用次级学习器预测一次,得到最终的预测结果。
Stacking是一种将弱学习器集成进行输出的策略,其中,在stacking中,所有的弱学习器被称作0级(0 level)学习器,他们的输出结果被一个1级(1 level)学习器接受
,然后再输出最后的结果。这是实际上是一种分层的结构
,前面提到的就是一种最基本的二级Stacking。另外,在bagging或者boosting中,所有的弱学习器一般都要求是相同的模型,如决策树,而stacking中可以是不同的模型,如KNN、SVM、LR、RF等。
传送门
常用的模型集成方法介绍:bagging、boosting、stacking
「Stacking」与「神经网络」
【SPA大赛】腾讯广告点击大赛:对stacking的一些基本介绍