本发明涉及一种基于Apriori的病症数据关联方法,属于数据挖掘推荐技术领域。
背景技术:
当前,现代医疗技术已取得巨大进步。然而,各种病症的关联与名称复杂度也为医生的病症诊断、编辑结果造成了一定干扰和影响。
Apriori算法是一种挖掘关联规则的频繁项集算法,其核心思想是通过候选集生成和情节的向下封闭检测两个阶段来挖掘频繁项集。而且算法已经被广泛的应用到商业、网络安全等各个领域,但还没有应用到医学领域。
技术实现要素:
本发明要解决的技术问题是一种基于Apriori的病症数据关联方法,将Apriori算法应用到病症诊断中作为优化编辑作用,提高医生开处方时对症状编辑的准确性与高效性。
本发明的技术方案是:一种基于Apriori的病症数据关联方法,包括如下步骤:
Step1、建立病症关键词数据库;
Step2、通过所建病症关键词数据库中的关键词对药品的适用症状文本进行分词处理,并提取出适用症状的病症关键词;
Step3、引入Apriori算法,所有药品的集合为D,每个病症关键词作为候选1项集c1,第i个候选1项集记为c1(i),其集合为C1,设置一个最小支持度阈值min_sup,当c1的支持度计数support_count(c1)大于等于min_sup时,则c1成为频繁1项集l1,所有l1的集合为L1,通过将L1与自身相连接产生候选2项集c2,所有c2的集合为C2,如果C2中第i个候选2项集c2(i)的某个子集为第x个候选1项集c1(x),且它不是L1的元素时,则将c2(i)从C2中删除;满足min_sup的c2作为频繁2项集l2,其集合为L2;依次循环类推,得到不同频繁项集l2、l3、……lk-1、lk的集合L2、L3……Lk-1、Lk,其中lk-1、lk分别代表频繁k-1项集和频繁k项集,Lk-1、Lk则为它们各自的集合;
Step4、设置一个最小置信度阈值min_conf;每个频繁项集l所产生的每个非空子集为s,若子集(l-s)与s的支持度计数之比大于等于最小置信度阈值min_conf,则输出强关联规则该强规则的置信度大小为l与s的支持度计数之比的值
Step5、将所计算出来的所有强关联规则按照其置信度confidence的大小进行排序,当输入一个病症时,通过关联规则得出与该病症相关联的其他病症。
具体地,所述步骤Step1中,病症数据库具有所有症状关键词,且为短文本的集合。
具体地,所述步骤Step2是从药品适用症状文本中提取出Step1建立的数据库所拥有的病症关键词汇。
具体地,所述步骤Step3中,为得到频繁k项集的集合Lk,通过将频繁k-1项集的集合Lk-1与自身相连接产生候选k项集集合Ck。
具体地,所述步骤Step4中所述的关联规则置信度大小的计算公式如公式(1)所示:
其中:
式(1)和(2)中,min_conf为最小置信度阈值;l为频繁项集,l所产生的每个非空子集为s;support_count(l)、support_count(s)、support_count(l-s)分别为括号内字母的支持度计数,为强关联规则。
本发明的有益效果是:本发明先建立一个病症关键词的数据库;然后通过已建立的病症关键词数据库,用常规的分词程序对药品的适用症状文本进行分词处理,并提取出适用症状的关键词。每个关键词作为一个候选1项集,引入Apriori算法计算出不同项数的频繁项集;其次,由各频繁项集产生相应的强关联规则,并计算出各强关联规则的置信度大小;最后,通过各强关联规则的置信度大小,将这些频繁项集进行推荐排序。本发明与现有技术相比,主要提供了Apriori算法对病症诊断编辑起到优化作用,提高医生开处方时对症状编辑的准确性与高效性。
附图说明
图1是本发明总流程图;
图2是本发明步骤Step2详细流程图;
图3是本发明步骤Step3详细流程图;
图4是本发明具体实施方式中所举例子Step3的计算频繁项集流程图。
具体实施方式
下面结合附图和具体实施例,对本发明作进一步的说明。
实施例1:如图1-4所示,一种基于Apriori的病症数据关联方法,包括如下步骤:
Step1、建立病症关键词数据库;
Step2、通过所建病症关键词数据库中的关键词对药品的适用症状文本进行分词处理,并提取出适用症状的病症关键词;
Step3、引入Apriori算法,所有药品的集合为D,每个病症关键词作为候选1项集c1,第i个候选1项集记为c1(i),其集合为C1,设置一个最小支持度阈值min_sup,当c1的支持度计数support_count(c1)大于等于min_sup时,则c1成为频繁1项集l1,所有l1的集合为L1,通过将L1与自身相连接产生候选2项集c2,所有c2的集合为C2,如果C2中第i个候选2项集c2(i)的某个子集为第x个候选1项集c1(x),且它不是L1的元素时,则将c2(i)从C2中删除;满足min_sup的c2作为频繁2项集l2,其集合为L2;依次循环类推,得到不同频繁项集l2、l3、……lk-1、lk的集合L2、L3……Lk-1、Lk,其中lk-1、lk分别代表频繁k-1项集和频繁k项集,Lk-1、Lk则为它们各自的集合;
Step4、设置一个最小置信度阈值min_conf;每个频繁项集l所产生的每个非空子集为s,若子集(l-s)与s的支持度计数之比大于等于最小置信度阈值min_conf,则输出强关联规则该强规则的置信度大小为l与s的支持度计数之比的值
Step5、将所计算出来的所有强关联规则按照其置信度confidence的大小进行排序,当输入一个病症时,通过关联规则得出与该病症相关联的其他病症。
进一步地,所述步骤Step1中,病症数据库具有所有症状关键词,且为短文本的集合。
进一步地,所述步骤Step2是从药品适用症状文本中提取出Step1建立的数据库所拥有的病症关键词汇。
进一步地,所述步骤Step3中,为得到频繁k项集的集合Lk,通过将频繁k-1项集的集合Lk-1与自身相连接产生候选k项集的集合Ck。此处为方便说明,假设k=3,且L2含有两个频繁2项集l1、l2,其中l1={I1,I2}、l2={I3,I4},则L2的自连接即l1与l2连接的结果项集为
进一步地,所述步骤Step4中,关联规则置信度大小的计算公式如公式(1)所示:
其中:
式中,min_conf为最小置信度阈值;l为频繁项集,l所产生的每个非空子集为s;support_count(l)、support_count(s)、support_count(l-s)分别为括号内字母的支持度计数,为强关联规则。
进一步地,所述步骤Step5中的推荐方式,假设有如下几个强关联规则且其置信度已给出:
当医生输入病症I1时,系统则按前后顺序依次推荐出{I3,I5}、{I2,I3}的病症选项;当医生输入病症{I1,I2}时,系统则按前后顺序依次推荐出I4、I3的病症选项。
举例说明:下面结合举例的例子,详细说明本发明的方案:
一种基于Apriori的病症数据关联方法,所述方法的具体步骤如下:
Step1、建立病症关键词数据库;具体地:
暂定所建数据库中有如下病症关键词:发烧、头痛、打喷嚏、风寒、鼻塞、四肢无力、皮肤炎、湿疹、喷嚏、流涕、鼻痒、咳嗽、口干、咽痛、慢性支气管炎、肺炎、慢性阻塞性肺气肿、高血压、冠心病、急性脑血管病、心力衰竭、心律失常、风湿性心脏病、消化性溃疡、肝硬化、慢性胃炎……
Step2、通过所建病症关键词数据库中的关键词对药品的适用症状文本进行分词处理,并提取出适用症状的病症关键词;具体地:
“复方感冒灵颗粒”的病症关键词:感冒、发热、风寒、口干;“感康”的病症关键词:感冒、发热、流涕;“双黄连口服液”的病症关键词:感冒、发热;“新康泰克”的病症关键词:鼻塞、流涕;“桑菊感冒片”的病症关键词:咳嗽、口干、流涕、发热;“抗病毒颗粒”的病症关键词:发热、流涕;“感冒清热胶囊”的病症关键词:发热、流涕、咳嗽;
Step3、引入Apriori算法,所有药品的集合为D,每个病症关键词作为候选1项集c1,第i个候选1项集记为c1(i),其集合为C1。设置一个最小支持度阈值min_sup,当c1的支持度计数support_count(c1)大于等于min_sup时,则c1成为频繁1项集l1,其集合为L1。通过将L1与自身相连接产生候选2项集c2,所有c2的集合为C2,如果C2中第i个候选2项集c2(i)的某个子集为第x个候选1项集c1(x),且它不是L1的元素时,则将c2(i)从C2中删除;满足min_sup的c2作为频繁2项集l2,其集合为L2;依次循环类推,得到不同频繁项集l2、l3、……lk-1、lk的集合L2、L3……Lk-1、Lk,其中lk-1、lk分别代表频繁k-1项集和频繁k项集,Lk-1、Lk则为它们各自的集合;具体地:
根据Step2得出:药品个数为D=7;
I1=感冒,I2=发热,I3=风寒,I4=口干,I5=流涕,I6=咳嗽,I7=鼻塞;
c1={I1,I2,I3,I4},c2={I1,I2,I4},c3={I1,I2},c4={I6,I7},c5={I2,I4,I5,I6},c6={I1,I6},c7={I2,I5,I6};
设置最小支持度阈值min_sup=2,则通过Apriori算法计算频繁项集的流程如图4所示,由图4的计算流程得出结果:
L2={{I1,I2},{I2,I4},{I2,I5},{I2,I6},{I5,I6}},L3={{I1,I2,I4},{I2,I5,I6}};
Step4、设置一个最小置信度阈值min_conf;每个频繁项集l所产生的每个非空子集为s,若子集(l-s)与s的支持度计数之比大于等于最小置信度阈值min_conf,则输出强关联规则该强规则的置信度大小为l与s的支持度计数之比的值具体地:
设置最小置信度阈值min_conf=60%,结合Step3所得关联规则,求出所有的强关联规则,并计算出其置信度,部分结果如下:
Step5、将所计算出来的所有强关联规则按照其置信度confidence的大小进行排序,当医生输入一个病症时,通过关联规则得出与该病症相关联的其他病症,将其推荐给医生作为参考选项,从而提高医生对病症关联诊断编辑的效率;具体地:
将Step4所得强关联规则按其置信度大小排序,即当医生输入I1(感冒)时,系统则按顺序推荐选项1.I2(发热);2.I2^I4(发热、口干);当医生输入I2^I5(发热、流涕),系统则自动推荐选项I6(咳嗽)。
本发明与现有技术相比,主要提供了Apriori算法对病症的诊断编辑起到关联推荐作用,提高医生开处方时对症状编辑的准确性与高效性。
上面结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。