开通VIP,畅享免费电子书等14项超值服
首页
好书
留言交流
下载APP
联系客服
2023.09.11
如下图显示出集成学习的一般结构:从训练数据集中根据特定的算法,如决策树算法、BP神经网络算法等,产生多组个体学习器(individuallearner),再用某种策略将它们结合起来,从而生成最终的集成模型。
当所有个体学习器都由同样的学习算法生成时,也即集成中只包含同种类型的个体学习器时,称为同质(homogeneous)集成。同质集成中的个体学习器亦称基学习器(baselearner),相应的学习算法称为基学习算法(baselearningalgorithm)。
当个体学习器由不同的学习算法生成时,称为异质(heterogenous)集成。异质集成中的个体学习器由不同的学习算法生成,这时就不再有基学习算法;相应的,个体学习器一般不称为基学习器,常称为组件学习器(componentlearner)或直接称为个体学习器。
集成学习通过结合多个学习器,通常能获得比单一学习器更优越的泛化性能,对弱学习器(weaklearner)的提升尤为明显,因此集成学习的很多理论都是针对弱学习器进行的,而基学习器有时也被直接称为弱学习器。
Boosting
AdaBoost
Boosting族算法最著名的代表是AdaBoost
基于AdaBoost算法的强分类器的训练
Boosting算法要求基学习器能:
一般而言,两种方法没有显著的优劣差别。
前面提到过想要泛化性能强,个体学习器应尽可能相互独立。但我们也知道独立很难,那咋办呢?
可以设法使基学习器尽可能具有较大的差异:给定一个训练数据集,然后对训练样本进行采样,产生出若干个不同的子集,再从每个数据子集中训练出一个基学习器。这样,由于训练数据不同,获得的基学习器可望具有比较大的差异。然而,为获得好的集成,同时还希望个体学习器不能太差。如果采样出的每个子集都完全不同,则每个基学习器只用到了一小部分训练数据,甚至不足以进行有效学习,这显然无法确保产生出比较好的基学习器。为解决这个问题,可考虑使用相互有交叠的采样子集。
Bagging是并行式集成学习方法最著名的代表。从名字即可看出,它直接基于模型性能评价与选择中的自助采样法(bootstrapsampling)。
给定包含m个样本的数据集,先随机取出一个样本放入采样集中,再把该样本放回初始数据集,使得下次采样时该样本仍有可能被选中,这样,经过m次随机采样操作,我们得到含m个样本的采样集,初始训练集中有的样本在采样集里多次出现,有的则从未出现。继而可采样出T个含m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合,这就是Bagging的基本流程。
在对预测输出进行结合时,Bagging通常对分类任务使用简单投票法,对回归任务使用简单平均法。若分类预测时出现两个类收到同样票数的情形,则最简单的做法是随机选择一个,也可进一步考察学习器投票的置信度来确定最终胜者。Bagging的算法描述图如下:
Bagging集成有以下优点:
随机森林(RandomForest,简称RF)是Bagging的一个扩展变体。RF在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。具体来说,传统决策树在选择划分属性时是在当前结点的属性集合(假定有d个属性)中选择一个最优属性;而在RF中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分。
随机森林简单、容易实现、计算开销小,令人惊奇的是,它在很多现实任务中展现出强大的性能,被誉为代表集成学习技术水平的方法。可以看出,随机森林对Bagging只做了小改动,但是与Bagging中基学习器的多样性仅通过样本扰动(通过对初始训练集采样)而来不同,随机森林中基学习器的多样性不仅来自样本扰动,还来自属性扰动,这就使得最终集成的泛化性能可通过个体学习器之间差异度的增加而进一步提升。
随机森林的收敛性与Bagging相似。如下图所示:
RandomForest算法图描述:
对数值型输出hi(x)∈R,最常见的结合策略是使用平均法(averaging)。
其中wi是个体学习器hi的权重,通常要求
加权平均法的权重一般是从训练数据中学习而得,现实任务中的训练样本通常不充分或存在噪声,这将使得学出的权重不完全可靠.尤其是对规模比较大的集成来说,要学习的权重比较多,较容易导致过拟合。
一般而言,在个体学习器性能相差较大时宜使用加权平均法,而在个体学习器性能相近时宜使用简单平均法。
对分类任务来说,学习器hi将从类别标记集合c1,c2,,cN,中预测出一个标记,最常见的结合策略是使用投票法(voting)。为便于讨论,我们将hi在样本x上的预测输出表示为一个N维向量
其中
是hi在类别标记cj上的输出
即若某标记得票过半数,则预测为该标记;否则拒绝预测。
即预测为得票最多的标记,若同时有多个标记获最高票,则从中随机选取一个。
当训练数据很多时,一种更为强大的结合策略是使用学习法,即通过另一个学习器来进行结合。
Stacking是学习法的典型代表。这里把个体学习器称为初级学习器,用于结合的学习器称为次级学习器或元学习器(meta-learner)。即先从初始数据集训练出初级学习器,然后"生成"一个新数据集用于训练次级学习器。在这个新数据集中,初级学习器的输出被当作样例输入特征,而初始样本的标记仍被当作样例标记。
算法描述图如下,这里假定初级学习器使用不同学习算法产生,即初级集成是异质的。
在训练阶段,次级训练集是利用初级学习器产生的,若直接用初级学习器的训练集来产生次级训练集,则过拟合风险会比较大;因此,一般是通过使用交叉验证或留一法这样的方式,用训练初级学习器未使用的样本来产生次级学习器的训练样本。