源碼鏈接: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