一 引言
集成学习(ensemble learning),它通过将多个学习器集成在一起来达到学习的目的。主要是将有限的模型相互组合,其名称有时也会有不同的叫法,有时也会被称为多分类器系统(multi-classifier system)、委员会学习(committee learning)。【1】
集成学习利用一些方法改变原始训练样本的分布,构建多个不同的学习者器,然后将这些学习器组合起来完成学习任务,集成学习可获得比单一学习器显著优越的泛化性能,对 “弱学习器” (weak learner) 尤为明显。
要获得好的集成,个体学习器要有一定的“准确性”,并且要有“多样性”(diversity),即学习器间具有差异。这些学习器的不同的地方可以是:
- 不同的学习算法
- 具有不同特征的数据集
- 具有不同子集的数据集
根据是否使用不同的学习算法,集成学习可以分为同质集成与异质集成【2】:
- 同质集成:集成中只包含同种类型的个体学习器,例如“决策树集成”中全是决策树,“神经网络集成”中全是神经网络,称集成是“同质”的(homogeneous)。同质集成中的个体学习器亦称 “基学习器”(base learner) ,相应的学习算法称为 “基学习算法”(base learning algorithm)。
- 异质集成:集成中的个体学习器由不同的学习算法生成,例如同时包含决策树和神经网络,这样的集成是“异质”的(heterogenous)。异质集成中个体学习器常称为 “组件学习器”(component learner) 或直接称为个体学习器。
在同质学习中,可以根据不同的改变训练集的方法又可以分为:
-
Bagging:Resample training data。
或个体学习器间不存在强依赖关系,可以同时生成的并行化方法。
-
Boosting:Reweight training data
或个体学习器间存在强依赖关系,必须串行生成的序列化方法。
二 Bagging
从训练集从进行子抽样组成每个基模型所需要的子训练集,对所有基模型预测的结果进行综合产生最终的预测结果。【3】算法描述如下:
-
在训练数据集中随机采样,所谓的随机采样(bootsrap)就是从我们的训练集里面采集固定个数的样本,但是每采集一个样本后,都将样本放回。也就是说,之前采集到的样本在放回后有可能继续被采集到。(初始训练集中约有63.2%的样本会出现在采样集中【1】)
对于我们的Bagging算法,一般会随机采集和训练集样本数m一样个数的样本。这样得到的采样集和训练集样本的个数相同,但是样本内容不同。
-
训练一个基模型,对不同的子集进行训练。得到T个基模型。
-
T个基模型对测试数据进行预测,得到测试结果。
-
将T中结果综合起来。分类任务通常使用投票的方式得出结果,回归任务用平均的方式得到结果。
整个过程如下图所示:
Bagging
适用于不稳定的学习算法。Bagging
会略微降低稳定的学习算法的性能。这里的稳定与不稳定的含义是:训练集的小变化可能导致预测结果有很大变化。
- 不稳定学习算法:神经网络、决策树、回归树、线性回归中的子集选择
- 稳定学习算法:K近邻
三 Boosting
Boosting
是一类可以将弱学习器提升为强学习器的算法,这类算法的工作原理类似:
- 先从初始训练集训练出一个基学习器
- 根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注
- 基于调整后的样本分布来训练下一个学习器
- 如此重复进行,直至基学习器数目达到事先指定的值T
- 最终将这T个基学习器进行加权结合
Boosting
中最流行的算法是AdaBoost(Adaptive Boosting)
——自适应增强算法。其工作原理如下组图:
具体的算法步骤【1】:
参考
【1】机器学习——周志华