集成学习(Ensemble Learning)阮兴茂.pdf

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

集成学习 (Ensemble Learning) 阮兴茂 rjf@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 算法的第一步便是搜集每个基础学习器的输出信息到一 个新的数据集中。对于原始的训练集的各个数据项而言,这个新的数据集代表

文档评论(0)

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

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

1亿VIP精品文档

相关文档