人工智能算法与实践-第9章 集成学习_第1页
人工智能算法与实践-第9章 集成学习_第2页
人工智能算法与实践-第9章 集成学习_第3页
人工智能算法与实践-第9章 集成学习_第4页
人工智能算法与实践-第9章 集成学习_第5页
已阅读5页,还剩25页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

9.4算法总结9.1算法概述9.2算法原理9.3算法案例目录第9章集成学习人工智能算法与实践—1

01算法概述PartTHREE—2

集成学习简单理解就是采用多个分类器对数据集进行预测,从而提高整体分类器的泛化能力,有时也称多分类器系统、基于委员会的学习等。集成学习广泛用于分类和回归任务,有时也被笼统地称作提升(Boosting)方法,是通过一定的规则生成多个学习器,再采用某种集成策略进行组合,最后综合判断输出最终结果。9.1算法概述—3

异质集成集成中包含不同类型的个体学习器个体学习器:由不同学习算法生成个体学习器:组件学习器(或直接称个体学习器)同质集成集成中只包含同种类型的个体学习器个体学习器:基学习器对应算法:基学习算法9.1算法概述—4

例如,决策树集成中全是决策树,神经网络集成中全是神经网络例如,同时包含决策树和神经网络。9.1算法概述—5

集成学习优点:通过将多个学习器进行结合,常常获得比单一学习器显著优越的泛化性能。这对“弱学习器”(weaklearner)尤为明显,因此集成学习的很多理论研究都是针对弱学习器的,而基学习器有时也被直接成为弱学习器。虽然从理论上来说使用弱学习器集成足以获得好的性能,但在实践中出于种种考虑,希望使用较少的个体学习器,人们常常会使用比较强的学习器。9.1算法概述—6

在二分类任务中:三个分类器在三个测试样本上的表现如下:a.集成提升性能b.集成不起作用c.集成起负作用集成学习的结果通过投票法产生9.1算法概述—7

a.每个分类器都只有66.6%的精度,但集成学习却达到了100%;b.三个分类器没有差别,集成后性能没有提高;c.每个分类器精度只有33.3%,集成学习结果变得更糟。以上例子显示要获得好的集成,个体学习器应“好而不同”,即每个学习器要有一定的“准确性”,即学习器不能太坏,并且要有“多样性”。即学习器间具有差异性。9.1算法概述—8

9.1算法概述—9

9.1算法概述—10

上面的分析有一个关键假设:基学习器的误差相互独立现实任务中,个体学习器是为解决同一个问题训练出来的,显然不可能互相独立事实上,个体学习器的“准确性”和“多样性”本身就存在冲突如何产生“好而不同”的个体学习器是集成学习研究的核心集成学习大致可分为两大类9.1算法概述—11

根据个体学习器的生成方式,集成学习可分为两大类:个体学习器间存在强依赖关系、必须串行生成的序列化方法个体学习器间不存在强依赖关系、可同时生成的并行化方法代表:Boosting代表:Bagging和随机森林(Randomforest)02算法原理PartTHREE—12

9.2算法原理—13

集成算法会考虑多个评估器的建模结果,汇总之后得到一个综合的结果,以此来获取比单个模型更好的回归或分类表现。多个模型集成成为的模型叫做集成评估器(ensembleestimator),组成集成评估器的每个模型都叫做基评估器(baseestimator)。通常来说,有三类集成算法:装袋法(Bagging),提升法(Boosting)和stacking。9.2.1AdaBoost算法—14

Boosting族算法中最著名的代表是AdaBoost,它是一种迭代算法。其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。其算法本身是通过改变数据分布来实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。将修改通过的权值的新数据集送给下层分类器进行训练,最后将每次训练得到的分类器最后融合起来,作为最后的决策分类器。使用AdaBoost分类器可以排除一些不必要的训练数据特征,并将关键放在关键的训练数据上面。9.2.1AdaBoost算法—15

AdaBoost二分类问题算法伪代码如下:2%10%75%100%55%0%9.2.2Bagging算法—16

Bagging是一种被广泛使用的集成学习算法,其主要思路是通过对训练集进行不同的处理方式,训练得到差异性的分类器。其主要方法是从原始数据集中随机有放回地选取若干个样本构成新的训练集,用分类算法训练成分类器,形成集成分类器。然后用新来的数据对生成分类器的集成进行测试,投票选出分类结果。2%10%75%100%55%0%9.2.2Bagging算法—17

Bagging算法的基本流程由以下伪代码可表示:2%10%75%100%55%0%9.2.2Bagging算法—18

时间复杂度低假定基学习器的计算复杂度为O(m),采样与投票/平均过程的复杂度为O(s),则Bagging的复杂度大致为T(O(m)+O(s))由于O(s)很小且T是一个不大的常熟因此训练一个bagging集成与直接使用基学习器的复杂度同阶可使用包外估计2%10%100%55%0%9.2.3随机森林算法—19

随机森林是在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机特征选择,主要体现在四个部分:(1)随机选择样本(放回抽样);(2)随机选择特征;(3)构建决策树;(4)随机森林投票(平均)。请替换文字内容,修改文字内容,也可以直接复制你的内容到此。YOURTITLE请替换文字内容,修改文字内容,也可以直接复制你的内容到此。YOURTITLE请替换文字内容,修改文字内容,也可以直接复制你的内容到此。YOURTITLE请替换文字内容,修改文字内容,也可以直接复制你的内容到此。YOURTITLE9.2.3随机森林算法—20

03算法案例PartTHREE—21

垃圾邮件分类应用本实验选取具有两个特征(“打购买、免费”等字眼的相关系数,被拉入黑名单的相关系数),数据被分为+1(垃圾邮件)或-1(非垃圾邮件)两类,利用训练集并结合Adaboost算法进行模型训练。9.3算法案例—22

9.3算法案例—23

1.数据读入cal_boundary(train_x)是求边界的函数,用于求没一个样本中每一维数据作为边界的情况。比如现在有一组一维数据[-3,-2,-1,0,1,2,3],不管他们的真实标签,如果以-3作为边界,则我们需要得到两个列表,因为我们不知道-3的哪一边是哪一类。9.3算法案例—24

2.训练弱分类器9.3算法案例—25

3.迭代产生弱分类器9.3算法案例—26

4.求当前分类器权重9.3算法案例—27

如上图所示,实验通过Adaboost算法对训练数据集进行三次迭代训练后就已经达到1的预测准确率,图9-9经过三个弱分类器的结合后,将平面区域分为6块,每一块给出了它的预测结果值,值为正号则归为1,为负号则归为-1,数字的绝对值越大说明分类结果越可信。04算法总结PartTHREE—28

9.4算法总结—29

通过本节的学习,我们掌握了集成学习的概念,基本原理以及算法流程和实现方法。本章主要介绍了集成学习的两种方法Boosting和Bagging,二者有很大的区别。Bagging中的模型是强模型,偏差低,方差高。目标是降低方差。在Bagging中,每个模型的Bias和variance近似相同,但是互相相关性不太高,因此一般不能降低Bias,而一定程度上能降低variance。典型的Bagging是randomforest。Boosting中每个模型是弱模型,偏差高,方差低。目标是通过平均降低偏差。Boosting的基本思想就是用贪心法最小化损失函数,显然能降低偏差,但是通常模型的相关性很

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论