第3节 粗糙集理论及其在中医学研究中的应用
20世纪80年代,波兰数学家Pawlak提出了粗糙集(Rough Set)的概念[26,27]。粗糙集理论是一种处理不确定和不精确性问题的新的数学工具,它能够对不完整的信息进行分析、推理、学习和发现,具有很强的知识获取能力。它只依赖资料的内部知识信息,利用信息之间的近似来表示知识的不确定性,因此,粗糙集理论的提出很好地解决了对象不确定性的度量问题。粗糙集的要点是将分类与知识联系在一起,认为知识即是将对象进行分类的能力。
粗糙集理论对于人工智能和认知科学非常重要,而且为机器学习、数据挖掘、知识获取、决策分析和支持系统、模式识别、专家系统、粒度计算、近似推理、控制科学等领域的信息处理提供了一种很有效的理论框架,同时,粗糙集技术方法在医学、金融、气象学、图像处理、语音识别、字符识别等众多方面都有重要的应用。
粗糙集理论与方法是一种在海量信息中“去粗取精、去伪存真”的数据处理方法,它与当前中医理论现代化研究常用的一些算法相比较,具有明显的优势。例如,在中医学研究中,经常采用模糊数学方法,模糊隶属度主要是中医名家的经验值,由于其经验值不仅数值化困难,而且有时中医各家之间认识的差异较大,故而在中医学研究中,模糊数学的应用具有较大的局限性。而粗糙集方法回避了隶属度这个有争议的问题,采用从实践中直接挖掘方证相关度等关联属性,在现实应用中,其研究成果更易于被中医界广泛认可和接受。而且,概率论方法在研究拥有大量数据的问题时,通常有较好的应用前景,但在对问题做具体研究时,往往要将问题转化到某种模态分布上,而像中医方证相关性等方面的问题,迄今尚未找到恰当的模态分布,这就制约了概率论方法在中医研究方面的应用。另外,对于中医临床研究中的大多数半定量的数据,离散度较大,不符合正态分布。因此,采用常用的统计学方法一般难以正确有效地揭示中医临床信息之间的关系。而粗糙集方法是在保持分类能力不变的前提下,通过知识约简,来挖掘知识核,它不需要依赖任何已有的分布。
本节主要介绍粗糙集的基本概念、属性约简、规则提取的基本方法,并结合实例说明其在中医学研究中的实际应用。
一、粗糙集理论的基本概念
粗糙集理论把无法确定的个体归属于边界线区域,而这边界域被定义为上近似集与下近似集之差集。上近似集和下近似集都可以通过等价关系给出确定的数学描述,所以含糊元素的数目可以在不需要给出额外信息的情况下被客观地计算出来[28],其算法和定义如下:
设U是一个论域,R是U上的一个等价关系,U/R表示R在U上导出的所有等价类;[x]R表示包含元素x的R的等价类,x∈R。
一个知识库就是一个关系系统K = (U, R),其中U为非空有限集,称为论域,R是U上的一族等价关系。若P ⊆ R,且P≠Q,则∩P(P中所有等价关系的交集)也是一个等价关系,称为P上的不可区分关系,记为ind(P),并且有。
设K = (U, R)和K' = (U, Q)为两个知识库。若ind(P) = ind(Q),即U/P = U/Q,则称K和K'(P和Q)是等价的,记作K ≌ K' (P≌Q)。
这个概念意味可以用不同的属性集对对象进行描述,以表达关于论域的完全相同的事实。
给定知识库K = (U, R),对于每个子集X ⊆ U和一个等价关系R ∈ ind(K),定义两个子集:
分别称它们为X的R下近似集和R的上近似集;集合bnR(X) = X -X称为X的R边界域;posR(X) =X称为X的R正域;negR(X) = U -X称为X的R负域。
设U为一个论域,P为定义在U上的一个等价关系族,R∈P。如果ind(P - {R}) =ind(P),则称关系R在关系族P中是不必要的(多余的);否则,称关系R在关系族P中是必要的。
不必要的关系在知识库中是多余的。如果把它从知识库中去掉,不会改变该知识库的分类能力。相反,若从知识库中去掉一个必要的关系,则一定会改变知识库的分类能力。
设U为一个论域,P为定义在U上的一个等价关系族,R∈P。如果对于每个关系R∈P在P中都是必要的,则称关系族P是独立的;否则,称P是依赖的。对于依赖关系来说,其中包含多余的关系,可以对其约简;而对于独立的关系族,去掉其中任何一个关系都将破坏知识库的分类能力。
设U为一个论域,P为定义在U上的一个等价关系族。P中所有必要关系组成的集合称为关系族P的核,记作core(P)。
设U为一个论域,P、Q为定义在U上的两个等价关系族,且Q ⊆ P。如果满足:
(1)ind(Q) = ind(P);
(2)Q是独立的;
则称Q是P的一个约简,记作red(P)。如果知识Q是知识P的一个约简,那么U中通过知识P可区分的对象,同样可以用Q来区分。知识约简是粗糙集理论中最重要的概念。
二、属性约简
属性约简是粗糙集理论的重要内容之一。所谓属性约简,就是保持信息系统在分类能力不变的前提下,删除其中冗余属性。特别是,当信息系统中的数据是随机采集时,其冗余更为普遍。一般来说,一个信息系统的属性约简不是唯一的,人们期望找到最少的属性约简,即最小约简。然而,要找到一个信息系统的最小约简是一个NP-hard问题。解决这类问题的一般方法是采用启发式搜索方法求出最优或次最优约简。
粗糙集理论通常采用先求核,然后在核的基础上拓展求得决策表的一个约简,最后依据此约简产生规则的方法,对决策表进行知识发现。
核的定义如下:设U为一个论域,P为定义在U上的一个等价关系族。P中所有必要关系组成的集合称为关系族P的核,记作core(P)。
核之所以重要,是因为它是属性集合中等价关系中最主要的部分,是所有约简共有的。
差别矩阵是一种有效的核求取的方法,元素的定义如下:
差别矩阵中单个特征元素的析取即为核,即 core(C) = {a∈C |mij = {a}|}。
下面引入信息系统中的几个概念。
设S = (U, A, V, f )是一个信息系统,a∈A,如果ind(A - {a}) = ind(A),则称属性a在A中是不必要的(多余的);否则,称a在A中是必要的。不必要的属性在信息系统中是多余的,如果将它从信息系统中去掉,不会改变该信息系统的分类能力;相反,若从信息系统中去掉一个必要的属性,则一定改变该信息系统的分类能力。
设S = (U, A, V, f )是一个信息系统,如果每个属性a∈A在A中都是必要的,则称属性集A是独立的;否则,称A是依赖的。
对于依赖的属性集来说,其中包含有多余属性,可以对其进行约简。
设S = (U, A, V, f )是一个信息系统,A中所有必要的属性组成的集合称为属性集合,称为属性集A的核,记作core(A)。
设S = (U, A, V, f )是一个信息系统,P ⊆ A,如果:
(1)ind(P) = ind(A),
(2)P是独立,
则称P是A的一个约简。可以证明核是所有约简的交集。
三、粗糙集属性约简方法在中医诊断学研究中的应用
目前,关于证候客观化的研究已经取得了一定的成绩,但仍有一些没有解决的难题,制约了证候客观化的研究发展。究其根本原因在于医者的主观因素和患者症状的不确定性造成辨证结果的相对不统一。这个问题长久困扰着中医临床研究,给中医学发展带来了巨大的困难。另外,中医证候信息的多模式特性是它区分于其他领域数据的最显著特征,这种多属性模式并存加大了中医数据挖掘的难度。许多证候信息的表达本身就具有不确定性和模糊性的特点,证候信息所体现出的客观不完整和描述疾病的主观不确切,形成了中医证候信息的复杂性。粗糙集理论将会有力地克服中医临床研究中大量资料浩繁重叠的问题,回避了人为因素介入的较大影响,使中医研究更为客观。
我们的研究主要将粗糙集理论与支持向量机方法进行结合,探讨中医辨证的数据挖掘分类方法。首先,将粗糙集属性约简方法应用于临床症状、体征的特征选择,从原始临床数据中提取出最能够反映所研究的证型本质信息,即在保证不丢失中医诊断知识库中有效信息的前提下,消除知识库中的冗余基本范畴。因此,采用粗糙集方法就能够从大量临床证候信息找出对辨证起主要作用的指标。然后,采用支持向量机技术进行证候学习和判定,以此建立中医辨证诊断系统[28]。
本研究也采用基于信息熵的中医临床证候研究的临床资料,我们已经知道其中记录肝炎后肝硬化患者的中医诊断证型依次为:肝肾阴虚、肝郁脾虚、脾肾阳虚、气虚血瘀、湿热内蕴、瘀热蕴结6种证型。由于脾肾阳虚和气虚血瘀证在本研究资料中的例数相对比较少,为便于提高研究的准确性和方法说明,本文主要针对肝肾阴虚、肝郁脾虚、湿热内蕴、瘀热蕴结4种证型进行计算和分析。其中,各种症状、体征在这4种证型下的概率分布,如表2-4所示。
我们针对4种证型分别建立信息决策表,利用粗糙集方法提取与该证型有关的症状、体征信息。表2-10中,决策属性为64种临床症状、体征的量化值0~3或0~1,决策量为1时表示该患者属于此种证型,0则为非此种证型。
另外,我们采用多类属性直接约简研究,即将4种证型:肝肾阴虚、肝郁脾虚、湿热内蕴、瘀热蕴结作为决策变量,依次记为1、2、3、4,如表2-11所示。
完成属性约简后,采用支持向量机进行学习和测试。
通过计算,得到的4种证型以及综合分类所对应的核心症状、体征指标被分为“联合指标”和“综合指标”。
是将肝肾阴虚、肝郁脾虚、湿热内蕴和瘀热内蕴4种证型属性分别约简后的指标进行合并,得到的一组指标,即:神疲乏力、急躁易怒、五心烦热、皮肤痒、多梦寐差、视物模糊、口干苦、脘胀腹胀、便溏、肢体困重、腰膝酸软、胁胀痛、身黄、尿黄、面色晦暗、嗳气、舌色红、舌色淡红、苔薄黄腻。
是采用粗糙集方法直接对信息决策表进行约简后得到的一组指标,即:神疲乏力、畏寒肢冷、五心烦热、多梦寐差、口干苦、脘胀腹胀、便溏、齿龈衄、腰膝酸软、尿黄、面色晦暗。
根据不同信息决策表构建的方法和粗糙集属性约简后所提取的各个证型所对应的症状、体征,可以随机选取支持向量机的训练样本,比较两种属性约简的处理方法是否对于支持向量机的分类正确率有所不同。
原始研究资料中所包含的样本只有不到300例,而经过数据整理去除缺失以及数据预处理后为252例,因此,我们把没有参加训练的余下约20%样本加上随机再取总体20%左右的样本作为测试样本。另外,为了得到更加可靠的分类结果,我们对每个组合都进行3次训练,取3次训练的平均值得到支持向量机辨证结果(表2-12)。
从研究结果来看,采用联合指标的分类效果最好,但没有经过属性约简直接分类正确率反而要比综合指标要高。因此,我们可以认为采取将每个证候属性约简后对应的核指标取并集的方法可以得到更加可靠的中医辨证结果。如果在粗糙集属性约简上处理方式不适当,在某些情况下对于辨证分类未必是有利的。
四、信息熵与灰色系统及粗糙集理论在脉象关联量化分析中的综合应用
最后,我们综合上述所介绍的信息熵理论、灰色系统理论和粗糙集理论的有关方法,探讨了中医证候之间关系的定量问题。
目前,在中医学临床诊断中大部分诊断方法都是中医专家根据多年积累起来的实践经验进行判断的,所以说,如何根据已有的临床数据从定性与定量相互结合的角度来分析症状、体征之间是否存在较大关联及其密切程度并做出相应的评价,对于进一步认识和研究中医临床信息都是有实际意义的。本节我们依然以脉象作为主要研究中医临床信息的对象,进行分析和说明。
我们的基本研究思路是:首先从大量的临床信息中找出并保留与脉象变化关系比较大的症状或体征,适当去掉那些相对比较次要的信息,然后再做进一步分析;在评价过程中又要尽量避免对已有数据信息的损失以准确反映证候之间的非线性特点。
因此,本研究尝试利用粗糙集方法找出与脉象变化最为密切的症状,并结合基于信息熵的改进灰色关联方法提出一种分析与评价方法,旨在为中医诊断学的研究提供一些参考。
本研究采用中医证候与季节关联性分析的871例慢性乙型肝炎数据。其中,记录到的中医脉象变化有3种基本表现,即:脉沉、脉数、脉滑;同样也存在“混合型”的情况,分别为:脉数+脉滑、脉沉+脉数、脉沉+脉滑以及脉沉+脉数+脉滑;因此,在实际临床中共有7种不同的表现。以头痛、肢体困重、关节疼痛等与中医五脏系统有关的73个临床症状、体征作为约简属性,以7种脉象为决策量,建立决策表,然后利用粗糙集方法进行计算,其中脉沉、脉数、脉滑、脉数+脉滑、脉沉+脉数、脉沉+脉滑、脉沉+脉数+脉滑依次赋予1、2、3、4、5、6、7作为决策属性值,以0表示没有脉象,信息决策表如表2-13所示。
上节介绍灰色系统理论可知,灰色关联分析的基本思想是根据序列曲线几何形状的相似程度来判断比较序列与参考序列的关系是否紧密,曲线越接近,其联系就越紧密,并通过关联度计算找出影响目标值的主要因素,对多种因素的影响做出评价。
但是,传统的灰色关联方法的共同特点是在确定关联度时都采用计算逐点关联测度值平均值的办法得到的,这样就必然带来两个缺点:①局部点的关联倾向;②造成信息损失,没有能够充分利用由点关联测度值提供的丰富信息,基于这些原因将信息熵引入灰色关联分析[29]克服了传统方法的不足,其计算方法如(3.1)与(3.2)所示:
其中,pi为分布密度值,H(pi)为灰色关联熵;最后可以根据灰色关联熵大小进行排序。
另外,在进行关联评价前,首先需要建立评价序列和参考序列。我们还是按照发病患者的不同时间段分为6组建立序列。例如:对于“头痛”症状,则可以写为X = (1, 4, 2, 2, 1, 2)以表示6个不同时间段中出现该种症状的人数,依次建立对应证候的评价序列,参考序列为所要研究的各种脉象(表2-14)。
通过信息决策表,采用粗糙集属性约简得到:在头痛、头重、头晕、眼花、目赤、目干、耳鸣、鼻出血、口苦、太息、失眠、呵欠、嗳气、自汗、腹痛、吞酸等73个症状、体征中与慢性乙型肝炎的7种脉象的变化最为密切的有:头痛、眼花、眼皮重、视物疲劳、目赤、目干、耳鸣、口干、口苦、口淡、口渴、口臭、牙龈出血、咽喉肿痛、太息、呵欠、失眠、多梦、健忘、腹胀、胃脘痛、吞酸、倦怠乏力、胁肋疼痛、烦躁易怒、腰痛、腰酸、膝软、面色萎黄、面色无华总共30个临床中医症状、体征。
针对粗糙集方法的计算结果,给出了其中4种比较常见脉象与症状、体征的关联评价结果,另外3种脉象在临床上都较为少见,其出现频率均小于2.0%,故本文也不作讨论。以脉滑为例进行分析和说明。首先,以脉滑为参考序列,其他30种症状、体征作为比较序列;然后,由灰色关联公式(1)计算可以得到关联矩阵R;再根据关联矩阵计算各个比较序列的分布密度值pi;最后,得到各个比较序列的灰色关联熵H(pi),如表2-14所示。
根据计算后的关联熵值大小就可以得到慢性乙肝中医脉滑关联性的排序,在此,我们给出前10种症状、体征依次是:倦怠乏力、口干、口苦、腰酸、胁肋疼痛、腹胀、失眠、眼皮重等;而与膝软、目干、耳鸣的关联性相对最小。利用相同处理方法同样可以得到另外3种脉象的关联评价。慢性乙肝中医脉数关联性最大的前10种症状、体征排序依次是:失眠、目干、健忘、视物疲劳、腰痛、腰酸、多梦、头痛、吞酸、口淡、口干等;而与面色无华、牙龈出血的关联性相对最小。慢性乙肝中医脉沉关联性最大的前10种症状、体征排序依次是倦怠乏力、胁肋疼痛、烦躁易怒、腰酸、面色萎黄、呵欠、耳鸣、健忘、视物疲劳、太息;而与多梦、膝软、口淡的关联性相对为最小。脉滑+脉数关联性最大的前10种症状、体征排序依次是:面色萎黄、牙龈出血、视物疲劳、吞酸、胁肋疼痛、耳鸣、呵欠、腰酸、面色无华、头痛等;而与目赤、目干、口淡的关联性相对为最小。
从研究分析结果来看,脉象不同时,所对应的症状属性的排序也有着明显的区别。例如,多梦在脉数的关联评价中属于较重要的症状,而在脉沉中则相对次要;耳鸣在脉沉和脉滑+脉数均关联程度较高,而与脉滑则较小;尤其需要注意,当脉滑出现并伴随脉数时,症状的关联排序也发生了变化,原来症状、体征的主次关联性发生了明显的变化。
另外,从计算所得到的关联熵数值结果来看,关联熵值都集中在0.96~1.0之间,说明粗糙集属性所提取的症状、体征都是与脉象变化最为密切的中医指标,可以说粗糙集属性提取是比较有效的。
采用粗糙集与灰色系统理论相结合的方法对中医脉象变化与其他证候之间关联性进行研究,可以有效地分析慢性乙型肝炎中医脉象、症状及体征之间的内在联系及其大小。同时,在关联评价中引入信息熵的改进方法,可以保留症状及体征之间的非线性的相关信息,能够克服一般数理统计方法中不足之处,如要求有大量数据,否则就难以找出统计规律等,使对脉象的分析更加准确可靠,该研究思路与方法同样也用于中医其他临床的研究中,如舌象的各种变化等。
目前,国内外应用粗糙集进行中医学相关的研究工作还处于起步时期,较多的还处于理论探讨阶段。张跃宏等[30]运用粗糙集理论及广义关联度系数方法,对287例肝炎后肝硬化的症状、体征进行了属性选择,并利用树增广的朴素贝叶斯分类算法,构建了肝炎后肝硬化中医证候分类模型,对肝炎后肝硬化的6种主要证候分类的符合率达83%。孟庆全等[29]运用粗糙集理论中的部分依赖性原理,计算了胃病病例辨证分型对不同症状的依赖度,分析了症状与辨证分型之间的关系。为提高计算结果的可靠性,进一步计算了辨证分型对任意两种症状共同的依赖度。两种计算结果相吻合,得出的结论与胃病专家咨询一致。吴昊等[31]利用粗糙集理论对临床病历建立知识表达系统,对知识表达系统进行属性约简,求出属性核,建立最小简化表,并且得出有关中医诊断的几个相应规则。晏峻峰等[32]利用粗糙集,对中医诊断证素推理规则的获取、症状辨证素的量表制定等证素辨证研究的关键问题做了一些探索性研究工作。王相东[33]提出基于粗糙集的证候规范化研究思路。云炜等[34]在现有病例集上建立知识表达系统并进行约简,求出属性核及相关支持度,进而揭示方证的相关性。
本节提出的支持向量机技术是一种新的机器学习分类方法,它比传统方法,如神经网络,有更好的分类特性,尤其是当样本含量比较小时,它的性能要优于一般的神经网络。
采用粗糙集与灰色系统理论相结合的方法,并引入信息熵的改进方法对中医脉象变化与其他症状、体征之间关联进行了分析与评价,克服了一般数理统计方法中对非线性的相关信息难以分析的不足,获得了脉数、脉沉和脉滑数3种脉象的相关证候。
中医辨证施治是一个非线性、高维、高阶的可以无限组合的复杂系统,无法用一般的线性方法来处理。特别是在制定望、闻、问、切四诊等资料的收集标准时,要坚持循证医学的基本原则,并考虑辨证论治的基本特点和证候动态性特点,病证结合,紧密结合疾病的主要结局指标,要以临床疗效为评判标准,以确保原始数据的真实和可靠性。