集成学习
通过构建并结合多个学习器来完成学习任务
例如先产生一组“个体学习器”,再用某种策略将它们结合起来.个体学习器通常由一个现有的学习算法从训练数据产生,此时集成中只包含同种类型的个体学习器,这样的集成是“同质”的,同质集成中的个体学习器亦称“基学习器”,相应的学习算法称为“基学习算法”;集成也可包含不同类型的个体学习器,例如同时包含决策树和神经网络,这样的集成是“异质”的,异质集成中的个体学习器由不同的学习算法生成,这时就不再有基学习算法;相应的,个体学习器一般不称为基学习器,常称为“组件学习器”或直接称为个体学习器
要求个体学习器至少不差于弱学习器
目前的集成学习方法大致可分为两大类,即个体学习器间存在强依赖关系、必须串行生成的序列化方法,以及个体学习器间不存在强依赖关系、可同时生成的并行化方法;前者的代表是Boosting,后者的代表是 Bagging 和 “随机森林”
Bagging(如随机森林)通过组合多个独立训练的模型来降低方差,因为每个模型都是在不同的数据子集上训练的,从而减少了模型的波动。然而,Boosting 的重点是逐步降低偏差,而不是方差。Boosting 的模型组合是顺序的,每个模型都在前一个模型的基础上进行优化,而不是独立训练的。因此,Boosting 更适合处理偏差较高的问题,而不是方差较高的问题
Boosting
这族算法的工作机制类似:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器;如此重复进行,直至基学习器数目达到事先指定的值T,最终将这亇个基学习器进行加权结合
AdaBoost
通过基学习器的线性组合来最小化指数损失函数\(\ell_{\exp}(H \mid \mathcal{D}) = \mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}} \left[ e^{-f(\boldsymbol{x}) H(\boldsymbol{x})} \right]\)

分类器权重更新公式是基于调整后的权重能最小化指数损失函数计算得到的
Boosting算法要求集学习器能对特定的数据分布进行学习,这可通过“重赋权法”实现,即在训练过程的每一轮中,根据样本分布为每个训练样本重新赋予一个权重,也是Adaboost采用的方法
对无法接受带权样本的基学习算法,则可通过“重采样法”(re-sampling)来处理,即在每一轮学习中,根据样本分布对训练集重新进行采样,再用重采样而得的样本集对基学习器进行训练
一般而言,这两种做法没有显著的优劣差别。需注意的是,Boosting 算法在训练的每一轮都要检查当前生成的基学习器是否满足基本条件(例如检查当前基分类器是否是比随机猜测好),一旦条件不满足,则当前基学习器即被抛弃,且学习过程停止.在此种情形下,初始设置的学习轮数T也许还远未达到,可能导致最终集成中只包含很少的基学习器而性能不佳,若采用“重采样法”,则可获得“重启动”机会以避免训练过程过早停止,即在抛弃不满足条件的当前基学习器之后,可根据当前分布重新对训练样本进行采样,再基于新的采样结果重新训练出基学习器,从而使得学习过程可以持续到预设的T轮完成.
Bagging和随机森林
欲得到泛化性能强的集成,集成中的个体学习器应尽可能相互独立;虽然“独立”在现实任务中无法做到,但可以设法使基学习器尽可能具有较大的差异
给定一个训练数据集,一种可能的做法是对训练样本进行采样,产生出若干个不同的子集,再从每个数据子集中训练出一个基学习器,这样,由于训练数据不同,我们获得的基学习器可望具有比较大的差异,然而,为获得好的集成,我们同时还希望个体学习器不能太差,如果采样出的每个子集都完全不同,则每个基学习器只用到了一小部分训练数据,甚至不足以进行有效学习,这显然无法确保产生出比较好的基学习器,为解决这个问题,我们可考虑使用相互有交叠的采样子集.
Bagging基于前面提及的自主采样法采样出T个含 m 个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合这就是 Bagging 的基本流程
在对预测输出进行结合时,Bagging 通常对分类任务使用简单投票法,对回归任务使用简单平均法;若分类预测时出现两个类收到同样票数的情形,则最简单的做法是随机选择一个,也可进一步考察学习器投票的置信度来确定最终胜者

因为Bagging 主要关注降低方差,因此对于不剪枝决策树、神经网络等易受样本扰动的学习器上效用较为明显
随机森林(RF)在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入随机属性选择
具体来说,传统决策树在选择划分属性时是在当前结点的属性集合(假定有d个属性)中选择一个最优属性;而在RF 中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,再从这个子集中选择一个最优属性用于划分,参数k控制了随机行的引入程度,k=d,就等价于传统决策树,一般建议\(k=log_2d\)
随机森林中基学习器的多样性不仅来自样本扰动,还来自属性扰动
结合策略
有了多个学习器后,自然要考虑如何对这些学习器的输出进行结合,对于数值型输出,最简单的方法就是通过简单平均或者加权平均;对于类别型的输出,则类似地有绝对多数投票法(若某标记得票过半数,则预测为该标记,否则拒绝预测),相对多数得票法(选择得票最多的标记),加权得票法
训练数据很多时,更为合适的结合策略是使用学习法,也就是使用另一个学习器来进行结合,把个体学习器称为初级学习器,将用于结合的学习器称为次级学习器,stacking先从初始数据集中训练除初级学习器,再生成一个新数据集用于训练次级学习器,在这个新数据集中,初级学习器的输出被当作样例输入特征,而初始样本的标记仍然作为样例标记

浙公网安备 33010602011771号