APP下载

基于决策树和面向对象技术的糖尿病诊断专家系统设计

2016-10-26倪家远汤亚玲

关键词:样例知识库决策树

倪家远,汤亚玲

(安徽工业大学计算机科学与技术学院,安徽马鞍山243032)

基于决策树和面向对象技术的糖尿病诊断专家系统设计

倪家远,汤亚玲*

(安徽工业大学计算机科学与技术学院,安徽马鞍山243032)

糖尿病是一种高发病率高危害性的代谢性疾病,但人们对其认识、诊疗方法和诊疗资源都有限。通过学习糖尿病和专家系统的相关知识结合面向对象技术和数据库技术,设计了一种基于决策树的糖尿病诊断专家系统,该系统实现简单、维护方便,对于普遍病人自查自诊和医生的辅助诊疗都有很好的实用价值。

决策树;糖尿病;面向对象技术;数据库;专家系统

糖尿病是一种因胰岛素分泌不足引起的代谢性疾病[1]。近年来随着人们生活水平的提高,糖尿病患病人数急剧增加,根据世界卫生组织的统计,目前我国糖尿病患病人数已达1.5亿[2],糖尿病已经成为一种严重危害人们身体健康的疾病。但是人们的糖尿病认知知识还比较缺乏,糖尿病的诊疗资源也远远不能满足患者的需求,因此,有必要设计一个推理效率和准确率较高,使用简单、价格低廉的医疗诊断专家系统,以帮助人们及早地发现隐藏的糖尿病病情,监控自己的血糖,做到早发现早治疗。

医疗诊断专家系统是模拟医疗专家诊断、治疗疾病的思维过程,运用专家系统的设计原理和方法编写的计算机程序[3]。医疗诊断专家系统已成功应用于实践,如燕山大学闫恩亮等开发的中西医结合诊治糖尿病专家系统,该系统结合医案利用机器学习融合信息进行诊疗[4];土耳其大学Ali Keles团队研发的治疗乳腺癌Ex-DBC系统,其把模糊规则运用到推理机中[5]。但这些专家系统都普通存在一些问题,如知识表示困难、推理机制复杂、效率低等。

决策树模型是一种效率较高的归纳推理方法。决策树学习以实例为基础,在学习过程中从无序、零乱的事例中提取规则,用决策树的形式表示出这些规则之间的逻辑关系[6]。决策树模型具有结构简单、存储方便、推理准确等特点,运用决策树实现医疗诊断专家系统的知识表示与推理,有效提高推理效率、推理准确性。

1 系统总体结构

文中设计糖尿病诊断专家系统的结构如图1所示。

该系统包括六个主要功能模块:知识库、综合数据库、推理机、知识获取机制、解释程序和人机接口。

图1 系统结构

(1)知识库:存放着知识工程师从糖尿病医疗专家处收集整理的专业诊疗知识。这些知识包括糖尿病的成因、并发症,以及相关的案例和治疗方法和一些专业书籍知识等。知识库中的知识分成两类:一类是诊断推理性知识,另一类是治疗性知识。诊断推理性知识较少,一次调入内存,系统通过与用户对话,推导出患者所患的疾病名称,然后系统将与疾病有关的决策树调入内存。这样不仅可以运行知识量大的决策树,而且减小了搜索空间,提高了推理效率[7]。知识库还有一个重要功能是把用自然语言表示的糖尿病知识转化为计算机可识别的形式化知识。(2)综合数据库:在问题求解过程中会产生各种中间性临时性的数据,这些数据放在综合数据库中[8]。该系统中综合数据库用于记录用户所描述的病情、化验结果、推理的中间结果和最终结论等。(3)推理机:是专家系统的“大脑”,它在一定的控制策略下模拟糖尿病医疗专家的思维过程,结合综合数据库中的已知事实,选取知识库中相应的决策树,通过遍历决策树匹配已知当前事实知识和规则。该系统基于决策树采用正向推理,即数据驱动推理方法,从患者的症状、并发症及相关检测化验数据出发推出诊断结果。(4)知识获取机制:从知识源中对杂乱无序的糖尿病知识进行识别和选取,将其转换成计算机可识别的形式,并不断完善知识库。知识源包括医疗专家知识、经验和相关专业书籍知识。知识获取系统由建立系统的知识工程师所使用,当发现有知识被遗漏或不完善时,知识工程师可以利用这个机制来增加和修改知识。(5)解释程序:是对系统的推理过程作出通俗易懂的解释,以增加推理过程的可信度。该系统采用路径追踪法,即对系统求解过程的推理路径和知识库的运行状态信息进行重显。(6)人机接口:即人机界面,是人机交流的桥梁,用户通过人机界面输入糖尿病专家系统所需的数据和信息,系统通过人机界面显示结果和相关解释信息。

2 系统的具体设计

2.1建立决策树

2.1.1决策树学习算法知识工程师从医疗专家处获得的案例、知识、经验是零碎无序的,决策树经过归纳学习建立起构造有序的树型结构,一方面可以使凌乱的知识有序化,另一方面在建立起决策树的同时也使各知识点的逻辑关系更明确化,这样更有利于决策树的推理。

构造决策树的关键是选择合适的属性和确定节点的划分规则。由于ID3算法是决策树学习中较为流行的算法,在此采用该算法,通过学习,自上而下地构造决策树。在决策树的构造过程中,首先计算每个属性分类训练样例的能力,这样就量化了属性的分类能力,然后选择分类能力最佳的属性作为根节点的测试属性。接着根据根节点属性值的个数产生同等数量的分支,然后把具有相同属性值的样例安排在相应的分支下。重复执行这样一个过程,在每个新的分支下排放的实例中选择分类能力最强的属性作为新节点的测试属性。结束整个过程执行的条件有两个:(1)所有训练样例都被归为同一类,(2)没有剩余属性可使用。对于缺少属性的训练样例,可以把该节点的训练样例中该属性最常见的值赋给它。

ID3算法的核心是确定何种属性作为建树过程中节点的测试属性,在此引出信息增益的概念。信息增益:在某一个操作之前的系统熵与操作之后的系统熵的差值,也即是不确定性的减少量。信息的增加意味着不确定性的减少,也就是熵的减小。熵是描述事物无序性的参数,熵越大则无序性越强,在信息领域定义为熵越大,不确定性越大。

设有C个不同类的样例集S,则熵的定义为

其中,Pi是样例集S中任意样例属于类别i的比例。

一个属性A相对样例集合S的信息增益Gain(S,A)可定义为

其中,Values(A)是属性A所有可能值的集合,Sv是S中属性A的值为v的子集,即Sv={s∈S|A(s)=v}。上式值越大说明选择属性A对于分类提供的信息越大。ID3算法在建树的过程中每一步都选择信息增益最大的属性作为树节点的测试属性。

2.1.2算法的改进ID3算法仅考虑属性的信息增益是不够的,还应该考虑属性的代价问题。例如在诊断推理过程中需要患者的血糖值、尿糖值、血压、脉搏等属性值,为了得到这些属性值无论是患者所需要的费用还是承受的不适,代价差别都是非常巨大的。为解决这个问题该系统将优先选择低代价属性,当需要精确诊断时再选择高代价的属性。为此文中将ID3算法作一些改进,将属性的代价引入到ID3算法中,用信息增益除以属性的代价

其中,Cost(A)是检查属性A所需代价,ID3算法选择最大值的ExGain作为测试属性递归构建决策树。

另外熵函数也不理想,它的缺点是在选择属性时更倾向于那些属性值的数量较多的属性。例如:A属性有两个属性值,B属性有三个属性值,则熵函数会偏向选取B属性。然而属性B在判断病情的时候并不一定比A属性更有价值,如年龄的属性值的数量会有很多,但它在判断病情的时候并不一定是最重要的。为了克服熵函数偏向于选择值多的属性作为测试属性的问题,在此采用二叉树作为决策树的模型,这样使得在建树的过程中各属性具有相同的机会被选中作为测试属性,同时也可以避免规则的冲突和冗余,便于对决策树节点进行匹配和遍历[9]。

利用改进的ID3算法建立二叉树的过程如下:

ID3(Samples,Target_attribute,Attributes_list)//Samples即训练样例集。Target_attribute是这棵树要分类的目标属性。Attributes_list是除目标属性外供学习的决策树测试属性。返回一棵能正确分类疾病的决策树。

通过决策树学习建立起诊断二叉树,如图2所示。

该系统中决策树有三类节点,根节点、判断节点、叶节点。根节点表示糖尿病的症状;判断节点中封装了病情诊断的内容,分支表示是和否,用于回答判断节点提出的问题;叶节点表示最终的诊断结果。

图2 诊断决策树

2.2面向对象技术的应用

该系统采用面向对象技术将决策树的节点信息充分的表示出来。利用面向对象技术把决策树的节点封装成节点类,然后用节点类定义每个节点对象,节点对象的属性包括节点的编号、类型、内容、所属决策树的编号、父节点编号、左子节点编号、右子节点编号、备注等,见表1。采用面向对象技术方法,把所有决策树节点存放在一个简表中,节点位置在表中固定,通过节点指针(节点编号)指向节点所在位置,这使得系统可很快根据症状信息找到诊断树和节点,并根据指针表遍历决策树,节省了大量的搜索时间[10]。

表1 决策树中节点的记录结构

2.3推理机的设计

2.3.1推理方向和流程正向推理是按照由症状推出诊断结果的方向进行的推理方式。一颗决策树从树的根节点到一个叶子节点就对应一条规则,整颗树就是若干条规则的析取。在本系统中首先根据病人的基本症状搜索选取决策树,再根据在综合数据库中给出的已知事实,正向使用规则遍历决策树,树的遍历过程就是规则与已知事实的匹配过程。若有多条规则可用,则采用队列优先级原则,将执行规则的结论添加到综合数据库中,并将用过的规则置上激活标志,直到得出诊断结果或没有可用规则为止。正向推理诊断推理流程如图3所示。

图3 诊断推理流程

2.3.2推理算法在系统的推理机的设计中,把诊断决策树中的所有节点对象存储在关系型数据库中,节点对象之间的逻辑关系即指针通过其父节点编号以及父节点到子节点之间的状态来实现,糖尿病诊断推理规则包含在对象之间的逻辑关系中。推理过程中会遇到三种状态:(1)当前节点是决策树的根节点;(2)当前节点是决策树的判断节点;(3)当前节点是决策树的叶节点。推理算法如下:

①根据用户输入的症状从知识库中选择决策树,Tree*T,T=root,Initstack(S);

②P=P->Rchild;//进入根节点的下层节点,根节点下只有一个子节点,默认为右子节点

③if(当前节点是判断节点)

2.3.3解释机制在诊断推理结束后,转入解释系统,通过解释系统回答用户的疑问,解释专家系统的行为和结果。解释时,系统把计算机的形式化规则用自然语言表示出来,并显示推理过程。该系统采用路径追踪解释法,将推理的过程和步骤记录下来,存放在综合数据库中,通过重新显示推理过程来增加用户对系统推理结论的信任度,如图4所示,同时这些记录也为以后系统进行自学习提供知识来源[11]。

图4 路径追踪解释过程

3 结语

文中综合了诊断型专家系统和决策型专家系统来设计糖尿病辅助诊断专家系统,利用决策树的知识表示方法和推理方法来实现专家系统的核心功能——知识表示和推理,结合面向对象技术和数据库技术将决策树的节点封装到对象中以利于存储和更新。在诊断推理时只启用与该诊断决策树相关联的节点,从而缩小了搜索的范围,节省了内存开销,提高了诊断效率。该系统知识库中收集、整理、记录了糖尿病专家提供的知识和相关专业书籍知识,有利于专家知识的推广,方便于患者自诊监控病情,同时也能为糖尿病医疗资源相对匮乏地区的医生诊疗提供帮助。

[1]魏军平.糖尿病治疗调养全书[M].北京:化学工业出版社,2010:3-4.

[2]张明玉,闫岩,张蒙.社区/医院一体化对糖尿病人群综合干预效果分析[J].中华全科医学,2011,9(9):1417-1419.

[3]钱宗才,屈景辉,刘敬华,等.专家系统知识表示及其在医疗诊断系统中的应用[J].医疗卫生装备,2003,25(10):120-123.

[4]闫恩亮.基于医案和机器学习的中西医结合糖尿病专家系统设计[D].秦皇岛:燕山大学,2014.

[5]ALI K,AYTURK K,UGUR Y.Expert system based on neuro-fuzzy rules for diagnosis breast cancer[J].Expert Systems with Applications,2011,38(5):5719-5726.

[6]冯永新,杨文广,蒋东翔.基于决策树分类算法和专家系统的风力发电机齿轮箱故障识别方法[J].广东电力,2013,26(4):17-21.

[7]杭波,马计.基于二次推理的糖尿病诊断专家系统研究[J].微计算机信息,2008,24(2):221-222.

[8]沈丽容,黄洪.基于贝叶斯和可信度的糖尿病诊疗系统研究[J].计算机与数字工程,2011,39(11):51-53.

[9]王莎莎,孙继银,李琳琳.故障决策树模型在诊断专家系统中的应用[J].计算机应用,2005,25(S1):293-294.

[10]郭冬梅,李朝品.基于检索决策树的螨种分类鉴定专家系统[J].计算机工程与科学,2012,34(3):192-195.

[11]胡博,王智学,董庆超,等.基于描述逻辑的上下文知识获取与推理方法[J].计算机科学,2013,40(4):199-203.

Design of diabetes diagnosis expert system based on decision tree and object-oriented technology

NI Jiayuan,TANG Yaling
(School of Computer Science&Technology,Anhui University of Technology,Ma’anshan 243032,China)

Diabetes is a metabolic disease with high incidence and high risk,but people's understanding of it is still inadequate and the diagnosis and treatment resources are very limited.In this paper,through the study of the related knowledge of diabetes and expert system,we designed a diabetes diagnosis expert system combined with object-oriented technology and database technology based on decision tree.This system is easy to use and maintain.It takes a good practical value for patients‘self-diagnosis and doctors’diagnosis.

decision tree;diabetes;object-oriented technology;database;expert system

TP18

A

1672-0687(2016)01-0070-05

责任编辑:艾淑艳

2015-04-29

国家青年科学基金资助项目(61402009);安徽省高校重点基金资助项目(JK2010A051)

倪家远(1989-),男,安徽霍邱人,硕士研究生,研究方向:数据挖掘。*

汤亚玲(1974-),男,副教授,硕士,硕士生导师,E-mail:tangyl@ahut.edu.cn。

猜你喜欢

样例知识库决策树
样例呈现方式对概念训练类别表征的影响
“样例教学”在小学高年级数学中的应用
一种针对不均衡数据集的SVM决策树算法
基于TRIZ与知识库的创新模型构建及在注塑机设计中的应用
决策树和随机森林方法在管理决策中的应用
基于决策树的出租车乘客出行目的识别
高速公路信息系统维护知识库的建立和应用
基于Drupal发布学者知识库关联数据的研究
基于肺癌CT的决策树模型在肺癌诊断中的应用
基于样例学习研究的几点展望