机器学习(8)

本章节是对我学习完机器学习(周志华)第八章 所做出来的总结

第八章 集成学习

8.1 个体与集成

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

集成学习的一般结构:先产生一组“个体学习器”,再用某种策略将它们结合起来。如下图所示:

集成学习示意图

集成学习通过将多个学习器进行结合,常可获得比单一学习器显著优越的泛化性能。

要获得好的集成,个体学习器应“好而不同”,即个体学习器要有一定的“准确性”,即学习器不能太坏,并且要有“多样性”,即学习器间具有差异。

集成个体应“好而不同”

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

8.2 Boosting

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

Boosting族算法中最出名的是AdaBoost,其描述如下图:

AdaBoost

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

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

8.3 Bagging和随机森林

8.3.1 Bagging

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

照这样,可采样出T个含m个训练样本的训练集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合。这就是Bagging的基本流程。在对预测输出进行结合时,Bagging通常对分类任务使用简单投票法,对回归任务使用简单平均法。Bagging的算法描述如下图:

Bagging算法

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

8.3.2 随机森林

随机森林(简称RF)是Bagging的一个扩展变体。RF在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。

传统决策树:选择划分属性时是在当前结点的属性集合中选择一个最优属性。

RF:对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分,一般推荐K=log2 (d)。

随机森林的收敛性和Bagging相似。随机森林的起始性能往往较差,特别是集成中只包含一个基学习器时。因为通过引入属性扰动,随机森林中个体学习器的性能往往有所降低。然而,随着个体学习器个数的增加,随机森林通常会收敛到更低的泛化误差。

在两个UCI数据上,集成规模对随机森林和Bagging的影响

8.4 结合策略

学习器结合可能从三个方面带来好处:

首先,从统计的方面来看,由于学习任务的假设空间往往很大,可能有多个假设在训练集上达到同等性能,此时若使用单学习器可能因误选而导致泛化性能不佳,结合多个学习器则会减少这一风险;

第二,从计算的方面看,学习算法往往会陷入局部极小,有的局部极小点所对应的泛化性能可能很糟糕,而通过多次运行之后进行结合,可降低陷入糟糕局部极小点的风险;

第三,从表示的方面来看,某些学习任务的真实假设可能不在当前学习算法所考虑的假设空间中,此时若使用单学习器则肯定无效,而通过结合多个学习器,由于相应的假设空间有所扩大,有可能学得更好的近似。

学习器结合可能从三个方面带来好处

常见的策略有:平均法、投票法、学习法。

你可能感兴趣的:(机器学习(8))