机器学习决策树算法ID3.docVIP

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
机器学习决策树算法ID3

山东大学计算机学院实验报告 实验题目:决策树算法ID3 学号: 日期:2016.12.6 班级: 2014级4班 姓名: Email: 实验目的: 熟悉matlab环境及相关函数的熟练使用。 学习如何构造一棵决策树,并且用matlab画出树形状。 学习如何使用一棵决策树,即将测试数值代入时,如何判断属于哪一类。 会写测试集代入的分类表达式和类别的逻辑表达式并化简。 分析该算法准确性。 硬件环境:? windows10操作系统 软件环境: matlab环境,Azure ML平台 实验步骤: 一、背景知识及原理 决策树算法:树状结构,每一个叶子节点对应着一个分类 决策树方法在分类、预测、规则提取等领域有着广泛的应用。在20世纪70年代后期和80年代初期,机器学习研究者J.Ross Quinilan提出了ID3算法以后,决策树在机器学习、数据挖掘领域得到极大的发展。Quinilan后来又提出了C4.5,成为新的监督学习算法。1984年几位统计学家提出了CART分类算法。ID3和ART算法大约同时被提出,但都是采用类似的方法从训练样本中学习决策树的。 决策树是一树状结构,它的每一个叶子节点对应着一个分类,非叶子节点对应着在某个属性上的划分,根据样本在该属性上的不同取值将其划分成若干个子集。构造决策树的核心问题是在每一步如何选择适当的属性对样本进行拆分。对一个分类问题,从已知类标记的训练样本中学习并构造出决策树是一个自上而下分而治之的过程。 ID3算法简介及基本原理? ID3算法基于信息熵来选择最佳的测试属性,它选择当前样本集中具有最大信息增益值的属性作为测试属性;样本集的划分则依据测试属性的取值进行,测试属性有多少个不同的取值就将样本集划分为多少个子样本集,同时决策树上相应于该样本集的节点长出新的叶子节点。ID3算法根据信息论的理论,采用划分后样本集的不确定性作为衡量划分好坏的标准,用信息增益值度量不确定性:信息增益值越大,不确定性越小。因此,ID3算法在每个非叶节点选择信息增益最大的属性作为测试属性,这样可以得到当前情况下最纯的划分,从而得到较小的决策树。 设S是s个数据样本的集合。假定类别属性具有m个不同的值:,设是类中的样本数。对一个给定的样本,它总的信息熵为,其中,是任意样本属于的概率,一般可以用估计。 设一个属性A具有k个不同的值,利用属性A将集合S划分为k个子集,其中包含了集合S中属性A取值的样本。若选择属性A为测试属性,则这些子集就是从集合S的节点生长出来的新的叶节点。设是子集中类别为的样本数,则根据属性A划分样本的信息熵为? 其中,,是子集中类别为的样本的概率。 最后,用属性A划分样本集S后所得的信息增益(Gain)为 显然越小,Gain(A)的值就越大,说明选择测试属性A对于分类提供的信息越大,选择A之后对分类的不确定程度越小。属性A的k个不同的值对应的样本集S的k个子集或分支,通过递归调用上述过程(不包括已经选择的属性),生成其他属性作为节点的子节点和分支来生成整个决策树。ID3决策树算法作为一个典型的决策树学习算法,其核心是在决策树的各级节点上都用信息增益作为判断标准来进行属性的选择,使得在每个非叶子节点上进行测试时,都能获得最大的类别分类增益,使分类后的数据集的熵最小。这样的处理方法使得树的平均深度较小,从而有效地提高了分类效率。 ID3算法的具体流程? 1)对当前样本集合,计算所有属性的信息增益;? 2)选择信息增益最大的属性作为测试属性,把测试属性取值相同的样本划为同一个子样本集;? 3)若子样本集的类别属性只含有单个属性,则分支为叶子节点,判断其属性值并标上相应的符号,然后返回调用处;否则对子样本集递归调用本算法。 二、实验步骤 1.因为以前经常使用微软的Azure平台,这次仍然想用这个平台实验一下。测试使用决策树算法求出的准确率和召回率等以及改变参数对结果的影响。 a.两分类决策树(第一个图是数据,前12个数据;第二个图是平台上的流程图) 参数配置:(随机种子0,0.25的测试集) 结果:测试集共3个数据,分错了2个,准确率为33.3%,召回率1%。 通过可视化平台的结果对比可以发现决策树算法的准确率很低,我感觉这个的原因是数据太少,所以偶然性太强,数据若是多一些,可能会好一些。 2.开始自己着手写matlab程序,刚开始看到题感觉挺简单的,不就是算出熵,然后算信息增益得到每次要判断的属性,那树不就画出来了么。然而事实告诉我,用笔算的简单但是写程序就不那么容易了。每次传进去的是一批数据,得根据数据去画树。然后我就通过看清华大学那本机器学习的书,找到了一个伪代码的算法,思路没有错,就是一个递归算法,输入

您可能关注的文档

文档评论(0)

dajuhyy + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档