1、基于节约覆盖集理论的中医计算机辅助诊断模块的研究与开发【摘要】 以中医理论为基础,运用基于模糊节约覆盖集理论的推理方法对中医的疾病诊断问题进行了研究和开发。将中医诊断知识进行了形式化阐述,设计构造了诊断专家系统的整体框架,并编程实现。认为本中医计算机辅助诊断模块解决了症状不完备情况下的诊断问题,并利用人机对话的补充诊断方式提高了诊断的准确度。 【关键词】 中医诊断 模糊论 节约覆盖集理论 中医计算机辅助诊断模块 中医证候诊断中存在多种不确定信息,这些信息具有以下特征:随机性、模糊性和未确定性。在目前国内外对中医诊断的计算机辅助系统研究成果中,节约覆盖集及其改进的概率模型可以解决上述一般性的问题
2、。节约覆盖集 1965 年由美国 Maryland 大学的 Reggia、Nau 等人提出,主要用于描述一般诊断问题,并运用合理、严格的数学方式进行形式化定义。本文研究的中医计算机辅助诊断模块,是基于不同特色,从智能系统的角度出发,采用中医诊断知识的经验知识,并研究了相应的知识表示和推理方法,在充分考虑中医证候经验知识的随机性、模糊性和不完备性的基础上,结合覆盖集理论的诊断模型及实际诊断中的序贯诊断问题,给出以“假设-测试“循环为核心的逐步求精算法,将该模型用于心系(小肠)证候诊断中,并用计算机程序实现。本中医计算机辅助诊断模块将节约覆盖集及其概率模型引入证候诊断模型,指出覆盖集理论中节约原则
3、的重要性,并根据不同的诊断系统划分出不同的节约原则,在分析心系(小肠)证候诊断系统特点的基础上,采用了适合其诊断的节约原则。现将该模型的理论基础、研究思路及内容简析如下。 1 覆盖集理论及其节约原则1 D(证候) 、M(症状)和 R(可能性)是证候诊断问题的一般知识,而 M+则是在某种情况下发生的症状。在已知 D、M、R 和 M+的基础上,可以对证候诊断问题进行如下定义: 1.1 定义(1) “症状-证候“的诊断问题(P)用集合论的形式可以定义为一个四元组:P=(D,M,R,M+) 。其中:D=(d1,d2,dn)表示所有证候的有限非空集合;M=(m1,m2,mk)表示所有症状的有限非空集合;
4、RD*M (di,mj)R 表示证候 di 可能引起症状 mj,其定义域为 T(R)=D,而值域为 F(R)=M。 给定 D、M 和 R,可定义以下集合: effect(di)=mj(di,mj)R,diD cause(mj)=di(di,mj)R,mjM effect(di)表示证候 di 可能引起的所有症状集合;cause(mj)表示所有可能引起症状 mj 的证候集合;Effect(DI)= UdiDIeffect(di)表示症状集 DI 可能引起的所有症状的集合;Cause(MJ)=UmjMJcause(mj)表示可能引起症状集 MJ 的所有证候的集合。MJM 表示目前已存在的症状集合。
5、 根据上面对诊断问题 P 的基本概念的定义,节约覆盖集理论对其解进行如下定义: 1.2 定义(2) 对任何诊断问题 P,如果存在 MJEffect(DI) ,则认为证候集合 DID 是症状集合 MJM 的一个覆盖集。 1.3 定义(3) 对任何诊断问题 P,若 D*ID 是 M+的节约覆盖集,则必须满足下述条件:M+ Effect(D*I) ,即 D*I 是 M+的一个覆盖集。D*I 的选取满足节约原则:相关性原则、非冗余原则、最小性原则和单证候原则等。 定义(2)诊断问题 P 的解 D*I 是指满足某种节约原则的 M+覆盖的集合。 选取哪种节约原则是求解证候诊断问题的关键,必须与实际诊断问题
6、相结合。在实际中必须针对不同的诊断系统采用不同的节约原则。 在诊断子模块中,面对的是多证候诊断,就是指在任何时刻,可能有多个证候同时发生,即证候之间存在相关性,一个证候的出现可能引起其他证候的出现,最终的诊断结果是一组相关的证候。在系统中简单证候出现的情况远大于多种证候组合的情况,所以采用最小性原则。 2 基于模糊数学的覆盖集改进模型及其算法2 证候诊断中存在着诊断的随机性、诊断信息的模糊性和信息获取的不完备性等不确定因素。由于这些不确定现象同时存在,单纯用概率统计或单独用模糊数学的方法都不能全面准确地反映证候诊断特性。因此,本文在建立基于节约覆盖集理论的概率模型基础上,进一步将模糊数学的方法
7、集成到症状的提取中,并在模糊集合定义以及运算基础上重新定义诊断问题以及似然函数,然后根据获取诊断信息的序贯性给出相应的求解算法,以建立基于模糊数学的改进模型。 在上一小节知识假设和证候独立性假设均成立的情况下,进一步将症状提取的模糊度和“症状-证候“之间的可信度引入节约覆盖集理论中,并对诊断问题作出了重新定义: 定义(4):“症状-证候“的模糊诊断问题可以定义为一个五元组P=D,M,C,R,M+,其中 D=(d1,d2,dn) ,M=(m1,m2,ml)分别是证候及症状的有限非空集合;C=ci1,ci2,cij,cmn,Cij 表示证候 di 引起症状 mj 的可信度。 RD*M*C , (d
8、i,mj,cij)R 表示证候 di 引起症状 mj 的可能性是cij,其定义域为 T(R)=D,而值域为 F(R)=M;给定 D、M、C 和 R,可定义以下集合: effect(di)=mj(di,mj,cij)R,diD cause(mj)=di(di,mj,cij)R,mjM M+=m1,m2.,mk是 M 的一个模糊子集,称为已知症状集,对于每一个 mjM+,(mj)0,1是 mj 在 M+中的隶属度。 根据上面对模糊诊断的定义,对其诊断解的似然函数进行如下定义:定义(5):L(DI,M+)表示 DI 的相对似然函数,为证候集合 DI能够解释模糊症状集 M+的程度,并且满足 L(DI,
9、M+)=L1(DI,M+)*L2(DI,M+) 。L1(DI,M+)=mjM+(mj)p(mj/DI) = mjM+(mj)1-diDI(1-cij) L2(DI,M+)= diDIpi1-pi L1(DI,M+)反映了 DI 有多大可能引起 M+中症状存在形成的加权;L2(DI,M+)代表由 DI 的先验概率组成的加权。 该似然函数的优点:(1)体现了症状模糊度对证候诊断结果的正影响;(2)体现了证候和症状之间的因果强度对证候诊断结果的正影响。 症状模糊度的选取,其值可由用户来确定。在实际诊断过程中考虑到医生习惯于用模糊语言描述症状的模糊度,因此,本子模块对每个症状构造了 4 个等级:症状完
10、全相同,症状相近,症状基本相近,症状不太相同,然后分别给出相应的模糊值,方便用户选择。对应关系如下:症状完全相同:1;症状相近:0.8;症状基本相近:0.5;症状不太相同:0.3。 3 中医计算机辅助诊断模块研究的内容 本诊断模块从智能系统的角度出发,采用中医诊断知识的经验知识,研究了相应的知识表示和推理方法,在充分考虑中医证候经验知识的随机性、模糊性和不完备性的基础上,结合覆盖集理论的诊断模型,并结合实际诊断中的序贯诊断问题,给出以“假设-测试“循环为核心的逐步求精算法,将该模型用于心系(小肠)证候诊断中,采用计算机程序实现,提高了诊断的准确性。 心系(小肠)证候的求解过程是指针对一组症状现
11、象利用有关知识给出相应证候的过程。首先根据已知的不全面的症状信息,运用知识推导出证候,如果是某种证候,必然出现另外的症状,然后通过相应的检查以明确这些症状是否确实存在,如果存在则假说成立,否则排除假说。因此,证候的诊断更多地表现为一个非单调过程:初检初诊再检再诊确诊,其间有假说的排除和新假说的提出。如此进行“假设-测试“的反复交互,最终可以确诊。 将上述的诊断模型为基础,给出一个诊断求解算法,该算法是以“假设-测试“循环为核心的逐步求精的诊断过程。该算法的基本步骤:(1)首先给定一些症状的初始集合,求出其对应的最小节约覆盖集;(2)通过求解最大似然函数,找出其对应的这组证候集合;(3)进入复诊
12、界面,调出这组证候集合包含的其他症状,从中进行选择;(4)若满足相应条件,即假定能从中再找出符合病人情况的 3 个或 3 个以上症状,则可确诊;(5)若不满足相应条件,即从中找不出 3 个或 3 个以上症状,则转入(1) 。 4 编程实现 本模块采用 Delphi 7.0 软件编程,实现的部分代码如下: begin form13.ListBox1.Clear; form13.Edit1.Text:=; for j:=1 to i do begin str:=a.症状名称 like+Mj+ ; str:=select distinct d.疾病 from 心系小肠症状表 a inner join
13、 症状疾病前件表 b on a.症状 ID=b.症状 ID +inner join 症状疾病后件表 c on b.rule_ID=c.rule_ID +inner join 心系小肠证候表 d on c.疾病 ID=d.疾病 ID +where+str; ADOQuery3.Active:=false; ADOQuery3.SQL.Clear; ADOQuery3.SQL.Add(str) ; ADOQuery3.Active:=true; ADOQuery3.First; k:=0; while not adoquery3.eof do begin k:=k+1; sj k:=ADOQuer
14、y3.Fields0.AsString; adoquery3.Next; end; Cj:=k; end; if i=1 then begin for j:=1 to k do begin Tj i:=Si j ; 5 诊断界面示例 首先进入初诊界面,根据病人的具体情况,从症状表中选择病人最典型的两种症状,单击诊断按钮,即可进行初诊。界面如图 1 所示。图 1 初诊界面 Figure 1 综上所述,本中医辅助诊断模块采用面向诊断对象的程序设计语言Delphi 7.0 实现,人机界面友好,模块化强,为系统的进一步开发打下良好的基础。在推理机的设计上,采用了基于模糊节约覆盖集理论的推理方法,解决了在症状不完备情况下的诊断问题,并通过人机对话的补充诊断,与原先基于数据库的检索来进行诊断相比较3 ,进一步提高了诊断的准确度。 【参考文献】 1 温继文,李道亮,傅泽田.基于模糊数学的覆盖集模型在鱼病诊断中的应用J.农业网络信息,2005(12):24. 2傅泽田,温继文,张小栓,等.鱼病诊断专家系统中知识表示的研究J.计算机工程与应用,2003(10):60. 3宗仁鹤,胡存刚,谭敏.基于专家数据库的人体信息诊疗仪的研制J.激光生物学报,2003,12(1):63.