数据挖掘决策树算法的改进与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据挖掘决策树算法的改进与实现
发表时间:2010-05-13T09:55:26.653Z 来源:《计算机光盘软件与应用》2010年第4期供稿作者:夏琰,周晓红,王东[导读] 本文作者从实际应用出发,对现存数据挖掘决策树分类方法进行了研究,并应用到系统当中,实现了决策支持模块。
夏琰,周晓红,王东
(长春职业技术学院,长春 130033)摘要:本文作者从实际应用出发,对现存数据挖掘决策树分类方法进行了研究,并应用到系统当中,实现了决策支持模块。关键词:数掘挖掘;决策树算法;改进;实现
中图分类号:TP301.6 文献标识码:A 文章编号:1007-9599 (2010) 04-0000-02
Data Mining Decision Tree Improvement&Implementation Xia Yan,Zhou Xiaohong,Wang Dong (Changchun Technology College,Changchun 130033,China)Abstract:The author studied on existing Data Mining decision tree classification method based on the practical application,and applied to the system,achieved a decision support module.
Keywords:Data Mining;Decision tree algorithm;Improve;Achieve
随着数据库技术的不断发展及数据库管理系统的广泛应用,数据库中存储的数据量急剧增大,在大量的数据背后隐藏着许多重要的信息,如果能把这些信息从数据库中抽取出来,将会产生重要的作用。
因此,数据挖掘涉及的学科领域逐渐扩大,数据挖掘的方法也在不断地改进和提高。分类在数据挖掘中是一项非常重要的任务,分类算法可以分为决策树分类算法、遗传算法、神经网络方法、K-最近邻分类算法等。这里,以疾病防控与儿童免疫管理系统中决策支持子系统的开发过程为例,对决策树分类算法的改进及在实际中的应用进行阐述。
一、数据选取和数据预处理
在本系统中,以预防接种中遇到异常反应后记录的“异常反应调查表”中的数据为例进行说明。具体实现过程详细说明:首先输入训练集,由于在真实的SQL Server数据库当中,为了降低存储要求和减少存储时间,并非真正存储每个数据项的属性值,而是用存储数字来对应相应的意义,如在数据库的数据表中,“性别”字段中“1”代表“男”、“2”代表“女”,反应到程序页面时再映射回原来的值,为了说理清晰又限于篇幅,这里只将所有数据集中有代表性的十几组数据作为分类模型创建的输入训练集。
表1 判断是否需要计划外加强免疫的属性表
儿童编号月龄出生状态常住地上次注射后反
应是否需要计划外加强免疫
0405102<=2正常产城市无不良反应否
0405495<=2正常产农村无不良反应否
0401342>5正常产城市无不良反应是
04054352…5正常产城市轻度反应是
04065342…5非正常产城市重度反应是
04072342…5非正常产农村重度反应否
0401544>5非正常产农村重度反应是
0408519<=2正常产城市轻度反应否
0404566<=2非正常产城市重度反应是
04035472…5非正常产城市轻度反应是
0401534<=2非正常产农村轻度反应是
0405856>5正常产农村轻度反应是
0409533>5非正常产城市无不良反应是
04053442…5正常产农村轻度反应否
二、生成决策树
对训练集的每一个属性,计算其信息增益。以“月龄”属性为例,每个结点中的正反例的个数分别为[2,3]、[3,2]、[4,0],分别计算如下:
info[2,3]=;
info[3,2]=;info[4,0]=0;
计算信息熵:E(月龄)==0.693;
计算该属性的信息增益量,选取信息增益最大的属性为节点,按该属性的值划分数据集合:Gain(月龄)=Info(9,5)-E(月龄)=0.940-0.693=0.247;
=0.971 =0.971
同理,对“注射反应”属性、“出生状态”属性、“常住地”属性都可计算每个结点的正反例的个数(由于篇幅有限,不作计算)。通过对各属性信息增益的计算结果,选择“月龄”属性作为根节点,然后划分“月龄<=2”的所有可能性。计算当“月龄<=2”时,“注射反应”、“出生状态”、“常住地”的信息增益值:
Gain(注射反应)= Info(2,3)-E(注射反应)=0.971-0.4=0.571;
Gain(出生状态)= Info(2,3)-E(出生状态)=0.971-0=0.971;
Gain(常住地)= Info(2,3)-E(常住地)=0.972-0.951=0.020;
同理考虑“月龄>5”的情况,由于“月龄>5”时,各个节点都是纯节点,所以不再划分。
三、产生决策规则
遍历决策树,输出叶结点类属性值,用IF—THEN形式表达为
IF(月龄 2…5 AND 注射反应=无)THEN (类别=是)
IF(月龄 2…5 AND 注射反应=轻)THEN (类别=是)
IF(月龄 2…5 AND 注射反应=重AND 出生状态=正常产)THEN(类别=是)
IF(月龄 2…5 AND 注射反应=重AND 出生状态=非正常产 AND 常住地=城市)THEN (类别=否)
IF(月龄 2…5 AND 注射反应=重AND 出生状态=非正常产AND 常住地=农村)THEN(类别=是)
……
依此类推,共可产生十三条规则。
四、决策支持子系统的分析
用上述基于决策树的分类算法所得到的模型生成的规则来预测测试集中的未知数据属于哪一类,并通过该模型的测试结果与实际情况相吻合的准确率来判断该决策树是否有效。
首先,用整个数据集中2/3的数据作为训练集按照基于决策树的分类算法来建立模型,生成一棵决策树。
然后,用余下的1/3的数据作为测试集,通过创建的模型进行预测,并将预测结果和实际值进行比较。如果准确率达到或超过事先确定的阈值,则可以认定该模型对于数据分类是有效的,能够在实际中应用;反之,则认定该模型的分类效果不好,需要按以上步骤来重新判断,直到分类准确率达到预定的阈值为止。
在本系统中,经过测试预测准确率已达到87%,在可以接受的范围内,所以算法是有效、可行的。
参考文献:
[1]陈文伟,黄金才.数据仓库与数据挖掘.人民邮电出版社,2004
[2]王万森.人工智能原理及应用.电子工业出版社,2000
[3]范明,孟小峰.数据挖掘——概念与技术.机械工业出版社,2001
作者简介:
夏琰(1980-),女,吉林长春人。长春职业技术学院信息技术分院,教师,讲师,硕士,研究方向为计算机应用。