34 基本的决策树学习算法 - 找源代码、程序员.doc

34 基本的决策树学习算法 - 找源代码、程序员.doc

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

 决策树学习 决策树学习是应用最广的归纳推理算法之一。它是一种逼近离散函数的方法,且对噪声数据有很好的鲁棒性,能够学习析取表达式。本章描述了一系列决策树学习算法,包括象ID3、ASSISTANT和C4.5这样广为应用的算法。这些决策树学习方法搜索完整表示的假设空间,从而避免了受限假设空间的不足。决策树学习的归纳偏置是优先选择较小的树。 简介 决策树学习是一种逼近离散值目标函数的方法,在这种方法中学习到的函数被表示为一棵决策树。学习得到的决策树也能再被表示为多个if-then的规则,以提高可读性。这种学习算法是最流行的归纳推理算法之一,已经被成功地应用到从学习医疗诊断到学习评估贷款申请的信用风险的广阔领域。 决策树表示法 决策树通过把实例从根结点排列(sort)到某个叶子结点来分类实例,叶子结点即为实例所属的分类。树上的每一个结点指定了对实例的某个属性(attribute)的测试,并且该结点的每一个后继分支对应于该属性的一个可能值。分类实例的方法是从这棵树的根结点开始,测试这个结点指定的属性,然后按照给定实例的该属性值对应的树枝向下移动。这个过程再在以新结点为根的子树上重复。 53 图3-1 概念PlayTennis的决策树 分类一个样例的方法是,将其沿根结点排列到合适的叶子结点,然后返回与这个叶子结点关联的分类(本例中为Yes或No)。这棵决策树根据天气分类“星期六上午是否适合打网球”。 图3-1画出了一棵典型的学习到的决策树。这棵决策树根据天气情况分类“星期六上午是否适合打网球”。例如,下面的实例: Outlook=Sunny,Temperature=Hot,Humidity=High,Wind=Strong 将被沿着这棵决策树的最左分支向下排列,因而被评定为反例(也就是这棵树预测这个实例PlayTennis=No)。这棵树以及表3-2中用来演示ID3学习算法的例子摘自(Quinlan 1986)。 通常决策树代表实例属性值约束的合取(conjunction)的析取式(disjunction)。从树根到树叶的每一条路径对应一组属性测试的合取,树本身对应这些合取的析取。例如,图3-1表示的决策树对应于以下表达式: (Outlook=Sunny ? Humidity=Normal) ?(Outlook=Overcast) ?(Outlook=Rain ? Wind=Weak) ID3(Examples,Target_attribute,Attributes) Examples即训练样例集。Target_attribute是这棵树要预测的目标属性。Attributes是除目标属性外供学习到的决策树测试的属性列表。返回能正确分类给定Examples的决策树。 创建树的Root结点 如果Examples都为正,那么返回label =+ 的单结点树Root 如果Examples都为反,那么返回label =- 的单结点树Root 如果Attributes为空,那么返回单结点树Root,label=Examples中最普遍的Target_attribute值 否则 A←Attributes中分类Examples能力最好*的属性 Root的决策属性←A 对于A的每个可能值vi 在Root下加一个新的分支对应测试A= vi 令为Examples中满足A属性值为vi的子集 如果为空 在这个新分支下加一个叶子结点,结点的label=Examples中最普遍的Target_attribute值 否则在这个新分支下加一个子树ID3(, Target_attribute, Attributes-{A}) 结束 返回Root *根据公式3.4的定义,具有最高信息增益(information gain)的属性是最好的属性。 哪个属性是最佳的分类属性? ID3算法的核心问题是选取在树的每个结点要测试的属性。我们希望选择的是最有助于分类实例的属性。那么衡量属性价值的一个好的定量标准是什么呢?这里将定义一个统计属性,称为“信息增益(information gain)”,用来衡量给定的属性区分训练样例的能力。ID3算法在增长树的每一步使用这个信息增益标准从候选属性中选择属性。 用熵度量样例的均一性 为了精确地定义信息增益,我们先定义信息论中广泛使用的一个度量标准,称为熵(entropy),它刻画了任意样例集的纯度(purity)。给定包含关于某个目标概念的正反样例的样例集S,那么S相对这个布尔型分类的熵为: Entropy(S) (-p(log2p(-pΘlog2pΘ (3.1) 其中p(是在S中正例的比例,pΘ是在S中负例的比例。在有关熵的所有计算中我们定义0log0为0。 举例说明,假设S是一个关于某布尔概念的有14个样例的集合,它包括9个正例和

文档评论(0)

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

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

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档