机器学习入门笔记(六):集成学习

集成学习(ensemble learning) 通过构建并结合多个学习器来完成学习任务,有时也被称为 多分类器系统(multi-classifier system)基于委员会的学习(committee-based learning) 等。
这一章的内容大致如下:

  • 个体与集成:同质集成和异质集成有什么不同?集成学习对个体学习器有什么要求?集成学习研究的核心是什么?集成学习分哪两大类?

  • Boosting:Boosting的基本概念?AdaBoost算法的流程?如何基于加性模型最小化指数损失函数来推导?怎样处理基学习算法无法处理带权样本的情况?Boosting的优势是什么?

  • Bagging与随机森林:Bagging算法如何获得各个基学习器的训练集?预测时如何进行结合?相比AdaBoost有什么优势?随机森林的核心思想是什么?相比Bagging有什么优势?

  • 结合策略:平均法是怎样的?投票法是怎样的?学习法又是怎样的?

一.个体与集成

如下图显示出集成学习的一般结构:从训练数据集中根据特定的算法,如C4.5 决策树算法、BP 神经网络算法等,产生多组 个体学习器(individual learner),再用某种策略将它们结合起来,从而生成最终的集成模型。

在这里插入图片描述

当所有个体学习器都由同样的学习算法生成时,也即集成中只包含同种类型的个体学习器时,称为 同质(homogeneous) 集成。同质集成中的个体学习器亦称 基学习器(base learner),相应的学习算法称为 基学习算法(base learning algorithm)

当个体学习器由不同的学习算法生成时,称为 异质(heterogenous) 集成。异质集成中的个体学习器由不同的学习算法生成,这时就不再有基学习算法;相应的,个体学习器一般不称为基学习器,常称为 组件学习器(component learner) 或直接称为个体学习器。

集成学习通过结合多个学习器,通常能获得比单一学习器更优越的泛化性能,对 弱学习器(weak learner) 的提升尤为明显,因此集成学习的很多理论都是针对弱学习器进行的,而基学习器有时也被直接称为弱学习器。

二.Boosting

Boosting

  • 本意----通过增压,加大发动机功率
  • 引申—提升分类器性能

AdaBoost

  • 通过迭代弱分类器而产生最终的强分类器的算法

Boosting 是一族可将弱学习器提升为强学习器的算法。这族算法的工作机制类似:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器;如此重复进行,直至基学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合。

Boosting 族算法最著名的代表是 AdaBoost

基于AdaBoost算法的强分类器的训练
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Boosting 算法要求基学习器能:

  • 特定的数据分布 进行学习,这可通过 重赋权法(re-weighting) 实施,即在训练过程的每一轮中,根据样本分布为每个训练样本重新赋予一个权重。
  • 对无法接受 带权样本 的基学习算法,则可通过 重采样法(re-sampling) 来处理,即在每一轮学习中,根据样本分布对训练集重新进行采样,再用重采样而得的样本集对基学习器进行训练。

一般而言,两种方法没有显著的优劣差别。

如果从偏差 - 方差分解的角度看,Boosting 主要关注降低偏差,因此Boosting能基于泛化性能相当弱的学习器构建出很强的集成。

三.Bagging和随机森林

前面提到过想要泛化性能强,个体学习器应尽可能相互独立。但我们也知道 独立 很难,那咋办呢?

可以设法使基学习器尽可能具有较大的差异:给定一个训练数据集,然后对训练样本进行采样,产生出若干个不同的子集,再从每个数据子集中训练出一个基学习器。这样,由于训练数据不同,获得的基学习器可望具有比较大的差异。然而,为获得好的集成,同时还希望个体学习器不能太差。如果采样出的每个子集都完全不同,则每个基学习器只用到了一小部分训练数据,甚至不足以进行有效学习,这显然无法确保产生出比较好的基学习器。为解决这个问题,可考虑使用 相互有交叠的采样子集

3.1 Bagging

Bagging 是并行式集成学习方法最著名的代表。从名字即可看出,它直接基于模型性能评价与选择中的 自助采样法(bootstrap sampling)

给定包含m 个样本的数据集,先随机取出一个样本放入采样集中,再把该样本 放回 初始数据集,使得下次采样时该样本仍有可能被选中,这样,经过m 次随机采样操作,我们得到含m 个样本的采样集,初始训练集中有的样本在采样集里多次出现,有的则从未出现。继而可采样出T 个含m 个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合,这就是Bagging 的基本流程。

在对预测输出进行结合时, Bagging 通常对分类任务使用 简单投票法,对回归任务使用 简单平均法。若分类预测时出现两个类收到同样票数的情形,则最简单的做法是随机选择一个,也可进一步考察学习器投票的置信度来确定最终胜者。Bagging 的算法描述图如下:

在这里插入图片描述

Bagging 集成有以下优点:

  • 第一,训练一个Bagging 集成与直在使用基学习算法训练一个学习器的复杂度同阶,这说明Bagging 是一个很高效的集成学习算法
  • 第二,与标准AdaBoost 只适用于二分类任务不同,Bagging 能不经修改地用于多分类、回归等任务。
  • 第三,由于每个基学习器只使用了初始训练集中约63.2% 的样本,剩下约36.8% 的样本可用作验证集来对泛化性能进行 包外估计(out-oιbag estimate)。

在这里插入图片描述
从偏差方差分解的角度看,Bagging 主要关注降低方差,因此它在不剪枝决策树、神经网络等易受样本扰动的学习器上效用更为明显。

3.2 随机森林

在这里插入图片描述

随机森林(Random Forest ,简称RF) 是Bagging 的一个扩展变体。RF 在以决策树为基学习器构建Bagging 集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。具体来说,传统决策树在选择划分属性时是在当前结点的属性集合(假定有d 个属性)中选择一个最优属性;而在RF 中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分。

随机森林简单、容易实现、计算开销小,令人惊奇的是, 它在很多现实任务中展现出强大的性能,被誉为 代表集成学习技术水平的方法。可以看出,随机森林对Bagging 只做了小改动, 但是与Bagging 中基学习器的 多样性 仅通过样本扰动(通过对初始训练集采样)而来不同,随机森林中基学习器的多样性不仅来自 样本扰动,还来自 属性扰动,这就使得最终集成的泛化性能可通过个体学习器之间差异度的增加而进一步提升。

随机森林的收敛性与Bagging 相似。如下图所示:
在这里插入图片描述

Random Forest算法图描述:
在这里插入图片描述

四.结合策略

4.1 平均法

对数值型输出 h i ( x ) R h_i(x) ∈R ,最常见的结合策略是使用 平均法(averaging)

  • 简单平均法(simple averaging)
    h ( x ) = 1 T i = 1 T h i ( x ) h(x) = \frac{1}{T}\sum_{i = 1}^Th_i(x)

  • 加权平均法(weighted averaging)*
    h ( x ) = i = 1 T w i h i ( x ) h(x) = \sum_{i = 1}^Tw_ih_i(x)

其中 w i w_i 是个体学习器 h i h_i 的权重,通常要求

w i 0 i = 1 T w i = 1 w_i≥0,\sum_{i = 1}^Tw_i = 1

加权平均法的权重一般是从训练数据中学习而得,现实任务中的训练样本通常不充分或存在噪声,这将使得学出的权重不完全可靠.尤其是对规模比较大的集成来说,要学习的权重比较多,较容易导致过拟合。

一般而言,在个体学习器性能相差较大时宜使用加权平均法,而在个体学习器性能相近时宜使用简单平均法。

4.2 投票法

对分类任务来说,学习器 h i h_i 将从类别标记集合 c 1 , c 2 , , c N , c_1,c_2,\cdots,c_N, 中预测出一个标记,最常见的结合策略是使用投票法(voting)。 为便于讨论,我们将 h i h_i 在样本 x 上的预测输出表示为一个N 维向量 ( h i 1 ( x ) ; h i 2 ( x ) ; ; h i N ( x ) ) (h_i^1(x);h_i^2(x);\cdots;h_i^N(x)) 其中 h i j ( x ) h_i^j(x) h i h_i 在类别标记 c j c_j 上的输出

  • 绝对多数投票法(majority voting)

                                                  在这里插入图片描述

即若某标记得票过半数,则预测为该标记;否则拒绝预测。

  • 相对多数投票法(plurality voting)

                                                                      在这里插入图片描述

即预测为得票最多的标记,若同时有多个标记获最高票,则从中随机选取一个。

  • 加权投票法(weighted yoting)

                                                                      在这里插入图片描述

4.3 学习法

当训练数据很多时,一种更为强大的结合策略是使用 学习法,即通过另一个学习器来进行结合。

Stacking 是学习法的典型代表。这里把个体学习器称为 初级学习器,用于结合的学习器称为 次级学习器元学习器(meta-learner) 。即先从初始数据集训练出初级学习器,然后"生成"一个新数据集用于训练次级学习器。在这个新数据集中,初级学习器的输出被当作样例输入特征,而初始样本的标记仍被当作样例标记。

算法描述图如下,这里假定初级学习器使用不同学习算法产生,即初级集成是异质的。

在这里插入图片描述

在训练阶段,次级训练集是利用初级学习器产生的,若直接用初级学习器的训练集来产生次级训练集,则过拟合风险会比较大;因此,一般是通过使用交叉验证或留一法这样的方式,用训练初级学习器未使用的样本来产生次级学习器的训练样本。

推荐文章

参考资料

周志华老师的《机器学习》和李航老师的《统计学习方法》。

猜你喜欢

转载自blog.csdn.net/qq_43328040/article/details/106966946