第28卷第3期 2012年5月 齐齐哈尔大学学报 Journal of Qiqihar University V01.28.No.3 May,2012 基于决策树lD3算法研究与实现 王胜 (安徽国防科技职业学院,安徽六安,237011) 摘要:阐述数据挖掘的决策树算法,对It)3算法基本理论和原理进行介绍。运用该算法对教师教学质量测评数据 进行分析,构造出质量测评数据决策树模型。 关键词:数据挖掘;决策树;ID3算法 中图分类号:TP31 l 文献标志码:A 文章编号:1007—984X(2012)03-0064—05 1决策树简介 决策树通过使用信息论知识原理对获取到样本的众多属性进行解析和归纳,并最终形成类似于流程图 的树型结构形式。树型结构节点为样本的属性,分支为属性取值,其中树的根节点为样本中信息量最大的 属性,树的中间节点则为每个子树包含子集样本中信息量最大的属性,将样本类别取值作为树的叶节点。 一条合取规则就是从树根到叶结点的一条通路,整个树就是由一组析取表达式规则所构成。决策树构造可 以分2步进行: 第1步是树的生成,由训练样本集采用递归的方式生成决策树的过程。 第2步是树的修剪,即对上一阶段生成的决策树进行检验、校正和修正的过程。采用非训练集的事例 检验,将一些可能是噪音或者异常的数据剪去。 2 ID3算法 2.1 ID3算法基本思想 ID3由概念学习系统CLS发展而来,CLS的工作过程为:先从数据中找出最具判别力的因素,再根据 此因素将数据划分成多个子集,接着每个子集再找出最有判别力的因素进行进一步的划分,最终使得每个 子集中只含同类型的数据,生成一棵树,使用它可以分类新的样例集。 R.Quinlan于1986年引进了信息论中的信息增益,作为特征判别能力的度量,并提出了ID3算法” 。这 种算法对对象分类所需要的期望测试数目实现最小,从而得到一个简单的树。 ID3算法是基于信息熵 的决策树分类算法,为了获得具有最大信息增益的属性,需要对每个属性的信 息增益进行计算并比较其大小。设 是拥有.s|个数据样本的集合。假设类标号属性具有/71个不同取值 (f=1,2,…, )。设是. 类 中的样本数。对于一个给定的样本分类所需的期望信息由式(1)给出 =J” ,( , ,…,s)=-Ep,log ( ) i=l (1) 其中p 是任意样本属于 的概率,可用 来估算。t- 。 v 设一个属性j,具有玎个不同取值 , ,…, )。可以用属性 将 划分为 个不同子集{ , ,...’ ), 其中 ,中的样本在属性Y上具有相同的值 ,(.,=l,2,…, )。若属性J,被选为测试属性,设 ,是子集S,中 类 的样本数。有属性】,划分成子集的信息熵(信息期望)由式(2)计算出 n E(】,)= l,+ 2,+‘‘斗 朋,)/ ×( lf, 2,,…, mj)) (2) 收稿日期:2011-12—15 . 作者简介:王胜(1979一),男,安徽六安人,讲师,硕士,主要从事计算机网络和数据挖掘方面的研究工作,jacken_79@126.com。 第3期 基于决策树ID3算法研究与实现 其中(sl,+s2,+・・+ ,)/s被当做第J个子集的权值。 由上述计算可得:若对子集划分的纯度越高,就要求熵值越小。 对于一个给定的子集S,其信息期望为 ( 。J, : ,…, )=一至 log:( );P =号是 中样本属于 样本的概率。 属性】,上分支将获得的信息增益是 Gain(Y)=l(s S2 “, ,)一E(】,) (3) 由式(3)可知:如果熵的取值越小,其所对应的信息增益就会越大。 2.2 ID3算法描述 主算法描述为: ①随机从数据训练集中挑选含有正、反例的子集(称之为“窗El”); ②对上述随机选择的子集使用“ID3建树算法”构建一棵决策树; ③使用上述构建的决策树对训练集中除窗El以外的实例进行类别判定,从而找到错判的实例; ④如果出现判断出错的实例,就将其放入到窗口中,并跳转②执行,否则结束此算法。 建树算法描述为: ①对随机从数据训练集中挑选出来的含有正、反例的子集,进行各个属性特征的互信息计算; ②将互信息最大的特征 选为树的根或者是子树的根; ③把在 。处取值相同的例子归于同一子集,并将该值作为树的分支; ④对仅含正例或反例的子集则返回调用处; ⑤对于既含正例又含反例的子集,则递归调用建树算法,返回②,重复构建子树。 2.3 ID3算法的改进 在多数实际应用中,由于获得的数据不能达到此算法要求的条件,同时ID3算法存在计算信息增益时 只选择取值较多的属性,对连续属性不能处理等不足。这就要求在使用决策树算法时,对数据先进行预处 理或者对ID3算法进行改进。 2.3.1决策树剪枝 实际应用中,在决策树创建过程中,如果训练样本集的规模较大,对应生成决策树的分枝和层数就较 多。另外,由于训练样本集中存在不同的异常和噪声,致使部分分枝反映的是异常现象。建立的决策树就 出现过度拟合训练样本集。为了解决这种过度拟合问题,就需要对决策树进行剪枝。剪枝是克服噪声的一 种技术,采用统计度量减去最不可靠的分支,从而提高决策树独立于测试数据的正确分类能力,决策树得 以简化。 . 2.3.2对定量属性的处理 在实际工作中,数据挖掘既要能处理定性属性(即离散属性)的数据又要能处理定量属性(即连续属 性)的数据,这就要求对算法进行扩展,使之能够处理定量属性。 要使算法能够处理定量属性,就需要对其值进行划分,关键性的问题是分裂点的选择。ID3算法通过 对连续属性计算得到最优阈值 ,依据 将定量属性的取值进行分区,lilJ/J,于等于 和大于 两个区。 再计算出该屙陛的增益比率,通过比较其它属性的增益比率,获得最大的信息增益比率。通过这种方法较 好的解决了定量属性的离散化处理问题。 1993年J.R.Quinlan提出了c4.5算法pLID3算法的改进版本,该算法就增加了对连续屙I生离散化等 功能。 3 ID3算法实例分析 通过实例介绍ID3算法的过程,实例是根据职称、性别、学历和年龄的指标因素来认定教师教学质量 是否优秀。列举部分教师的基本情况及其最后评估是否优秀的结果,其全 ̄-011练数据见表1。 ・66・ 齐齐哈尔大学学报 2012拄 表1教师数据库训练数据元组 序号 职称 l 2 3 4 5 6 初级职称 中级职称 初级职称 高级职称 中级职称 属性 性别 学历 年龄 男 女 男 男 女 本科 3 45 硕士 30~45 本科 ≤30 硕士 >45 本科 >45 是否优秀 序号 职称 否 是 否 是 否 否 8 9 属性 性别 学历 年龄 博士 30—45 硕士 30—45 是否优秀 否 是 否 是 是 否 高级职称 男 初级职称 女 lO 初级职称 l1 12 高级职称 中级职称 男.硕士 ≤30 女 本科 男 女 >45 硕士 ≤3O 本科 ≤3O 中级职称 女 本科 30-45 13 初级职称 7 高级职称 男 博士 >45 是 l4 中级职称 男 硕士 3O一45 否 3.1计算信思熵 信息熵为 H(U)=∑P( ) ( )=一Er(u )log P( ) = , l'2)。 由表I可以得到初始时刻属于“优秀”类的实例个数为6个(1 Ut 1=6),“非优秀”类的实例个数为8 个(1 U:1=8),对于6个正例和8个反例分别有 P(u。)= 6,尸( :)=百8 故初始时刻的熵值为 )=一(吾・。g 鲁+ -。g: )=。.985 3.2计算条件熵 条件熵为 H(U I V)=一∑尸( )∑尸( l Vj)logP(Ui I ) 当詹陛4=性别,取值 =男, =女。在4处取值男的例子8个,取值女的例子6个,故 尸( )= 8,尸( )= 6 取值为男的8个例子中有3个正例(“优秀”),5个反例,可得到 尸(u-l ) 盖,P( I ) 舌 同理可得 尸( 1 ) 言,尸( 1 ) 因此如果选取眭别作为测试属性,条件熵为 H(UI )=一百8‘虿3lDg:吾+言l。g: 5)一百6‘ 31og:詈+log: 3)=。.974 3.3计算互信息 当属性4=性别时:,(性别)=H(U)一H(Ul )=0.985—0.974=0.011。 第3期 基于决策树ID3算法研究与实现 同理可得:I(职称)=O.149;,(学历)=o.17;1(年龄)=O.128 3.4建立决策数的树根和分支 可以看出当属性取值为“学历”时,,(学历)最大,所以应该选择学历属性作为测试屙陛。将“学历” 特征为树根,将其属性的3个不同取值作为分支,分支所对应的3个子集为 M1={1,3,5,6,1 1,13},M2={2,4,9,10,12,14},M3:{7,8) 3.5递归建树 “学历”特征为树根,所得到3个子集均包含有正例和反例,这就需要对各子集分别使用ID3算法, 通过对子集中的各特征计算求的互信息,并产生相应的分支。直至所产生的分支包含的实例均属于某一类 为止。 在“学历”特征选择本科时所求各子集的条件熵。 如果下一个节点将职称选择为测试属性,则条件熵为 H(UIV)=一詈(0+1。g2 3)一詈(0+1。g: 2)一吉({I。g:{+0)=0 如果下一个节点选择性别作为测试属性,则条件熵为 H(UIV)=一吾(o+詈l。g:争一詈( 1。g 1+_34l。g: 3)=0.54・ 如果下一个节点选择年龄作为测试属性,则条件熵为 ( l )一言(o+1og2主)一言(0+主 。g2专)一 og2壶+o)=0-l67 可以看出,选择职称作为测试属性得到的H(UI )最小,所以I(职称)最大,故当“学历”特征选 择本科时,应选择“职称”作为下个结点的测试属性。由“学历”特征为本科所引申出的结点到此完成, 此决策树分支含有3个叶子结点。在“学历”特征选择硕士时所求各子集的条件熵。 如果下一个节点将职称选择为测试屙陛,则条件熵为 删熏 嫩H(UIV =一詈c ・。g:吉+ t。g: 一吾c詈・。g:吾+ ,。g 一吉c{t。g {+。 =。.792 如果下一个节点选择性别作为测试属性,则条件熵为 ( l ):一詈 -。g: + -。g: 2)一.詈(吾.og: 2+o)=0.667 如果下一个节点选择年龄作为测试属性,则条件熵为 H(UIV)=一詈( 一og2 I+llog2 I)一詈 ・。g:詈+ 一。g )一 磷 / I | 否 ÷(二1og2÷+o)=0.792 由于选择性别作为测试属性得到的H(U l )最小,所以 性 别)最大,故当“学历”特征选择硕士时,应选择“性别”作为 磷<耍 / I/ i \ 魁 下个结点的测试属性。 专釜3O 3O—噜5 按照这种算法思路,通过递归的建树方法将得到一棵基于 / \ 荫 是 ID3算法的决策树,最终产生一棵完整的决策树,如图1所示。 图1 ID3算法生成的决策树 参考文献 【1】马秀红,宋建社,董晟飞.数据挖掘中决策树的探讨【J】.计算机工程与应用,2004(1):185,214. 【2】李华.基于决策树ID3算法的改进研究嘲.成都:电子科技大学硕士学位论文,2009. 【3】高阳,廖家平,吴伟.基于决策树的ID3算法与C4.5算法【J】.湖北工业大学学报,2011,26(2):54—56 『41王永梅,胡学钢.决策树中ID3算法的研究【J】.安徽大学学报,2011,35(3):71—75. [5】陆秋.基于决策树ID3算法的数据挖掘技术研究与应用【D】.桂林:桂林工学院硕士学位沦文,2007. Study and realization of algorithm based on decision-tree l D3 一 ;} ・68・ 齐齐哈尔大学学报 2012钜 WANG Sheng (Anhui Vocational College of Defense Technology。Anhui Liu’an 23701 1。China) Abstract:This paper mainly describes the data mining on the decision tree algorihtm,discussed the basic theories and principle concerning ID3 algorihtm.the use of hte algorihtm to the teachers’teaching quality evaluation data for analysis,constructing quality evaluation data decision tree mode1. Key words:data mining;decision tree;ID3 lagorihtm 数控车床变频器故障的解决方法 以沈阳机床厂生产的CAK6136V/350数控车床为例。探讨数控车床变频器故障的解决方法。其系统是FANIC—Oi MateTC, 在使用过程中出现主轴转数达不到设定转数,只有100 dmin左右,并且运行不到1 min,荧光屏显示报警1003 SPINDLE DRIVER NOT READY(主轴驱动器没准备),复位后,手动启动主轴,主轴不转,下电后,数分钟,重新上电,手动启 动主轴,主轴运转仍为1O0drain左右。 1原因分析 其数控机床主轴是由变频器控制的(南京日立产机有限公司生产)。参照机床使用说明书中的机床报警信息内容及解决 方法,发现变频器警示灯亮,其主轴驱动模块显示报警号为El4.6,查看 变频器使用手册,说是上电时检测变频器输出和电机之间有接地故障。检 查变频器输入及输出电压,发现输入电压正常,输出电压只有00V左右, 将负荷摘下,其输出电压仍为6oV左右。同时测量电机绕组,发现电机 绕组接地。因此,故障应出现在变频器上和主轴电机上,可能是电机绕组 接地引起变频器的损坏。 2故障排除 图1电路图 将电机线拆下,电机更换绕组进行修复;去掉变频器的电源线(R, 表I测量结果 s,T),与电机的连线(u、V、w),再生制动电阻(P和RB)和其它控 制线。将变频器拆下,打开外壳,将滤波电容器完全放电,通过改变万用 表极性,测量变频器端子R,S,T,U,V,W,RB,P和N的导通状态, 内部电路,如图1所示。但对变频器的逆变电路TR3进行测量时,发现 端子w和端子P之间正、负均导通,说明驱动光w相光偶烧坏。更换该 相光偶,再次测量,端子w和端子P之间不导通,端子P和端子w之间 导通。将该变频器安装到设备上,接好控制线路和电源后,送电,用万用 表测量输出电压,三相电压正常。断电后,接上主轴电机连线,送电启动, 设定主轴300r/arin,发现主轴转数达到3000r/min,按降速按钮,不降速。 由于主轴电机的转数是由变频器的参数进行调整的,所以按说明书中的方 法,对变频器进行整定,通过变频器自整定后,主轴转数仍为3000dmin, 并且不降速。调取变频器自整定后参数,发现变频器自整定后的终止频率 A012置0(相当于最大频率),频率上限A061置152(置0相当于最大 频率)。对其频率进行手动调整,将终止频率A012设定为152.00,频率 上限A061设定为O。存储数据后,启动主轴,转数为300dmin左右。升 降速正常。机床运行也正常。 (谷瑞波。齐齐哈尔金车公司制动机厂,黑龙江齐齐哈尔161000)