`

使用ID3算法构造决策树

阅读更多

决策树

决策树是一个预测模型,它代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。

这张图很好地解释了决策树:

使用ID3算法构造决策树

明天要不要出去玩?

  • 晴天:
    • 潮湿:不出去
    • 不潮湿:出去
  • 阴天:出去玩
  • 雨天:
    • 刮风:不出去
    • 不刮风:出去

例子中可以找到两层的分类依据属性,第一层是晴/阴/雨,第二层是是否潮湿和是否刮风,分类依据的确定和先后顺序对决策树的质量有决定性的影响。另外,在实际构造决策树时,经常要进行剪枝,主要是因为数据中往往存在一些噪音数据,或者是存在分类过细的问题,反而失去了分类的意义。一种是先剪枝,在构造树的过程中,当某个节点满足剪枝条件,则直接停止此分支的构造;还有一种是后剪枝,先构造完成完整的决策树,再通过某些条件遍历树进行剪枝。

ID3算法

ID3算法是J. Ross Quinlan提出的分类预测算法,它的核心是用贪心算法来根据“信息熵”分类。何为信息熵?这个概念还是香农(C. E. Shannon)提出来的,用以表示信息的不确定性。信息不确定的因素越多,这个熵就越大。

如果一组数据由{d1,d2,…,dn}构成,其和是sum,那么信息熵可以表示为:

使用ID3算法构造决策树

下面举例来说明这个公式:

假使说我们要研究狗的智商(目标属性),潜在的关联因素包括颜色和毛的长度。

颜色(color) 毛的长度(length) 智商(IQ)
black
white
white
white

3次出现“高”智商,1次出现“低智商”,所以目标属性IQ的信息熵:HIQ(D)=-(2/4)log2(2/4)-(1/4)log2(1/4)

color属性在取不同的值对应目标属性IQ的信息熵:

  • 在color取值为black的时候,IQ只取“高”这个值:Hcolor(Dblack)=-(1/1)log2(1/1)
  • 在color取值为white的时候,IQ取值有两个“高”,一个“低”:Hcolor(Dwhite)=-(1/3)log2(1/3)-(2/3)log2(2/3)

而color属性的整体信息熵是上述二者的加权平均值:Hcolor(D)=(1/4)Hcolor(Dblack)+(3/4)Hcolor(Dwhite)。同样可以求得Hlength(D)。

现在定义信息增益Gaincolor=HIQ(D)-Hcolor(D),Gainlength=HIQ(D)-Hlength(D),它是信息熵的有效减少量,值越高,说明目标属性IQ在参考属性处损失的信息熵越多,也就是失去的不确定性越多,那么在决策树进行分类的时候,这个参考属性应该越早作为决策的依据属性。

这个例子中如果Gainlength > Gaincolor,说明length比color要对IQ有更大的影响,所以决策树中,要先依据length来进行分类。

在实际应用中,往往引入一个“阈值”,当节点下的任意一分类所占百分比超过这个阈值时,就不再进行分类,以避免产生出过小的没有实际意义分类节点。

ID3算法也存在诸多不足,比如分类偏向于取值数量,只能处理离散数据等等问题。C4.5算法是对ID3的一个改进,但是总体来看,由于需要反复遍历数据,二者都是效率很低的算法。

文章系本人原创,转载请保持完整性并注明出自《四火的唠叨》

2
0
分享到:
评论

相关推荐

    数据挖掘决策树ID3算法C++实现

    数据挖掘决策树ID3算法C++实现 数据挖掘入门程序

    决策树ID3算法的应用

    采用ID3决策树算法对教师评优进行预处理,选取决策属性,实现挖掘算法并抽取规则知识,由规则知识指出哪些决策属性决定了优秀的类别。挖掘结果表明:该算法能够正确将数据分类,并得到若干有价值的结论,供决策 分析...

    决策树ID3算法的实例解析

    1、决策树ID3算法的实例解析是一个比较好地通过实例让你可以更好地理解ID3算法。 2、其中对信息论的信息熵的解释也比较到位,比较准确。

    《机器学习》算法实例-决策树算法-预测鱼类和非鱼类实例

    准备数据: 树构造算法(这里使用的是ID3算法,因此数值型数据必须离散化。) 分析数据: 可以使用任何方法,构造树完成之后,我们可以将树画出来。 训练算法: 构造树结构 测试算法: 使用习得的决策树执行分类 使用...

    论文研究-决策树算法在刑事案件中的应用 .pdf

    决策树算法在刑事案件中的应用,李梅红 ,胡瑞娟,本文首先简要介绍了数据挖掘技术应用在刑侦工作中的重要性及利用ID3算法构造决策树的方法,结合一个刑事案件犯罪嫌疑人训练数据集

    决策树——ID3算法

    用信息增益大小作为决策树属性选择划分的依据是ID3算法构造决策树的核心思想 1.信息熵 在讲信息增益之前就不得不提到信息熵,信息熵定义为: 其中: D —— 样本集合 Pk —— 第k类样本所占比例(k取1,2,…,|y|) ...

    波士顿房价决策树python编码

    决策树算法构造决策树来发现数据中蕴涵的分类规则.如何构造精度高、规模小的决策树是决策树算法的核心内容。决策树构造可以分两步进行。第一步,决策树的生成:由训练样本集生成决策树的过程。一般情况下,训练样本...

    用于构造决策树的小数据集

    决策树一般采用贪心策略**自顶向下**递归的分治方式构造,从训练元组集和与之相关联的类标号开始,随着树的构建,训练集递归地划分成较小的子集。构造过程大致如下: 1. 构造**根结点**,根据**属性选择度量**...

    一种决策树ID3算法及其优化的实现

    构造决策树是采用自上而下的递归构造方法。决策树构造的结果是一棵二叉或多叉树,它的输入是一组带有类别标记的训练数据。二叉树的内部结点(非叶结点)一般表示为一个逻辑判断,如形式为 (a = b) 的逻辑判断,...

    基于决策树ID3改进算法的煤与瓦斯突出预测

    以地质构造、瓦斯浓度变化等现场较为直观的突出征兆作为辅助决策属性,同时根据矿井实际工作面煤与瓦斯突出数据建立预测样本数据集,把决策属性的相对灰色关联度作为决策树ID3改进算法的最大信息增益计算权重,...

    基于粗糙集的决策树构造算法 (2010年)

    针对ID3算法构造决策树复杂、分类效率不高问题,基于粗糙集理论提出一种决策树构造算法。该算法采用加权分类粗糙度作为节点选择属性的启发函数,与信息增益相比,能全面地刻画属性分类的综合贡献能力,并且计算简单...

    ID3算法的应用

    ID3算法是一种贪心算法,用来构造决策树。ID3算法起源于概念学习系统(CLS),以信息熵的下降速度为选取测试属性的标准,即在每个节点选取还尚未被用来划分的具有最高信息增益的属性作为划分标准,然后继续这个过程...

    ID3算法java实现

    ID3算法java实现类,包含测试数据,训练数据,构造决策树完整的实现

    模式识别与机器学习-决策树.zip

    硬件环境 LenovoLegionY7000P2020H(16GBDDR4),IntelCorei7‐10750H Windows10,Chineseversion 软件环境 VisualStudioCode1.55.2 ...3.构造决策树之后进行剪枝操作。 4.能够处理具有缺失属性值的训练数据。

    python实现ID3决策树算法

    ID3决策树是以信息增益作为决策标准的一种贪心决策树算法 # -*- coding: utf-8 -*- from numpy import * import math import copy import cPickle as pickle class ID3DTree(object): def __init__(self): # 构造...

    第三章 决策树算法.pdf

    决策树分类器就像带有终止块的...ID3算法可以用于划分标称型数据集。构建决策树时,我们通常采用递归的方法将数据集转化为决策树。一般我们并不构造新的数据结构,而是使用Python语言内嵌的数据结构字典存储树节点信息

    犯罪令析决策树的构造方法

    【摘要】本文简要介绍了数据挖极技术在犯罪分析上的应用和用算法构造决 策树的方法, 并结合一个涉嫌犯罪人员样本数据, 采用决策树分析方法进行了分类, 给出 了一个较为成功的挖掘思路和模式。

    快速数据挖掘数据分析实战RapidMiner工具应用第11章 决策树与神经网络V1.1.pdf

    11.1 理解决策树 决策树方法在分类、预测、规则提取...构造决策树的核心问题是在每一步如何选择适当的属性对样本做拆分。对一个分类问题,从已知类标记的训练样本中学习并构造出决策树是一个自上而下,分而治之的过程。

    论文研究-一种基于灰色关联度的决策树改进算法.pdf

    在构造决策树的过程中,分裂属性选择的标准直接影响分类的效果。分析了现有改进的ID3算法不同程度地存在学习效率偏低和对多值属性重要性的主观评测等问题,提出一种高效而且可靠的基于灰色关联度的决策树改进算法。该...

    通信与网络中的一种决策树ID3算法及其优化的实现

    构造决策树是采用自上而下的递归构造方法。决策树构造的结果是一棵二叉或多叉树,它的输入是一组带有类别标记的训练数据。二叉树的内部结点(非叶结点)一般表示为一个逻辑判断,如形式为 (a = b) 的逻辑判断,其

Global site tag (gtag.js) - Google Analytics