《数据挖掘决策树算法ID3和C4.5》.ppt

《数据挖掘决策树算法ID3和C4.5》.ppt

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据挖掘决策树算法ID3和C4.5 学习数据挖掘的工具-weka weka是用Java语言编写的完整的软件资源 Explorer是weka的主要图形用户界面 weka存储数据的原始方式是ARFF或CSV文件格式 ARFF文件是由一组实例组成,并且每组实例的属性值由逗号分开。(属性的类别) 天气数据 outlook temperature humidity windy play 1 sunny hot high FALSE no 2 sunny hot high TRUE no 3 overcast hot high FALSE yes 4 rainy mild high FALSE yes 5 rainy cool normal FALSE yes 6 rainy cool normal TRUE no 7 overcast cool normal TRUE yes 8 sunny mild high FALSE no 9 sunny cool normal FALSE yes 10 rainy mild normal FALSE yes 11 sunny mild normal TRUE yes 12 overcast mild high TRUE yes 13 overcast hot normal FALSE yes 14 rainy mild high TRUE no 我们希望从上面的实例中找出者若干条规则,使得能够对这些实例的类做出判断(理想情况下)(举例) if outlook=sunny and =high then play =no if humidity= normal then play=yes 第二条规则错分了一个实例样本 决策节点: 1.最上面的节点称为根节点,是整个决策树的开始。 2.每个节点子节点的个数与决策树在用的算法有关。(二叉树、多叉树) 分支:判断过程,要么是新的决策节点,要么是叶子 树叶:树的结尾,每个叶子代表一个类别 根节点 叶子节点 决策节点 叶子节点 叶子节点 步骤: 1.决策树的生成:由训练样本数据集(根据历史数据生成、有一定综合程度的用于数据分析处理的数据集)生成 2.决策树的剪枝:采用新的样本数据集(测试数据集或者训练数据修剪集)检验决策树生成过程中产生的初步规则,将影响预测准确性的分支剪除。 ID3决策树算法描述 1.试探性地选择一个属性放置在根节点,并对该属性的每个值产生一个分支。 2.分裂根节点上的数据集,并移到子女节点,产生一棵局部树。 3.对该划分的信息增益进行计算。 4.对其他属性重复该过程。 5.每个用于划分的属性产生一棵局部树。 6.根据局部树的信息增益值,选择一棵增益最大的属性的局部树。 7.对选定的局部树的每个子女节点重复以上1-6步。 8.这是一个递归过程。如果一个节点上的所有实例都具有相同的类,则停止局部树的生长。 选择属性作为根 产生分支 计算信息增益 选择max增益 数据进一步分裂? 结束 否 是 算法流程图 信息值(熵)、信息增益的概念 熵: entropy(p1,p2,...,pn)=-p1logp1-p2logp2????-pnlogpn 使用负号是因为分数p1,p2,...,pn的对数值是负数,而熵是一个正数。熵是以位bit位单位的,公式里的p1,p2,...,pn他们的和为1。 entropy(p,q,r)=entropy(p,q+r)+(q+r)*entropy(q/(q+r),r/(q+r)) 我们需要一种度量来表示节点的纯度,并需要这种度量告诉我们根据一个变量的属性值将一个不纯的节点上的数据划分到其子女后,纯度提高了多少。最为广泛使用的度量是信息值(熵)。(以天气数据为例) outlook属性的树桩 yes yes no no no yes yes yes yes yes yes yes no no outlook sunny overcast rainy 在叶子节点上的yes和no类的实例数量 分别是[2,3]、[4,0]、[3,2],因此,这些 节点上的信息值分别是: info([2,3])=entropy(2/5,3/5)=0.971 bit info([4,0])=entropy(1,0)=0 bit info([3,2])=entropy(3/5,2/5)=0.971 bit 然后计算这些叶子节点的平均信息值, 并考虑到达每个分支的实例数量: 有5个实例到达第一和第三个分支; 4个实例到达第二个分支:那么平均信息值 info([2,3],[4,0],[3,2]) =(5/14)*0.971+(4/14)*0+(5/1

文档评论(0)

189****2507 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档