【机器学习-西瓜书】八、集成学习:Boosting

推荐阅读: 多样性 ;Boosting;AdaBoost

第八章 集成学习

8.1个体与集成

关键词:集成学习;弱学习器;多样性

集成学习(ensemble learning 美[ɑ:nˈsɑ:mbl])通过构建并结合多个学习器(分类器)来完成分类任务。集成学习的一般结构:先产生一组“个体学习器”(individual learner),再用某种策略将它们结合起来。集成学习有两个关键的东西,第一,就是一组个体学习器;第二,结合策略。对于结合策略,通俗易懂的有投票法。而如何选取一组个体学习器是首要问题。个体学习器又称为基学习器(base learner)

集成学习通过对多个学习器进行组合,通常可获得比单一学习器更优的泛化性能。这对“弱学习器”(weak learner)尤为明显,因此集成学习很多研究是针对弱学习器,而基学习器有时也被直接称为弱学习器。在不正式的说法下,基学习器,弱学习器,弱分类器,个体学习器说的都是一个东西。

从经验我们可以知道,把好坏不等的东西掺在一起,通常结果会比最好的要坏,比最坏的要好。集成学习把多个学习器集合起来,如何获得比最好的单一学习器获得更好的性能呢?其实就是要让个体学习器尽量的有差异,否者集成学习就达不到集成的目的了。

可以这样理解,假设现在用5个个体学习器做集成,最终结果用投票法产生,即少数服从多数。当个体学习器差异性不足的话,考虑一个极端例子,5个个体学习器都是由同一个学习器,复制而来,那么,5个学习器的预测结果和一个学习器预测结果完全相同,就达不到集成学习的目的了。因此,个体学习器应该“好而不同”,既要保证个体学习器的“准确性”,还要保证不同学习器之间的“多样性”。然而,准确性和多样性是冲突,在准确性和多样性上如何选择,权衡,如何产生“好而不同”的个体学习器,正是集成学习的核心。

根据个体学习器的生成方式,集成学习可分成两大类:
第一,个体学习器之间存在强依赖关系、必须串行生成,例如:Boosting
第二,个体学习器之间不存在强依赖关系,可同时生成的,例如:Bagging和随机森林(Random Forest)

8.2 Boosting

关键词:Boosting;AdaBoost

上一节提到,根据个体学习器的生成方式,集成学习方法大致分类两大类:
第一,个体学习器之间存在强依赖关系、必须串行生成,例如:Boosting,
第二,个体学习器之间不存在强依赖关系,可同时生成的,例如:Bagging和随机森林(Random Forest)。

这里就要讲一讲Boosting算法。Boosting工作机制是这样的,先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,主要是让后面的学习器更关注前面学习器分错的那一部分样本。Boosting算法中,最著名的就是AdaBoost(Adaptive Boosting),AdaBoost是由Yoav Freund,Robert Schapire提出,
Schapire还提出了一种早期的Boosting算法,易于理解Boosting,我们来看看其主要过程:
1.从样本整体集合D中,不放回的随机抽样n1 < n 个样本,得到集合 D1;训练弱分类器C1
2.从样本整体集合D中,抽取 n2 < n 个样本,其中合并进一半被 C1 分类错误的样本。得到样本集合 D2;训练弱分类器C2
3.抽取D样本集合中,C1 和 C2 分类不一致样本,组成D3;训练弱分类器C3
4.用三个分类器做投票,得到最后分类结果

AdaBoost算法具体如下:
【机器学习-西瓜书】八、集成学习:Boosting_第1张图片

Boosting算法主要是让学习器能对特定的数据分布进行学习,这主要通过重赋权法(re-weighting)实施,即在训练过程的每一轮中,根据样本分布为每个训练样本重新赋予一个权重。从偏差-方差分解的角度看,Boosting主要关注降低偏差。

你可能感兴趣的:(machine,learning,机器学习,Boosting,集成学习)