[模式识别.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[模式识别

集成学习(Ensemble Learning)阮兴茂 mailto:rjf@tju.edu.cnrjf@tju.edu.cn集成学习概观集成学习是机器学习中的一种新型技术,它主要训练多种学习器来解决同一问题[1]。与传统的机器学习总是尝试从训练集中学习一个假设不同,集成学习是尝试构建一个一个假设集,并且将这个集合结合起来使用[2]。组成集成学习的单个学习器经常被称为基础学习器。最早的集成学习的研究是Dasarathy 和 Sheela在1979年开始的,这项研究主要讨论了采用两个或更多的分类器对特征空间进行划分。在1990年Hansen和Salamon展示了人工神经网络的泛化性能能够被显著提高,而采用的方法是就是集成配置相似的人工神经网络[3]。当Schapire证明一个强分类器的效果可以由一些弱分类器通过Boosting[4]算法结合起来的效果,这也是AdaBoost 算法的前身。由于这些前期的研究工作,集成学习研究现在发展的特别迅速,在这个领域中经常出现很多创造性的名词和想法。集成学习方法的泛化能力比单个学习算法的泛化能力增强了很多,这使得集成学习方法很受瞩目。在实践生活中,为了获得一个好的集成学习器,必须满足两个条件:准确性和多样性。在下面,我们主要讲述三种流行的集成学习方法,它们分别是Bagging算法,Boosting算法,Stacking算法。Bagging算法Bagging(bootstrap aggregating的缩写)算法是最早的集成学习算法[5]。它也是最具有指导意义和实施最简单,而且效果惊人的好的集成学习算法。Bagging算法的多样性是通过由有放回抽取训练样本来实现的,用这种方式随机产生多个训练数据的子集,在每一个训练集的子集上训练一个分类器,最终分类结果是由多个分类器的分类结果多数投票而产生的。虽然这个算法很简单,但是当这种方法集成基础学习器的泛化策略可以降低偏差。Bagging算法当可用的数据量是有限时的结果更加吸引人,为了保证各个子集中有充分的训练集,每个子集都包含75-100%这样高比例的样本数据,这使得每个训练数据的子集明显覆盖整个训练数据,并且在大多数的训练数据子集中的数据内容是相同的,而且有一些数据在某个子集中出现多次。为了确保这种情况下得多样性,Bagging算法采用相对不稳定的基础学习器可以使在不同的数据集中只要有一点微小的扰动就可以观察到不同的决策边界。Bagging算法实现的伪代码如下Fig.1所示:Boosting算法Boosting算法[4]包含了一系列方法。与Bagging不同,Boosting算法通过顺序给训练集中的数据项重新加权创造不同的基础学习器。Boosting算法的核心思想是重复应用一个基础学习器来修改训练数据集,这样在预定数量的迭代下可以产生一系列的基础学习器。在训练开始,所有的数据项都被初始化为同一个权重,在这次初始化之后,每次增强的迭代都会生成一个适应加权之后的训练数据集的基础学习器。每一次迭代的错误率都会计算出来,而且正确划分的数据项的权重会被降低,然后错误划分的数据项权重将会增大。Boosting算法的最终模型是一系列基础学习器的线性组合而且系数依赖于各个基础学习器的表现。虽然Boosting算法有很多的版本,但是使用目前最广泛的是AdaBoost算法。AdaBoost算法实现的伪代码如下Fig.2所示:Stacking算法Stacking算法是另外一种流行的集成学习和泛化方法,它主要利用高级的基础学习器结合低级的基础学习器来获得更好的预测的准确性[6]。虽然Stacking算法起步很早,但是相对于Bagging算法和Boosting算法来说应用得还不是很广泛,原因是Stacking算法很难进行理论分析。与Bagging和Boosting算法不同,Stacking算法并不是简单的结合同一类型的基础学习器。取而代之的是采用不同的学习算法构造的学习器。Stacking算法处理的任务是学习一个元级的基础学习器来学习多个基本的基础学习器的预测。基本的基础学习器集合主要是将不同的学习算法到给定的数据集生成的。Stacking算法的第一步便是搜集每个基础学习器的输出信息到一个新的数据集中。对于原始的训练集的各个数据项而言,这个新的数据集代表每个基础学习器对各个数据项所属的类的预测和训练集的数据的真实分类结果。通过这一步,需要注意的是必须保证生成基础学习器的训练数据集中不会出现存在问题的数据项。然后,将新的数据集作为新的学习器的训练数据集,Stacking算法第二步采用一种学习算法来解决这个问题。Stacking算法将初始的数据集与由初始数据集生成的基础学习器称为一级训练数据集和一级分类器,对应的,一级分类器的输出与真实分类的结果组成的数据集和第二个阶段的分类学习算法

文档评论(0)

laideman + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档