集成学习 (ensemble learning) 通过构建并结合多个学习器来完成学习任 务,有时也被称为多分类器系统(multi-classifier system) 、基于委员会的学 (committee-based learning) 等.
集成也可包含 不同类型的个体学习器,例如同时包含决策树和神经网络,集成学习通过将多个学习器进行结合,常可获得比单一学习器显著优越的泛化性能 ,都是针对弱学习器进行的,要获得好的集成, 个体学习器应"好而不同”
根据个体学习器的生成方式,目前的集成学习方法大致可分为两大类?即 个体学习器问存在强依赖关系、必须串行生成的序列化方法?以及个体学习器 间不存在强依赖关系、可同时生成的并行化方法;前者的代表是 Boosting ,后 者的代表是 Bagging 和"随机森林" (Random Forest).
Boosting 是一族可将弱学习器提升为强学习器的算法.这族算法的工作机 制类似:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练 样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注, 然后基于调整后的样本分布来训练下一个基学习器;如此重复进行,直至基学 习器数目达到事先指定的值 最终将这 个基学习器进行加权结合.
Boosting 算法要求基学习器能对特定的数据分布进行学习,这可通过"重 赋权法" (re-weighting) 实施,即在训练过程的每一轮中,根据样本分布为每个 训练样本重新赋予一个权重,, Boosting 算法在训练的每一轮都 要检查当前生成的基学习器是否满足基本条件(,一旦条件不满足,则当前基学习器即被抛弃, 且学习过程停止
欲得到泛化性能强的集成,集成中的个体学习器应尽可能相 互独立;虽然"独立"在现实任务中无法做到,但可以设法使基学习器尽可能 具有较大的差异.Bagging [Breiman, 1996a] 是井行式集成学习方法最著名的代表.
从偏差方差分解的角度看, Bagging 主要关注降低方差,因此它在不剪枝 决策树、神经网络等易受样本扰动的学习器上效用更为明显.我们以基于信息 增益划分的决策树为基学习器,在表 4.5 的西瓜数据集 3.0α 上运行 Bagging 法,
随机森林(Random Forest ,简称 RF) [Breiman, 2001a] Baggi吨的一个 扩展变体.盯在以决策树为基学习器构建 Bagging 集成的基础上,进一步在 决策树的训练过程中引入了随机属性选择随机森林简单、容易 现、计算开销 小,令人惊 是, 它在很多现实任 务中展现出强大的性能,被誉为"代表集成学习 技术水平的方法",随机森林的收敛性与 Bagging 相似
当训练数据很多时?一种更为强大的结合策略是使用"学习法",即通过另一个学习器来进行结合.
我们把个体学习器称为初级学习器,用于结合的学习器称为次级学习器或元学习器(meta-learn凹)
Stacking 先从初始数据集训练出初级学习器,然后"生成"一个新数据集 用于训练次级学习器.在这个新数据集中,初级学习器的输出被当作样例输入 特征?而初始样本的标记仍被当作样例标记.
在训练阶段,次级训练集是利用初级学习器产生的,若直接用初级学习器 的训练集来产生次级训练集,则过拟合风险会比较大;因此?一般是通过使用交 叉验证或留一法这样的方式 用训练初级学习器未使用的样本来产生次级学习 器的训练样本.
贝叶斯模型平均(Bayes Model A veraging,简称 BMA)基于后验概率来为 不同模型赋予权重 可视为加权平均法的一种特殊实现.
顾名思义,多样性度量(diversity measure) 是用于度量集成中个体分类器的 多样性,即估算个体学习器的多样化程度.典型做法是考虑个体分类器的两两 相似/不相似性.
在集成学习中需有效地生成 样性大的个体学习器 单地直接用初始 数据训练出个体学习器相比,如何增强多 性呢?一般思路是在学习过程中引 入随机 ,常见做法主要 对数据样本、 输入属性、输出表示 数进行 扰动,给定初始数据集 可从中产生出不同的数 子集 再利用不 的数据子集 训练出不同的个体学习器.数据样本扰动通常是基于采样法 如在 Bag ing 中使用 助采样,在 AdaBoost 中使用序列采样. 此类做法简单高效,使用最 广.对很多常见的基学 ,例如决 树、 神经 练样本稍加变化就会 导致 习器有显 变动,数据样本扰动法对这样的"不稳定基 习器"很有效; 然而,有 些基学习器对数据样本的扰动不 感,例如线性学习器、支持向量 朴素贝叶斯、 学习器等 这样的基学习器称为稳定基学习器(stabl base learn r) ,对此类基学习器进行集成往 需使用输入属性扰
训练样本通常由一组属性描述,不同的"子空间" (subspace ,即属性子 集)提供了观察数据的不同视角.显然 从不同子空间训练出的个体学习器必然 有所不同.著名的随机子空间(random subspace)算法 [Ho 1998] 就依赖于输入 属性扰动,该算法从初始属性集中抽取出若干个属性子集,再基于每个属性子 集训练一个基学习器,算法描述如图 8.11 所示.对包含大量冗余属性的数据, 在子空间中训练个体学习器不仅能产生多样性大的个体,还会因属性数的减少 而大幅节省时间开销,同时?由于冗余属性多,减少一些属性后训练出的个体学 习器也不至于太差.若数据只包含少量属性,或者冗余属性很少?则不宜使用输 入属性扰动法.
不同的多样性增强机制可间时使用