决策树中ID3算法的研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 决策树简介
决策树 ( Decisio n T ree) 是一种有向、 无环图 ( D irected A cyclic Graphics , 简称 DAG)
[ 2]
. 决策树方法
是利用信息论中的信息增益寻找数据库中具有最大信息量的属性字段 , 建立决策树的一个结点 , 再根据 该属性字段的不同取值建立树的分支 , 再在每个分支子集中重复建立树的下层结点和分支的一个过程. 构造决策树的具体过程为 : 首先寻找初始分裂 . 整个训练集作为产生决策树的集合, 训练集每个记录必
R esearch of ID3 algorithm in decision tree
WANG Yong m e i, HU Xue gang
1 2
( 1. Schoo l of Infor m ation and Computer , A nhu iA g ricu ltu ra lU n iversity , H efe i 230036, Ch ina ; 2. Schoo l of Com puter and In fo r m ation, H efe iU niversity of T echno logy , H efe i 230022, Ch ina)
图 1 决 策树构造和优化过程 F ig. 1 Bu ild ing up and modif ication process of d ecision tree
2
2 . 1
I D 3算法
ID3 算法描述
在当前 DT 学习的各种算法中, 影响最大的是 J . R. Qu in lan 于 1986 年提出的 ID3 算法, 他提出用信 息增益 ( 即信息论中的互信息 )作为属性的选择标准, 以使得在对每一个非叶结点进行测试时 , 能获得 关于被测试记录最大的类别信息. ID3 总是选择具有最高信息增益 ( 或最大熵压缩 ) 的属性作为当前节 点的测试属性. 具体方法是 : 检测所有的属性, 选择信息增益最大的属性产生决策树结点, 由该属性的不 同取值建立分支 , 再对各分支的子集递归调用该方法建立决策树结点的分支 , 直到所有子集仅包含同一 [ 4- 8] 类别的数据为止 , 最后得到一棵决策树, 它可以用来对新的样本进行分类 . 设 S 是 s 个训练数据样本的集合 . 假定类标号属性具有 m 个不同值 , 定义 m 个不同类 C i, i = 1 , m, si 是类 C i 中 的样本数 . 一个给定的样本分类所需的期望信息由下式给出:
样本数据集tab1samplestatistics图2id3算法生成的决策树fig2decisiontreemadebyid3algorithm改进的id3算法生成的决策树fig3decisiontreemadebytheimpreovedid3algorithm对这两种算法所构造的决策树进行比较可以发现改进的id3算法与id3算法所生成的决策树有很大区别从决策树中提取的分类规则也有较大差别改进的id3算法降低了婚姻情况对是否拖欠贷款影响的重要性即离根结点的距离变远了
72
安徽大学学报 ( 自然科学版 )
第 35 卷
须是已经分好类的, 以决定哪个属性域 ( F ield)作为目前最好的分类指标 . 一般的做法是穷尽所有的属 性域, 对每个属性域分裂的好坏做出量化 , 计算出最好的一个分裂 . 量化的标准是计算每个分裂的多样 性 ( D iversity) 指标 . 其次 , 重复第一步, 直至每个叶节点内的记录都属于同一类且增长到一棵完整的树. [ 3] 如图 1 所示 .
Abstract : ID3 algorithm w as the core approach in Decisio n T ree algo rithm. In th is paper , basic id eas , approaches and perfor m ance o f I D 3 algorithm w ere in troduced and analyzed , and som e de ficiencies w ere found . T hen w eight w as in troduced in the research in order to m i prove th e algorithm. Resu lts o f the experi m ents show that i m provem ent involv in g w eight factors are effective. K ey w ord s : data m ining ; decisio n tree ; I D 3 alg orith m; w eight 随着信息技术的飞速发展 , 数据量也以惊人的速度增长, 如何从这些大量的、 不完全的、 有噪声的、 模糊的、 随机的数据中提取隐含在其中的有用信息呢? 于是 , 从数据库中发现知识 ( Know ledge D iscovery in D atabase , 简称 KDD) 及其核心技术即数据挖掘 ( Data M in ing )便应运而生 . 数据挖掘是指从大量结构 [ 1] 化和非结构的数据中提取有用的信息和知识的过程 , 是知识发现的有效手段 . 数据挖掘的方法有多 种 , 每一种数据挖掘方法都有各自的特点和应用领域, 通过调查发现, 决策树算法是历年来应用最广泛 的数据挖掘方法之一 .
收稿日期 : 2010- 11- 16 基金项目 : 国家自然科学基金资助项目 ( 30971691); 安徽省自然科学基金资 助项目 ( 090412044) 作者简介 : 王永梅 ( 1974 教授 , 博士 , 博士生导师 . 引文格式 : 王永梅 , 胡学钢 . 决策树中 I D 3 算法的研究 [ J]. 安徽大学学报 : 自然科学版 , 2011 , 35( 3) : 71- 75. ), 女 , 安徽全椒 人 , 安 徽农业 大学讲 师 ; 胡 学刚 ( 1961 ) , 男 , 安 徽当涂人 , 合 肥工 业大学
m
,
I ( s1, s2, 制编码 .
, sm ) = i= 1
p i log2p i,
( 1)
其中: p i 是任意样本属于 C i 的概率 , 一般用 si / s 来估计. 注意, 对数函数以 2 为底 , 其原因是信息用二进 设属性 A 具有 v 个不同值 { a1, a 2, , av }, 可以用属性 A 将 S 划分为 v 个子集 {S 1, S 2, , S v }, Sj 中的 样本在属性 A 上具有相同的值 a j, j = 1 , 2 , , v, sij 是子集 S j 中类 C i 的样本数 , 由 A 划 分成子集的期望 信息由下式给出 :
v
E (A ) =ห้องสมุดไป่ตู้aA
j= 1
[ ( s1j + s2j +
+ s m j ) /s ] I( s1j, s 2j,
, s m j ).
( 4)
改进 ID3 算法即把 E (A ) 作为测试属性的选择标准来构造决策树. 在实际应用中可以先用 I D 3算 法构造决策树, 如果在构造决策树的过程中, 出现了取值少的重要属性比取值多的非重要属性离根结点 的距离远的情况 , 则可利用改进后的 I D 3 算法重新构造决策树 , 并进行规则提取 .
1 2
( 1. 安徽农业大学 信息与计算机学院 , 安徽 合肥 2. 合 肥工业大学 计算机与信息学院 , 安徽 合肥 摘
230036; 230022)
要: I D 3 算法是决策树分类方法的核心算法 , 文章论述了 ID3 算法的基本思想和实现方法 , 并对
ID3 算法的性能进行分析 , 发现该算法存在不足之处 . 针对 ID3 算法倾向于多属性值的缺点 , 引入了权值 对算法进行改进 , 并通过试验对 改进前后的算法进行比较 , 结果表明改进后的算法是 有效的 . 关键词 : 数据挖掘 ; 决策树 ; I D 3 算法 ; 权值 中图分类号 : T P391 文献标 志码 : A 文章编号 : 1000- 2162( 2011) 03- 0071- 05
2011 年 5 月 第 35 卷 第 3 期
安徽大学学报 ( 自然科学版 ) Journa l o f Anhu iU n iversity ( N a tura l Sc ience Ed ition)
M ay 2011 V o. l 35 N o . 3
决策树中 ID3算法的研究
王永梅 , 胡学钢
m
I ( s1j, s2j, 其中: p ij = sij /sj是 S j 中样本属于 C i 的概率. 属性 A 上分支将获得的信息增益为:
, s m j) = i= 1
p ij log2p ij,
Ga in (A ) = I( s1, s2, , s ( 3) m ) - E (A ). 算法计算每个属性的信息增益, 并选取具有最高信息增益的属性作为给定集合 S 的测试属性, 创建 一个结点, 并以该属性标记 , 对该属性的每个值创建一个分支 , 并据此划分样本 2 . 2 ID3 算法的性能分析 ID3 算法通过不断的循环处理 , 初步求精决策树 , 直到找到一个完全正确的决策树 . 在选择重要特
3 算法举例
给出一个预测贷款申请者是否会按时还贷款的实例. 表 1 给出了影响按时还款的几个相关指标的 数据集合, 它有 4 个属性: 拥有车辆情况、婚姻情况、 父母收入情况、 申请者收入情况, 这 4 个属性被分 为是 ( 正例 ) 和否 (反例 ) 两类 . 其中的属性分别定义为 : A 1 = 拥有车辆情况 {有车, 没车 }, A 2 = 婚姻情 况 { 已婚 , 单身, 离婚 }, 由于收入情况是连续属性 , 可将它离散化, 以方便分类. 因此收入情况属性可以 分为 : 收入情况 3 000 (高 ) 、 收入情况 3 000 (低 ), 则 A 3 = 父母收入情况 { 高 , 低 }, A 4 = 申请者收入 情况 {高 , 低 }. 以该样本数据集为训练集, 分别采用 I D 3 算法和改进的 I D 3 算法构造决策树 , 来对数据 进行分类. 从表 1 样本数据集中取 100 个样本, 其中类 是 有 45 个样本 , 其中类 否 有 55 个样 . 依据 公式 ( 1) 计算出开始时熵值为: 0 . 992 8 , 依据公式 ( 2)得出拥有车辆情况、婚姻情况、 父母收入情况、申 请者收入情况 4 个属性的信息熵分别为: 0 . 866 、 0 . 539 2 、 0 . 878 、 0 . 832 8 , 由于婚姻情况属性具有最小 信息熵 , 再依据公式 ( 3) 可知它具有最大的信息增益 , 因此它被作为测试属性, 创建节点婚姻情况 , 并对 每个属性值引出一个分支 , 样本数据据此划分 . 每一个分支按照以上方法递归计算, 最后得出的决策树 如图 2 所示 . 用改进的 ID3 算法对表 1样本数据集重新生成决策树, 依据取证经验, 申请者收入情况对于是否拖 欠贷款比较重要 , 所以分别取 4 个属性 (拥有车辆情况、婚姻情况、 父母收入情况、 申请者收入情况 ) 的 权值为 1、 1 、 1 、 0 . 6 , 依据公式 ( 4) , 计算出它们的信息熵分别为 : 0 . 866 、 0 . 539 2 、 0 . 878 、 0 . 499 7 .
v
E (A ) =
j= 1
[ ( s1j + s2j +
+ sm j ) / s] I ( s1j s2j,
, sm j ),
( 2)
其中:
s1j + s2j + s
+ sm j
充当第 j 个子集的权 , 并且等于子集 (即 A 值为 aj ) 中的样本个数除以 S 中的样
本总数 . 熵值越小 , 子集划分的纯度越高. 对于给定的子集 Sj , 其期望信息由下式给出 :
[ 9]
.
第 3期
王永梅 , 等 : 决策树中 I D 3 算法的研究
73
征时利用了信息增益的概念, 该算法优点在于 : 算法的基础理论清晰 , 方法简单, 计算速度较快 ; 搜索空 间是完全的假设空间 , 目标函数就在搜索空间中, 不存在无解的危险; 全盘使用训练数据, 可得到一棵较 为优化的决策树 . ID3 算法在实际应用中解决了很多问题 , 对于非增量式学习任务, ID3 算法常常是建立决策树的很 好选择 , 但该算法不足之处在于 : 不能增量地接受训练例, 这就使得每增加一次实例都必须废除原有的 决策树 , 重新计算信息增益并构造新的决策树 , 这造成极大的开销 ; 只能处理离散属性 , 对于连续型的属 性 , 在分类前需要对其进行离散化的处理 ; 在建树时 , 每个结点仅含一个特征, 这是一种单变元的算法, 特征间的相关性强调不够 ; 对噪声较为敏感, 数据质量差将直接导致生成的决策树过于庞大或决策树中 很多分支的信息量很小; 在建树的过程中每当选择一个新属性时, 算法只考虑了该属性带来的信息增 益 , 未考虑到选择该属性后为后续属性带来的信息增益 , 即未考虑树的两层节点; 其信息增益度量存在 一个内在偏置, 它偏袒属性值数目较多的属性 . 2 . 3 ID3 算法的的改进 根据以上的分析 , 可知 I D 3 算法往往会偏袒属性值数目较多的属性 , 这一弊端使得该算法在实际分 类应用中会出现趋向于抛弃小数据量的数据元素, 然而属性值数目较多的属性却不总是最优的属性 . 例 如 : 在研究影响大学生成绩的各种因素时 , 用传统的 I D 3 算法确定 学生的年龄 为应首先判断的属性, 但实际教学中老师认为这个属性在判断大学生成绩时并没有那么重要 ; 在销售市场, 销售量分析需要对 某些少量的元素组有足够的重视, 而 ID3 算法则会忽视这些影响销售量分析的重要属性 . 针对这一问 题 , 需对 I D 3 算法进行改进 , 即在计算信息墒时人为地引入权值 a , 来区分不同信息属性的依赖度. 权值 a 是一个模糊的概念 , 它的大小可由决策者根据先验知识或领域知识来确定每一属性的权值 ( 权值 a 越小, 则属性的重要性就越高 ). 引入权值即在决策树训练过程中, 生成和修改决策树的实例集 之外的所有影响决策树规则生成和选择的因素 , 从而避免出现所选属性与现实无关或偏大数据量的问 [ 10- 13 ] 题 . 引入权值后, E (A ) 改为 :
相关文档
最新文档