源码链接:https://github.com/yemahei/test
患者信息可视化及关联规则可视化系统的实现
一、系统需求分析
藏医药学是我国传统民族医药学宝库中一颗璀璨的明珠,在藏族人民漫长的生产、生活实践中,其系统的理论和独特的临床疗效及用药特色,为藏族人们繁衍生息、保障生命健康做出了重要贡献,也越来越受到世人的关注。由于平时藏医院患者数量庞大,会产生大量的病人信息,由于信息都是表格或者是其它的文本类型的数据,为了方便医生对患者进行了解,所以对患者的信息进行可视化,让医生能更快更方便的了解患者的信息。还有就是为了让医生能对患者进行充分的了解,该系统利用关联规则中的apriori算法对萎缩性胃炎患者的症状进行关联,让医生能够充分的了解患者的症状,从而能够对症下药。
二、系统的总体设计
本系统应该是一个界面友好的并具有所需功能的系统,本系统应该满足医生患者数据的上传,上传数据类型为csv文件,上传之后,医生就会直接看到整体数据分布可对萎缩性胃炎症状分析产生的规则,系统中拥有许多不同的功能,所以具有不同功能的模块的设计是最终总体系统设计成功的关键。我们可以将一个大系统分成许多的小的部分,最后再一步一步的进行实际实现。系统功能模块如图2-1所示
图2-1
三、系统的使用流程
3.1 系统操作流程
医生将病人信息的csv文件整理之后上传点击提交。文件上传之后后台程序会对文件处理生成各种可视化的图表。从而使医生能够对患者信息进行直观具体的了解。
四、系统的实现
4.1 apriori算法的介绍及实现
4.1.1 apriori算法的介绍
1)基本概念
令I={i1,i2,⋯,id}I={i1,i2,⋯,id}是购物篮数据中所有项的集合,而T={t1,t2,⋯,tN}T={t1,t2,⋯,tN}是所有交易的集合。包含0个或多个项的集合被称为项集(itemset)。如果一个项集包含kk个项,则称它为 kk-项集。显然,每个交易titi包含的项集都是II的子集。
关联规则是形如 X→YX→Y 的蕴涵表达式,其中XX和YY是不相交的项集,即 X∩Y=∅X∩Y=∅。关联规则的强度可以用它的支持度(support)和置信度(confidence)来度量。支持度确定规则可以用于给定数据集的频繁程度,而置信度确定YY在包含XX的交易中出现的频繁程度。支持度(ss:Fraction of transactions that contain both XX and YY)和置信度(cc:How often items in YY appear in transactions that contain XX)这两种度量的形式定义如下:
s(X→Y)=σ(X∪Y)/N (X→Y)=σ(X∪Y)/σ(X)
2)先验原理
Apriori定律1:频繁项集的所有非空子集必为频繁项集。
Apriori定律2:非频繁项集的超集一定是非频繁的。
3)步骤
1.首先,设定最低限度的支持门槛和最低的置信度。
2.第二,挖掘候选集和频繁的项目集。前者用于生成项目候选项集,而后者则是支持度高于阈值的候选项集。
3.第三,从项目数据库中分析每个项目集,以找出频繁的项目集。在此之后,通过连接1个项目频繁集获得2个候选集。
4.第四,根据他们的支持信息,从候选集挑选出2个属性的候选集。然后,生成3个属性的频繁项目集。
5.最后,重复上述过程,直到数据库中没有候选者。
4.1.2 apriori算法的实现
具体的实现在后续的代码中,语言是使用的python
4.2 各功能模块设计
4.2.1 文件上传模块
本模块实现的是医生对患者信息文件的上传,由于医院患者的信息基本都是存在csv文件中,所以医生基本无需对患者的信息进行处理,可以直接将csv文件进行上传。如图4-2所示:
图4-1
4.2.2 病人的人数性别和症状数的统计
病人的信息上传之后后台会通过python程序统计文件中总人数和男性和女性的人数,还有患有萎缩性胃炎患者出现的症状数。效果如图4-3所示:
图4-2
4.2.3 病人的职业占比可视化
由于生活环境的影响,有些病有可能和职业有关系,该统计可以让医生观察萎缩性胃炎是否和病人的只有是否相关。界面效果如图4-3所示:
图4-3
4.2.3病人综合信息可视化
此模块是将所有病人的综合的信息进行可视化包括患者的患病的程度,病人所属的城区,姓名,性别,民族,年龄,职业,所产生的症状数。图中的每个圈的大小症状数的多少颜色的深度代表年龄的大小,不同的颜色代表不同的城区,鼠标点上之后会出现该患者的所有信息。界面效果如图4-4所示:
图4-4
4.2.4 症状在病人中的占比可视化
该模块是为了让医生对萎缩性胃炎的症状进行充分的了解,以及哪些症状会经常的出现能够让医生对该病的症状进行详细的了解,而且可以对图进行下载,界面效果如图4-5所示:
图4-5
4.2.5 基于apriori关联规则可视化
该模块功能做起来比较复杂,首先需要实现4.1中介绍的apriori算法,然后再将该算法嵌入到web中,过程是在前端上传患者的信息,在后台算法中跑出关联规则,并通过json将跑出的结果传到前端给用户展示。界面效果如下图所示。
图4-6
图4-7