粗糙集理论在肝病辅助诊断中应用

2014-11-04 02:18韩玲
电脑知识与技术 2014年28期
关键词:粗糙集

韩玲

摘要:粗糙集理论主要研究由论域和属性集构成的知识表达系统。医疗诊断中,大量病例、疾病症状和疾病诊断结果构成了一个医学信息决策系统。通过决策属性对条件属性依赖度和重要性分析,发现诊断结果与临床症状之间的关系,提取医学决策规则。实验表明,粗糙集用于肝病辅助诊断方法是正确可行的。

关键词:粗糙集; 肝病诊断;属性重要性;属性依赖度

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)28-6591-02

“大数据”时代,海量的数据中蕴藏着具有决策意义的信息,数据挖掘技术能够从大量的、不完全的、有噪声的、模糊的数据中发现隐含的、未知的、具有潜在价值的信息和知识[1]。在众多数据挖掘技术中,粗糙集理论和方法在处理不精确、不确定、不完整数据时,无须提供问题所需要处理的数据之外的任何先验信息,从中挖发现隐含知识,揭示潜在的规律。目前,它已被广泛应用于人工智能、模式识别、智能信息处理的领域,并取得了丰硕成果。

病毒性肝炎、脂肪肝、酒精肝、肝硬化、肝癌等肝病是威胁人类健康的主要疾病之一。当前,我国有慢性无症状乙肝病毒携带者约1.2亿,慢性乙肝病人约3000万,丙肝感染者约1000万。研究表明,全球80%的原发性肝癌都是由病毒性肝炎引起的。如何有效控制肝脏疾病,预防肝硬化、肝癌的发生,是当前肝病防治领域所面临的重大挑战。

临床医学诊断中,症状数据是疾病诊断的主要依据。根据医学信息数据库中大量诊断病例,以疾病诊断结果作为决策属性,以疾病症状数据为条件属性,发现医学诊断规则和模式,可以辅助临床医学诊断,提高临床诊断的准确性。

1 粗糙集理论

定义1 信息系统 S=(U,A,V,f),U为非空有限集合,称为论域;A为非空有限的属性集合;V为属性值域,V=∪{Va|a∈A};f为U×A→V上的一个信息函数,表示?a∈A,x∈U,f(x,a)∈Va。如果A=C∪D,且C∩D=φ,C为条件属性集,D为决策属性集,信息系统也称为决策系统[2]。

定义2 正域 S=(U,A,V,f),X?U,R?A,属性集R的等价类Ri=[X]R,则X的R下近似R*(X)和正域POSR(X)定义为:

R*(X)=∪{Ri| Ri∈U/R且Ri?X)}

POSR(X)= R*(X)

决策系统S=(U, C∪DA,V,f),决策属性D在条件属性C下的正域定义为:

POSC(D)=∪{C*(Xi)| Xi∈U/D}

POSC(D)表明根据C进行的划分U/C,能够确切划入U/D中元素的集合。

定义3 属性依赖度 决策属性D对条件属性子集P?C的依赖度定义为:

k=?P(D)=|POSP(D)|/|U|

|·|表示集合中元素的个数。k=1,表示根据条件属性P集,可以对U中所有数据准确分类;0

定义4信息熵 决策系统S=(U, C∪D,V,f),U/C={X1, X2,...,Xm},U/D={Y1, Y2,...,Yn},则条件属性集C的信息熵H(C)和决策属性集D的信息熵H(D)以及D相对于C的条件信息熵H(D|C)分别定义为:

[H(C)=-i=1mp(Xi)log(p(Xi))]

[H(D)=-j=1np(Yj)log(p(Yj))]

[H(D|C)=-i=1mp(Xi)j=1np(Yj|Xi)log(p(Yj|Xi))]

其中p(Xi)=| Xi|/|U|,p(Yj)=| Yj|/|U|,p(Yj|Xi)=| Yj∩Xi|/| Xi|。

文[3]给出 H(D|C)=H(D∪C) - H(C)

定义5 属性重要性

依据依赖度的变化定义:S=(U, C∪D,V,f),?c∈C的重要性定义为:

SFG(c,C-{c},D)= ?C(D)-?C-{c}(D)

依据信息熵定义:SFG(c,C-{c},D)=H(D|C-{c}) - H(D|C)

决策系统即决策表中每一行都对应一条决策规则,如何得到约简的决策规则集是研究的目的。决策规则的约简是通过属性和属性值约简实现的,消去C中不重要的属性和冗余的属性值,简化决策规则。

2 粗糙集在医学决策表中应用

(c9) 正常、乏力;是否乙肝(d) 是、否。

随机从表1中抽取200条记录构成论域U,|U|=200,条件属性集C={c1,c2,c3, c4,c5,c6,c7,c8,c9},决策属性集D={d}。另外20条记录构成测试样本集V。

用结构化查询语言SQL的select语句计算属性的重要性和依赖度。

计算条件属性c1的重要性:SFG(c1,C-{c1},D)=H(D|C-{c1}) - H(D|C)

先计算H(D|C-{c1}),H(D|C-{c1})= H(D∪C-{c1}) - H(C-{c1}) ,

计算H(D∪C-{c1})的select语句:

select count(*)/200 as ct_D_C_c1 into b_D_C_c1 from table1 group by c2,c3,c4,c5,c6,c7,c8,c9,d

sele -sum( ct_D_C_c1*log(ct_D_C_c1)/log(2)) as h_D_C_c1 from b_D_C_c1

计算H(C-{c1})的select语句:

select count(*)/200 as ct_C_c1 into b_C_c1 from table1 group by c2,c3,c4,c5,c6,c7,c8,c9

sele -sum( ct_C_c1*log(ct_C_c1)/log(2)) as h_C_c1 from b_C_c1

H(D|C-{c1})= H(D∪C-{c1}) - H(C-{c1})= h_D_C_c1- h_C_c1=3.78432571-3.78432571=0

可以计算得H(D|C)=4.80692786-4.80692786=0,所以c1的重要性 SFG(c1,C-{c1},D)=0

同理计算其他条件属性重要性是SFG(c2,C-{c2},D)= 4.12986130- 4.12986130=0,

SFG(c3,C-{c3},D)= 4.25023138- 4.25023138=0,SFG(c4,C-{c4},D)= 4.80692786- 4.80692786=0,

SFG(c5,C-{c5},D)= 4.72417625- 4.72417625=0,SFG(c6,C-{c6},D)= 4.53986564- 4.53986564=0,

SFG(c7,C-{c7},D)= 4.80692786- 4.80692786=0, SFG(c8,C-{c8},D)= 4.80692786- 4.80692786=0,

SFG(c9,C-{c9},D)= 4.27875936- 4.27875936=0

计算结果表明所有条件属性的重要性都是0,无法依据条件属性的重要性确定决策属性值。下面根据属性依赖度分析各因素影响乙肝发病的程度。

首先计算D对c1的依赖度 k c1=?{c1}(D)=|POS{c1}(D)|/|U|。计算|POS{c1}(D)|、k c1的select语句分别为:

select count(*) as ct_c1 into b_c1 from table1 group by c1 having count(distinct d)=1

select sum(ct_c1)/200 as kc1 from b_c1

计算出k c1=0,同样可以计算得k c2=0.4682,k c3=0.0045,k c4=1,k c5=0.1727,k c6=0,k c7=1,k c8=1,k c9=0。

k c4=k c7=k c8=1,说明根据是否带抗体、大三阳、转氨酶三者中任何一项的值可以确定是否患乙肝;饮食是否油腻对是否患乙肝有较大影响;经常喝酒对是否患乙肝有一定影响;抽烟的影响力较小;而劳累度、小三阳、体力近况因素对是否患乙肝没有影响。从V中随机抽取样本,根据是否带抗体、大三阳、转氨酶三者中任何一项的值都可以确定是否患有乙肝。

3 结论

本文在“乙肝影响因素调查数据表”研究中,通过决策属性对条件属性的依赖度和重要性的分析,找出确诊疾病的关键症状。根据是否带抗体、大三阳、转氨酶任何一项可以确诊是否患乙肝疾病,另外饮食、饮酒和抽烟也对肝脏的健康状况产生影响。

属性的重要性是属性约简重要依据,由于文本实验数据的特性,c4、c7、c8的重要性都是0,但决策属性对它们的依赖度都是1,根据三者中任何一个属性的值都可以得到决策结果。要得到科学、正确、合理的实验结果,应对大量的数据采用多种不同的实验方法,然后对各结果综合分析,取得最终可信结果。

参考文献:

[1] 胡寿松,何亚群.粗糙决策理论与应用[M].北京:北京航空航天大学出版社,2006.

[2] 王国胤,安久江,吴渝.Rough集理论代数观与信息观的差异量化分析[J].小型微型计算机系统,2005:26(7):1187-1189.

[3] 王国胤,于洪.基于条件信息熵的决策表约简[J].计算机学报,2002,25(7):759-765.

[4] 周怡.医学信息决策与支持系统[M].北京:人民卫生出版社,2009.

select count(*)/200 as ct_C_c1 into b_C_c1 from table1 group by c2,c3,c4,c5,c6,c7,c8,c9

sele -sum( ct_C_c1*log(ct_C_c1)/log(2)) as h_C_c1 from b_C_c1

H(D|C-{c1})= H(D∪C-{c1}) - H(C-{c1})= h_D_C_c1- h_C_c1=3.78432571-3.78432571=0

可以计算得H(D|C)=4.80692786-4.80692786=0,所以c1的重要性 SFG(c1,C-{c1},D)=0

同理计算其他条件属性重要性是SFG(c2,C-{c2},D)= 4.12986130- 4.12986130=0,

SFG(c3,C-{c3},D)= 4.25023138- 4.25023138=0,SFG(c4,C-{c4},D)= 4.80692786- 4.80692786=0,

SFG(c5,C-{c5},D)= 4.72417625- 4.72417625=0,SFG(c6,C-{c6},D)= 4.53986564- 4.53986564=0,

SFG(c7,C-{c7},D)= 4.80692786- 4.80692786=0, SFG(c8,C-{c8},D)= 4.80692786- 4.80692786=0,

SFG(c9,C-{c9},D)= 4.27875936- 4.27875936=0

计算结果表明所有条件属性的重要性都是0,无法依据条件属性的重要性确定决策属性值。下面根据属性依赖度分析各因素影响乙肝发病的程度。

首先计算D对c1的依赖度 k c1=?{c1}(D)=|POS{c1}(D)|/|U|。计算|POS{c1}(D)|、k c1的select语句分别为:

select count(*) as ct_c1 into b_c1 from table1 group by c1 having count(distinct d)=1

select sum(ct_c1)/200 as kc1 from b_c1

计算出k c1=0,同样可以计算得k c2=0.4682,k c3=0.0045,k c4=1,k c5=0.1727,k c6=0,k c7=1,k c8=1,k c9=0。

k c4=k c7=k c8=1,说明根据是否带抗体、大三阳、转氨酶三者中任何一项的值可以确定是否患乙肝;饮食是否油腻对是否患乙肝有较大影响;经常喝酒对是否患乙肝有一定影响;抽烟的影响力较小;而劳累度、小三阳、体力近况因素对是否患乙肝没有影响。从V中随机抽取样本,根据是否带抗体、大三阳、转氨酶三者中任何一项的值都可以确定是否患有乙肝。

3 结论

本文在“乙肝影响因素调查数据表”研究中,通过决策属性对条件属性的依赖度和重要性的分析,找出确诊疾病的关键症状。根据是否带抗体、大三阳、转氨酶任何一项可以确诊是否患乙肝疾病,另外饮食、饮酒和抽烟也对肝脏的健康状况产生影响。

属性的重要性是属性约简重要依据,由于文本实验数据的特性,c4、c7、c8的重要性都是0,但决策属性对它们的依赖度都是1,根据三者中任何一个属性的值都可以得到决策结果。要得到科学、正确、合理的实验结果,应对大量的数据采用多种不同的实验方法,然后对各结果综合分析,取得最终可信结果。

参考文献:

[1] 胡寿松,何亚群.粗糙决策理论与应用[M].北京:北京航空航天大学出版社,2006.

[2] 王国胤,安久江,吴渝.Rough集理论代数观与信息观的差异量化分析[J].小型微型计算机系统,2005:26(7):1187-1189.

[3] 王国胤,于洪.基于条件信息熵的决策表约简[J].计算机学报,2002,25(7):759-765.

[4] 周怡.医学信息决策与支持系统[M].北京:人民卫生出版社,2009.

select count(*)/200 as ct_C_c1 into b_C_c1 from table1 group by c2,c3,c4,c5,c6,c7,c8,c9

sele -sum( ct_C_c1*log(ct_C_c1)/log(2)) as h_C_c1 from b_C_c1

H(D|C-{c1})= H(D∪C-{c1}) - H(C-{c1})= h_D_C_c1- h_C_c1=3.78432571-3.78432571=0

可以计算得H(D|C)=4.80692786-4.80692786=0,所以c1的重要性 SFG(c1,C-{c1},D)=0

同理计算其他条件属性重要性是SFG(c2,C-{c2},D)= 4.12986130- 4.12986130=0,

SFG(c3,C-{c3},D)= 4.25023138- 4.25023138=0,SFG(c4,C-{c4},D)= 4.80692786- 4.80692786=0,

SFG(c5,C-{c5},D)= 4.72417625- 4.72417625=0,SFG(c6,C-{c6},D)= 4.53986564- 4.53986564=0,

SFG(c7,C-{c7},D)= 4.80692786- 4.80692786=0, SFG(c8,C-{c8},D)= 4.80692786- 4.80692786=0,

SFG(c9,C-{c9},D)= 4.27875936- 4.27875936=0

计算结果表明所有条件属性的重要性都是0,无法依据条件属性的重要性确定决策属性值。下面根据属性依赖度分析各因素影响乙肝发病的程度。

首先计算D对c1的依赖度 k c1=?{c1}(D)=|POS{c1}(D)|/|U|。计算|POS{c1}(D)|、k c1的select语句分别为:

select count(*) as ct_c1 into b_c1 from table1 group by c1 having count(distinct d)=1

select sum(ct_c1)/200 as kc1 from b_c1

计算出k c1=0,同样可以计算得k c2=0.4682,k c3=0.0045,k c4=1,k c5=0.1727,k c6=0,k c7=1,k c8=1,k c9=0。

k c4=k c7=k c8=1,说明根据是否带抗体、大三阳、转氨酶三者中任何一项的值可以确定是否患乙肝;饮食是否油腻对是否患乙肝有较大影响;经常喝酒对是否患乙肝有一定影响;抽烟的影响力较小;而劳累度、小三阳、体力近况因素对是否患乙肝没有影响。从V中随机抽取样本,根据是否带抗体、大三阳、转氨酶三者中任何一项的值都可以确定是否患有乙肝。

3 结论

本文在“乙肝影响因素调查数据表”研究中,通过决策属性对条件属性的依赖度和重要性的分析,找出确诊疾病的关键症状。根据是否带抗体、大三阳、转氨酶任何一项可以确诊是否患乙肝疾病,另外饮食、饮酒和抽烟也对肝脏的健康状况产生影响。

属性的重要性是属性约简重要依据,由于文本实验数据的特性,c4、c7、c8的重要性都是0,但决策属性对它们的依赖度都是1,根据三者中任何一个属性的值都可以得到决策结果。要得到科学、正确、合理的实验结果,应对大量的数据采用多种不同的实验方法,然后对各结果综合分析,取得最终可信结果。

参考文献:

[1] 胡寿松,何亚群.粗糙决策理论与应用[M].北京:北京航空航天大学出版社,2006.

[2] 王国胤,安久江,吴渝.Rough集理论代数观与信息观的差异量化分析[J].小型微型计算机系统,2005:26(7):1187-1189.

[3] 王国胤,于洪.基于条件信息熵的决策表约简[J].计算机学报,2002,25(7):759-765.

[4] 周怡.医学信息决策与支持系统[M].北京:人民卫生出版社,2009.

猜你喜欢
粗糙集
粗糙集与包络分析下舰船运行数据聚类算法
局部多粒度覆盖粗糙集
基于Pawlak粗糙集模型的集合运算关系
基于二进制链表的粗糙集属性约简
基于粗糙集的不完备信息系统增量式属性约简
优势直觉模糊粗糙集决策方法及其应用
基于键树的粗糙集属性约简算法
悲观的多覆盖模糊粗糙集
多粒化粗糙集性质的几个充分条件
双论域粗糙集在故障诊断中的应用