人工智能创新实验教程 课件 第10、11章 AdaBoost算法、 Apriori算法.pptx

人工智能创新实验教程 课件 第10、11章 AdaBoost算法、 Apriori算法.pptx

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

宁夏大学第十章AdaBoost算法

AdaBoost算法www.islide.cc2目录

CONTENT01引言02算法概述03实验数据04算法实战05本章小结

01引言

引言在上节课讲到集成学习按照个体学习器之间是否存在依赖关系可以分为两类,第一个是个体学习器之前存在强依赖关系,另一类是个体学习器之间不存在强依赖关系。前者的代表算法就是Boosting系列算法,在该系列算法中,AdaBoost是最著名的算法之一。本节课将对AdaBoost算法进行深入的讲解。

02算法概述

1Boosting算法Boosting是一族可将弱学习器提升为强学习器的算法,它的个体学习器之间存在强依赖关系、且必须串行生成。所以Boosting也是串行生成的算法,即每一次的训练都是对上一次的修正,更注重上一次训练时出现判断错误的样本,对分错的样本赋予更大的权重。在训练得到N个学习器后再对这些学习器进行加权结合。Boosting算法的流程,如下图所示:

1Boosting算法从Boosting算法流程中可以看出,Boosting算法的工作机制是首先从训练集用初始权重训练出一个弱分类器1,根据弱分类器的学习误差率表现来更新训练样本的权重,使得之前的弱分类器1学习误差率高的训练样本点的权重变高,使得这些误差率高的点在后面的弱分类器2中得到更多的重视。然后基于调整权重后的训练集来训练弱分类器2,如此重复进行,直到弱分类器达到事先指定的数目n,最终将这n个弱分类器通过组合策略进行整合,得到最终的强分类器。

1Boosting算法?

2AdaBoost算法?

2AdaBoost算法??

2AdaBoost算法??

03实验数据

1准备数据数据集介绍:马疝病数据集中的数据主要是从疝气病症预测病马的死亡率。该数据集有2个数据文件:(1)horse-colic.data:300个训练实例(2)horse-colic.test:68个测试实例具体的属性变量介绍如右图所示:

2处理数据导入数据集并将数据切割后放入集合当中,具体实现步骤如下所示:

04算法实战

1算法构建由于AdaBoost算法是应用在单层决策树分类器之上,所以在本节中我们将会先建立一个基于单层决策树构建的弱分类器,通过该分类器不断迭代来实现完整的AdaBoost算法。基于单层决策树构建弱分类器单层决策树(decisionstump,也称决策树桩)是一种简单的决策树。接下来将构建一个单层决策树,而它仅基于单个特征来做决策。由于这棵树只有一次分裂过程,因此它实际上就是一个树桩。

1算法构建构建简单数据集在构建AdaBoost的代码时,我们先构建一个简单数据集来确保我们写出的函数能够正常运行。构建数据可视化函数,并运行查看数据分布

1算法构建下图为数据集的示意图。从图中我们可以发现如果想要试着从某个坐标轴上选择一个值(即选择一条与坐标轴平行的直线)来将所有不同颜色的圆点分开,这显然是不可能的。这就是单层决策树难以处理的一个著名问题。AdaBoost需要将多个单层决策树组合起来才能对该数据集进行正确分类。

1算法构建构建单层决策树我们会建立两个函数来实现我们的单层决策树:第一个函数将用于测试是否有某个值小于或者大于我们正在测试的阈值;第二个函数会在一个加权数据集中循环,并找到具有最低错误率的单层决策树。这个程序的伪代码看起来大致如下:

1算法构建接下来,我们将先构建第一个函数,该函数是通过阈值比较对数据进行分类的。所有在阈值一边的数据会分到类别-1,而在另一边的数据分到类别+1。该函数可以通过数组过滤来实现,首先将返回数组的全部元素设置为1,然后将所有不满足不等式要求的元素设置为-1。可以基于数据集中的任一元素进行比较,同时也可以将不等号在大于、小于之间切换。

1算法构建再构建第二个函数,该函数将会遍历第一个函数所有的可能输入值,并找到数据集上最佳的单层决策树。这里的“最佳”是基于数据的权重向量D来定义的。在确保输入数据符合矩阵格式之后,整个函数就开始执行。然后,函数将构建一个称为bestStump的空字典,这个字典用于存储给定权重向量D时所得到的最佳单层决策树的相关信息。变量numSteps用于在特征的所有可能值上进行遍历。而变量minError则在一开始就初始化成正无穷大,之后用于寻找可能的最小错误率。

1算法构建函数的主要部分有三层for循环组成。第一层for循环在数据集的所有特征上遍历第二层for循环再在这些值上遍历。甚至将阈值设置为整个取之范围之外也是可以的。第三层for循环则是在大于和小于之间切换不等式。

1算法构建

文档评论(0)

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

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

1亿VIP精品文档

相关文档