前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >集成学习:一种先进的机器学习方法

集成学习:一种先进的机器学习方法

作者头像
统计学家
发布于 2020-08-04 09:25:19
发布于 2020-08-04 09:25:19
8620
举报

集成学习方法是一类先进的机器学习方法,这类方法训练多个学习器并将它们结合起来解决一个问题,在实践中获得了巨大成功,并成为机器学习领域的“常青树”,受到学术界和产业界的广泛关注。

本文选自周志华教授专著《集成学习:基础与算法》,带你进一步了解集成学习方法及应用。

集成学习方法

和传统学习方法训练一个学习器不同,集成学习方法训练多个学习器并结合它们来解决一个问题。通常,集成学习也被称为基于委员会的学习(committee-based learning)或多分类器系统(multiple classifier system)。

下图为一个通用的集成学习框架。

一个集成由多个基学习器(base learner)构成,而基学习器由基学习算法(base learning algorithm)在训练数据上训练获得,它们可以是决策树、神经网络或其他学习算法。

大多数集成学习方法使用同一种基学习算法产生同质的基学习器,即相同种类的学习器,生成同质集成(homogeneous ensemble);同时,也有一些方法使用多种学习算法训练不同种类的学习器,构建异质集成(heterogeneous ensemble)。在异质集成中,由于没有单一的基学习算法,相较于基学习器,人们更倾向于称这些学习器为个体学习器(individual learner)或组件学习器(component learner)。

通常,集成具有比基学习器更强的泛化能力。实际上,集成学习方法之所以那么受关注,很大程度上是因为它们能够把比随机猜测稍好的弱学习器(weak learner)变成可以精确预测的强学习器(strong learner)。因此,在集成学习中基学习器也称为弱学习器。

由于使用多个模型解决问题的思想在人类社会中有悠久的历史,我们难以对集成学习方法的历史进行溯源。例如,作为科学研究的基本假设,当简单假设和复杂假设都符合经验观测时,奥卡姆剃刀(Occam’s razor)准则偏好简单假设;但早在此之前,希腊哲学家伊壁鸠鲁(Epicurus,公元前 341—270)提出的多释准则(principle of multiple explanations)[Asmis,1984] 主张应该保留和经验观测符合的多个假设。

集成学习领域的发展得益于三个方面的早期研究,即:分类器结合、弱分类器集成和混合专家模型(mixture of experts)。

分类器结合主要来自模式识别领域。这方面的研究关注强分类器,试图设计强大的结合规则来获取更强的结合分类器,在设计和使用不同的结合规则上积累深厚。

弱分类器集成方面的研究主要集中在机器学习领域。这方面的研究关注弱分类器,试图设计强大的算法提升弱分类器的效果,产生了包括 AdaBoost 和 Bagging 等众多著名的集成学习算法,并且在将弱学习器提升为强学习器方面有深入的理论理解。

混合专家模型的研究主要集中在神经网络领域。在此,人们通常考虑使用分而治之的策略来共同学习一组模型,并结合使用它们获得一个总体解决方案。

20 世纪 90 年代以来,集成学习方法逐渐成为一个主要的学习范式,这主要得益于两项先驱性工作。其中,[Hansen & Salamon,1990] 是实验方面的工 作, 如下图,它指出一组分类器的集成经常会产出比其中最优个体分类 器更精准的预测;

集成通常比最优个体学习器更准确,其中横坐标为噪声水平(noise level),纵坐标为分类错误率(error),三种对比方法分别为平均法(average)、最优个体法(best single)和结合方法(combination)[Hansen & Salamon,1990]

[Schapire,1990] 是理论方面的工作,它构造性地证明了弱学习器可以被提升为强学习器。虽然我们所需的高精度学习器难以训练,但弱学习器在实践中却容易获得,这个理论结果为使用集成学习方法获得强学习器指明了方向。

一般来讲,构建集成有两个步骤:首先产生基学习器,然后将它们结合起来。为了获得一个好的集成,通常认为每个基学习器应该尽可能准确,同时尽可能不同。

值得一提的是,构建一个集成的计算代价未必会显著高于构建单一学习器。这是因为使用单一学习器时,模型选择和调参经常会产生多个版本的模型,这与在集成学习中构建多个基学习器的代价是相当的;同时,由于结合策略一般比较简单,结合多个基学习器通常只会花费很低的计算代价。

集成学习方法的应用

KDD Cup 作为最著名的数据挖掘竞赛,自 1997 年以来每年举办,吸引了全球大量数据挖掘队伍参加。竞赛包含多种多样的实际任务,如网络入侵检测(1999)、分子生物活性和蛋白质位点预测(2001)、肺栓塞检测(2006)、客户关系管理(2009)、教育数据挖掘(2010)和音乐推荐(2011)等。在诸多机器学习技术中,集成学习方法获得了高度的关注和广泛的使用。例如,在连续三年的 KDD Cup 竞赛中(2009—2011),获奖的冠军和亚军都使用了集成学习方法。

另一项著名的赛事 Netflix Prize由 Netflix 公司举办。竞赛任务是基于用户的历史偏好提升电影推荐的准确度,如果参赛队伍能在 Netflix 公司自己的算法基础上提升 10% 的准确度,就能够获取百万美元大奖。2009 年 9 月 21 日,Nexflix 公司宣布,百万美元大奖由 BellKor’s Pragmatic Chaos 队获得,他们的方案结合了因子模型、回归模型、玻尔兹曼机、矩阵分解、k-近邻等多种模型。另外还有一支队伍取得了和获奖队伍相同的效果,但由于提交结果晚了 20 分钟无缘大奖,他们同样使用了集成学习方法,甚至使用“The Ensemble”作为队名。

除了在竞赛上获得显赫战绩,集成学习方法还被成功应用到多种实际应用中。实际上,在几乎所有的机器学习应用场景中都能发现它的身影。例如,计算机视觉的绝大部分分支,如目标检测、识别、跟踪,都从集成学习方法中受益。

基于 AdaBoost 和级联结构,Viola & Jones [2001,2004] 提出了一套通用的目标检测框架。Viola & Jones [2004] 显示在一台 466MHz 计算机上,人脸检 测器仅需 0.067 秒就可以处理 384×288 的图像,这几乎比当时最好的技术快 15倍,且具有基本相同的检测精度。在随后的十年间,这个框架被公认为计算机视觉领域最重大的技术突破。

Huang et al. [2000] 设计了一套集成学习方法解决姿态无关的人脸识别问题。它的基本思路是使用特殊设计的模型集成多个特定视角的神经网络模型。和需要姿态信息作为输入的传统方法相比,这个方法不需要姿态信息,甚至能在输出识别结果的同时输出姿态信息。Huang et al. [2000] 发现这个方法的效果甚至优于以完美姿态信息作为输入的传统方法。类似的方法后来被用于解决多视图人脸检测问题 [Li et al.,2001]。

目标跟踪的目的是在视频的连续帧中对目标对象进行连续标记。通过把目标检测看成二分类问题,并训练一个在线集成来区分目标对象和背景,Avidan [2007] 提出了集成跟踪(ensemble tracking)方法。该方法通过更新弱分类器来学习由于对象外观和背景发生的变化。Avidan [2007] 发现这套方法能处理多种 具有不同大小目标的不同类别视频,并且运行高效,能应用于在线任务。

在计算机系统中,用户行为会有不同的抽象层级,相关信息也会来自多个渠道,集成学习方法就非常适合于刻画计算机安全问题 [Corona et al.,[2009]。Giacinto et al. [2003] 使用集成学习方法解决入侵检测问题。考虑到有多种特征刻画网络连接,他们为每一种特征构建了一个集成,并将这些集成的输出结合 起来作为最终结果。Giacinto et al. [2003] 发现在检测未知类型的攻击时,集成学习方法能够获得最优的性能。此后,Giacinto et al. [2008] 提出了一种集成方法解决基于异常的入侵检测问题,该方法能够检测出未知类型的入侵。

恶意代码基本上可以分为三类:病毒、蠕虫和木马。通过给代码一个合适的表示,Schultz et al. [2001] 提出了一种集成学习方法用以自动检测以往未见的恶意代码。基于对代码的 n-gram 表示,Kolter & Maloof [2006] 发现增强决策树(boosted decision tree)能够获得最优的检测效果,同时他们表示这种方法可以在操作系统中检测未知类型的恶意代码。

集成学习方法还被应用于解决计算机辅助医疗诊断中的多种任务,尤其用于提升诊断的可靠性。周志华等人设计了一种双层集成架构用于肺癌细胞检测任务 [Zhou et al.,2002a],其中当且仅当第一层中的所有个体学习器都诊断为“良性”时才会预测为“良性”,否则第二层会在“良性”和各种不同的癌症类型间进行预测。他们发现双层集成方法能同时获得高检出率和低假阳性率。

对于老年痴呆症的早期诊断,以往的方法通常仅考虑来自脑电波的单信道数据。Polikar et al. [2008] 提出了一种集成学习方法来利用多信道数据;在此方法中,个体学习器基于来自不同电极、不同刺激和不同频率的数据进行训练,同时它 们的输出被结合起来产生最终预测结果。

除了计算机视觉、安全和辅助诊断,集成学习方法还被应用到多个其他领域和任务中。例如,信用卡欺诈检测 [Chan et al.,1999;Panigrahi et al.,2009],破产预测 [West et al.,2005],蛋白质结构分类 [Tan et al.,2003;Shen & Chou,2006],种群分布预测 [Araújo & New,2007],天气预报 [Maqsood et al.,2004;Gneiting & Raftery,2005],电力负载预测 [Taylor & Buizza,2002], 航空发动机缺陷检测 [Goebel et al.,2000;Yan & Xue,2008],音乐风格和艺 术家识别 [Bergstra et al.,2006] 等。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习与统计学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
深入机器学习系列之集成学习
前言:集成学习体现了“More is always better”(多多益善)的思想,它是是目前机器学习的一大热门方向,所谓集成学习简单理解就是指采用多个分类器对数据集进行预测,从而提高整体分类器的泛化能力。
数据猿
2019/07/31
5800
深入机器学习系列之集成学习
【机器学习】迅速了解什么是集成学习
集成学习作为机器学习领域的一项重要技术,其重要性不言而喻。它通过将多个学习器(弱学习器)的预测结果进行有效整合,以显著提升整体模型的泛化能力和预测精度。在复杂多变的现实数据环境中,单一学习器往往难以全面捕捉数据特征,导致过拟合或欠拟合问题。
小言从不摸鱼
2024/09/10
3160
【机器学习】迅速了解什么是集成学习
集成学习提高机器学习效果
集成学习通过综合多个模型来帮助改进机器学习结果。与单一模型相比,这种方法可以产生更好的预测性能。这就是为什么集成方法被广泛应用在许多著名的机器学习竞赛中,比如Netflix Competition,KDD 2009和Kaggle。
hzr
2018/02/02
1.3K0
集成学习提高机器学习效果
《机器学习》-- 第八章 集成学习
集成学习(ensemble learning)指的是将多个学习器进行有效地结合,组建一个“学习器委员会”,其中每个学习器担任委员会成员并行使投票表决权,使得委员会最后的决定更加有效,即泛化性能要能优于其中任何一个学习器。
fireWang
2020/10/09
1.4K0
《机器学习》-- 第八章 集成学习
《机器学习》笔记-集成学习(8)
作者:刘才权 编辑:祝鑫泉 前 言 如今机器学习和深度学习如此火热,相信很多像我一样的普通程序猿或者还在大学校园中的同学,一定也想参与其中。不管是出于好奇,还是自身充电,跟上潮流,我觉得都值得试一试。对于自己,经历了一段时间的系统学习(参考《机器学习/深度学习入门资料汇总》),现在计划重新阅读《机器学习》[周志华]和《深度学习》[Goodfellow et al]这两本书,并在阅读的过程中进行记录和总结。这两本是机器学习和深度学习的入门经典。笔记中除了会对书中核
机器学习算法工程师
2018/03/30
7070
《机器学习》笔记-集成学习(8)
机器学习基础之集成学习
🎈今日推荐——https://cloud.tencent.com/developer/article/2472492
小说男主
2024/12/04
1230
机器学习基础之集成学习
【机器学习】集成学习方法:Bagging与Boosting的应用与优势
机器学习作为人工智能的一个重要分支,旨在通过数据驱动的方式让计算机自动从经验中学习,并进行预测或决策。机器学习技术在诸多领域,如图像识别、自然语言处理、推荐系统和金融预测等,取得了广泛应用和显著成果。然而,尽管机器学习模型在特定任务中表现优异,但单一模型在泛化能力上的局限性也逐渐显现出来。
空白诗
2024/06/17
1.2K0
【机器学习】集成学习方法:Bagging与Boosting的应用与优势
使用集成学习提升机器学习算法性能
Alan Lee
2018/01/02
1.8K0
使用集成学习提升机器学习算法性能
简析集成学习
当我们第一次接触机器学习问题的时候,面对着大量的数据和一个分类/回归的机器学习任务,我们本能地会采取这样的方式:选择一个决策树分类器或一个Lasso回归模型,将我们的数据全部灌入模型中,然后以看戏的心态看着模型一步步迭代、完成训练,随后我们看了一眼准确率,感叹一下机器学习的神奇,就感觉自己的任务完成了;随着学习的深入,我们了解到训练集/测试集的切分、交叉验证等一系列的评估手段,进而走入了“调参”的深坑,度过了许多个不眠之夜;经过多次的课程作业或实践任务,利用我们学到的方法和技巧,我们似乎已经能够选择出对某个
企鹅号小编
2018/02/11
9550
简析集成学习
集成学习:Bagging, Boosting,Stacking
好比人做出一个决策时,会从不同方面,不同角度,不同层次去思考(多个自我,多个价值观),这就会有多个决策结果产生,最终我们会选一种决策作为最终决策。
zhangjiqun
2024/12/14
2240
集成学习:Bagging, Boosting,Stacking
[机器学习必知必会]集成学习
集成学习指先产生一组弱学习器week learner(指泛化性能略优于随机猜测的学习器),随后根据某种策略将这些弱学习器组合起来得到最终预测结果的方法。
TOMOCAT
2020/06/09
8400
[机器学习必知必会]集成学习
集成学习
集成学习(ensemble learning)通过构建并集合多个学习器完成学习任务,有时也被称为多分类器系统(multi-classifier system)、基于委员会的学习(committee based learning)等。先产生一组“个体学习器”(invidual learner),再用某种策略将它们结合起来。个体学习器通常由一个现有的学习算法从训练数据中产生,例如C4.5决策树、BP神经网络算法等,此时集成中只包含同种类型的个体学习器,例如“决策树集成”中全是决策树,“神经网络集成”中全是神经网络,这样的集成是“同质”的(homogeneous)。同质集成中的个体学习器亦称为“基学习器”(base learner),相应的算法称为“基学习算法”(base learning algorithm)。集成也包含不同类型的个体学习器。例如同时包含决策树和神经网络,这样的集成是“异质”的(heterogeneous)。异质集成中的个体学习器由不同的学习算法生成,这时就不再有学习算法;相应的,个体学习器一般不称为学习器,常称为“组件学习器”(component learner)或直接称为个体学习器。
狼啸风云
2019/11/07
1.2K0
集成学习
什么是集成学习算法
经过前面的学习,我们认识了机器学习中的常用回归算法、分类算法和聚类算法,在众多的算法中,除神经网络算法之外,没有一款算法模型预测准确率达到 100%,因此如何提高预测模型的准确率成为业界研究的重点。通过前面内容的学习,你可能会迅速想到一些方法,比如选择一款适合的算法,然后反复调整各种参数,其实这并不是最佳的方法,有以下三点原因:
zhangjiqun
2024/12/14
1750
什么是集成学习算法
机器学习笔记之Boosting算法
集成学习是通过训练弱干个弱学习器,并通过一定的结合策略,从而形成一个强学习器。有时也被称为多分类器系统(multi-classifier system)、基于委员会的学习(committee-based learning)等。
Jetpropelledsnake21
2021/03/03
1.5K0
机器学习(17)之集成学习原理总结
关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 前言 集成学习(ensemble learning)是现在非常火爆的机器学习方法。它本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务。也就是我们常说的“博采众长”。集成学习可以用于分类问题集成,回归问题集成,特征选取集成,异常点检测集成等等,可以说所有的机器学习领域都可以看到集成学习的身影。本文就对集成学习的原理做一个总结。 EL概述 从下图,我们可以对集
昱良
2018/04/04
1K0
机器学习(17)之集成学习原理总结
机器学习:集成学习方法总结
机器学习是人工智能的一个分支领域,致力于构建自动学习和自适应的系统,它利用统计模型来可视化、分析和预测数据。一个通用的机器学习模型包括一个数据集(用于训练模型)和一个算法(从数据学习)。但是有些模型的准确性通常很低产生的结果也不太准确,克服这个问题的最简单的解决方案之一是在机器学习模型上使用集成学习。
皮大大
2025/01/22
1830
机器学习 | 集成算法
集成算法(Emseble Learning)是构建多个学习器,然后通过一定策略结合把它们来完成学习任务的,常常可以获得比单一学习显著优越的学习器。它本身不是一个单独的机器学习算法,而是通过数据上构建并结合多个机器学习器来完成学习任务。
数据STUDIO
2021/06/24
8990
集成学习
集成学习(Ensemble Learning)是将多个弱机器学习器结合,构建一个有较强性能的机器学习器的方法。 构成集成学习的弱学习器称为基学习器、基估计器。 根据集成学习的各基估计器类型是否相同,可以分为同质和异质两种方法。 集成学习常用的方法有Bagging,、随机森林、AdaBoost、梯度树提升(Gradient Tree Boosting)、XGBoost等方法。
爱编程的小明
2022/09/05
4.1K0
集成学习
机器学习|集成学习(简介)
接下来几周的时间,我们将会推出关于《西瓜书》读书笔记的连载文章,updating~
数据山谷
2020/07/21
1.6K0
机器学习|集成学习(简介)
机器学习 学习笔记(17) 集成学习
集成学习通过构建并结合多个学习器来完成学习任务,有时候也被称为多分类器系统(multi-classifier system)、基于委员会的学习(committee-based learning)等。
2018/09/04
9210
机器学习 学习笔记(17) 集成学习
相关推荐
深入机器学习系列之集成学习
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文