《机器学习》西瓜书第八章集成学习

8.1  个体与集成

概念:集成学习通过构建并结合多个学习器来完成学习任务,有事也被称为多分类系统、基于委员会的学习等。

一般结构:先产生一组“个体学习器”,再用某种策略将它们结合起来。个体学习器通常由一个现有的学习算法从训练数据中产生,例如决策树算法、BP神经网络算法;此时集成中只包含同种类型的个体学习器,例如“决策树集成”中全是决策树,这样的集成是“同质”的,同质集成中的个体学习器亦称“基学习器”相应的学习算法称为“基学习算法”。集成也可包含不同类型的个体学习器,例如同时包含决策树和神经网络,这样的集成是“异质”的;相应的个体学习器称为“组件学习器”或直接称为个体学习器。

集成学习通过对多个学习器进行结合,常和获得比单一学习器显著优越的泛化性能。这对弱学习器尤为明显(弱学习器常指泛化能力略优于随机猜测的学习器)基学习器有事也被直接称为弱学习器。但是在实践中处于种种考虑,例如希望使用较少的学习器,或是重用关于常见学习器的一些经验等,人们往往会使用比较强的学习器。

 要获得好的集成,个体学习器应“好而不同”,即个体学习器要有一定的“准确性”,即学习器不能坏,并且要有“多样性”,即学习器间具有差异。如何产生并结合“好而不同”的学习器,恰是集成学习研究的核心。

目前的集成学习可大致分为两大类:①个体学习器间存在强依赖关系、必须串行生成的序列化方法;②个体学习器间不存在强依赖关系、可同时生成的并行化方法;前者的代表是Boosting。后者的代表是Bagging和“随机森林”。

8.2 Boosting

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

Boosting族算法最著名的是Adaboost算法。Adaboost算法推导方式中比较容易理解的是基于“加性模型”,即基学习器的线性组合:来最小化指数损失函数

 

 式8.5UIH(x)求偏导:-e-H(x)P(f(x)=1|x)+-eH(x)P(f(x)=-1|x),令其等于0,得,因此有

在Adaboost算法中,第一个基分类器h1是通过直接将基学习算法用于初始数据分布而得;此后迭代地生成ht和αt,当及基分类器ht基于分布Dt产生后,该基分类器的权重应使得αtht最小化指数损失函数。

 分类器权重更新公式该分类器的权重只与分类器的错误率负相关。

理想的ht将在分布Dt下最小化分类误差,因此弱分类器将基于Dt来训练,且针对Dt的分类误差应小于0.5,这在一定程度上类似“残差逼近”的思想。有:

Boosting算法要求基学习器能对特定的数据分布进行学习,者可通过“重赋权法”实施,即在训练过程的每一轮中,根据样本分布为每个训练样本重新赋予一个权重。对无法接受带全样本的基学习算法,则可通过“重采样法”来处理。即在每一轮学习中,根据样本分布对训练集进行重新采样,再用重采样而得的样本集对基学习器进行训练。采用“重采样法”,可获得“重启动”机会以避免训练过程过早停止。

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

8.3 Bagging和随机森林

欲得到泛化能力强的集成,继承中的个体学习器应尽可能相互独立;虽然“独立”在现实任务中无法做到,但可以设法使基学习器尽可能具有较大差异。为解决这个问题,我们可以考虑才赢相互有交叠的采样子集。

8.3.1 Bagging

Bagging是并行式集成学习方法最著名的代表。他直接基于自助采样法:给点包含m个样本的数据集,我们先随机取出一个样本放入采样集中,再把该样本放回初始采样集,使得下次采样时该样本仍有可能被选中,经过m次随机采样操作,得到含有m个样本的采样集。初始训练集中约有63.2%的样本出现在采样集中。

Bagging基本流程:我们可采样出T个含有m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合。

再对预测输出进行结合时,Bagging通常对分类任务使用简单投票法,对回归任务使用简单平均法

 

假定基学习器的计算复杂度为O(m),则Bagging的复杂度大致分为T(O(m)+O(s)),考虑到采样与投票/平均过程的复杂度O(s)很小,因此训练一个Bagging集成与直接使用基学习算法训练一个学习器的复杂度同阶,因此,Bagging是一个很高效的及程序西算法。与标准AdaBoost只适用于二分类任务不同,Bagging能不经改变地用于多分类、回归等任务。

自助采样过程还给Bagging带来了另一个优点:由于每个基学习器只使用了初试采样集中约63.2%的样本,剩下约36.8%的样本可用作验证集来对泛化性能进行“外包估计”。

外包样本还有许多其他用途,当基学习器是决策树时,可使用外包样本来辅助剪枝,或用于估计决策树中各节点的后验概率以辅助对领训练样本节点的处理;当基学习器是神经网络时,可使用外包样本来辅助早期停止以减小过拟合风险

从偏差-方差分解的角度看,Bagging主要关注降低方差,因此他在不剪枝决策树、神经网络等一手样本扰动的学习器上效用更为明显。

8.3.2 随机森林

随机森林RF是Bagging的一个拓展变体。RF在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择:具体来说,传统决策树在选择划分属性时是在当前结点的属性集合中选择一个最优属性;而在RF中,对及决策树的每个结点,先从该节点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分。这里的参数k控制了随机性的引入程度:若令k=d。则及决策树的构建与传统决策树相同;若k=1,则是随机选择一个属性用于划分;一般情况下,推荐值k=log2d.

随机森林简单、容易实现、计算开销小,令人惊奇的是,他在很多现实任务中展现出强大的性能,被誉为“代表集成学习技术水平的方法”。随机森林中基学习器的多样行不仅来自样本扰动,还来自属性扰动,这就使得最终集成的泛化性能可通过个体学习器之间差异度的增加而进一步提升。

随机森林的训练效率通常由于Bagging,因为在个体决策树的构建过程中,Bagging使用的是“确定型”决策树,字选择划分属性时要对结点的所有属性进行考察,而随机森林使用的“随机型”决策树则只需考察一个属性子集。

 8.4 结合策略

学习器结合可能会从三个方面带来好处:首先,从统计的方面来看,由于学习任务的假设空间往往很大,可能有多个假设在训练集上达到同等性能,此时若使用单学习器可能因误选而导致泛化性能不佳,结合多个学习器会减少这一风险;第二,从计算的方面看,学习算法会陷入局部极小,通过多次运行之后进行结合,可降低陷入糟糕局部极小点的风险;第三,从表示的方面来看,某些学习任务的真实假设可能不在当前学习算法所考虑的假设空间中,此时使用单学习器肯定无效,而通过结合多个学习器,由于响应的假设空间有所扩大,有可能学得更好的近似。

 8.4.1 平均法

对数值型输出,最常见的结合策略是使用平均法。

简单平均法:

 加权平均法:,权重一般是从训练数据中学习学得,现实任务中的训练样本通常不充分或存在噪声,这将使得学出的权重并不完全可靠。一般而言,在个体学习器性能相差较大时宜采用加权平均法,性能相近时宜采用简单平均法。

 8.4.2 投票法

对分类任务来说,学习器hi将从类别标记集合中预测出一个标记,最常见的结合策略就是投票法。

绝对多数投票法:,即若标记得票过半数,则预测为该标记;否则拒绝预测。

相对多数投票法:,即预测为得票最多的标记,若同时有多个标记得票最高,则从中随机选取一个。

加权投票法:

 8.4.3 学习法

当训练数据很多时,一种更为强大的结合策略是使用“学习法”,即通过另一个学习器来进行结合。Stacking是结合法的典型代表。我们把个体学习器称为初级学习器,用于结合的学习器称为次级学习器元学习器

 Stacking先从初试训练集中训练出初级学习器,然后“生成”一个新数据集用于训练次级学习器。在这个新数据集中,初级学习器的输出被当做样例输入特征,而初试样本标记仍被当做样例标记。

 

原文地址:https://www.cnblogs.com/ttzz/p/11598556.html