周洪



摘要
隨著醫療衛生信息化的推進和發展,醫療信息系統已經從基礎的財務收費,全面覆蓋到藥品、臨床、電子病歷各個業務領域,同時也積累了海量的醫療業務數據,如何對這些數據進行深層次的挖掘,找到其中的規律具有重要意義。近年來大數據技術取得了突飛猛進的發展,本文討論應用大數據中的關聯分析算法,研究醫療臨床數據中疾病診斷之間的關聯關系,為形成診斷知識庫提供解決思路。
【關鍵詞】數據挖掘 關聯分析 疾病診斷 支持度 置信度
醫療衛生關系國計民生,是人民生活幸福水平的重要體現,在中國這樣一個人口大國,看病難一直是困擾普通民眾。醫療信息化系統運行積累了海量的數據信息,這些數據隱藏了很多有價值的信息,如何使這些數據輔助醫療機構做出科學決策、讓它們發揮更大價值,成為當前的熱點話題之一。對于醫生這個職業,經驗和知識的積累是非常重要的,我們是否可以利用大數據技術手段,挖掘出醫療行為的一些內在關系,然后轉化為知識成為醫生技能提升和知識傳播的手段,加快醫生的成長進程。關聯分析通過表征事物特征的兩個或多個變量的取值之間存在的某種規律性,找出數據之間隱藏的關聯關系。臨床上的某些疾病會同時呈現幾種不同的病癥,這些病癥之間就表現為一定程度的關聯性,而醫生診斷病癥的過程常常以觀察癥狀為基礎。因此本次研究就是利用居民就醫相關的數據(重點是疾病診斷類信息),進行“居民所患疾病之間的關聯分析”,形成初步的知識庫,為后續醫生在治療過程提供診斷相關性的支撐。
1數據采集及預處理
本次采集的原始數據為診療標準數據,數據量為1392185條。結合任務需求,僅提取病人的id以及疾病的名稱這兩列有意義的屬性列。另外在該階段,我們還清洗無意義的行記錄,例如同一病人重復的疾病記錄,以及僅得一種疾病的記錄等。第一步預處理后,數據量縮減到683703條。該診療數據以縱向格式存儲,一個患者的不同時點資料以多條記錄的形式保存,而進行關聯關系分析時,需要以一個患者一條記錄的形式形成數據集,所以在被分析利用前,必須對該數據格式以病人ID為條件進行縱橫轉置。轉置后,數據量縮減到181983條。
2算法模型選擇
在設計算法模型時,初始時計劃選擇Apriori算法,但在后期編碼時發現該算法在構造候選集、篩選候選集挖掘出頻繁項集,需要多次掃描原始數據,當原始數據較大時,磁盤I/O次數太多,效率比較低下。后通過搜索相關資料,發現FP-growth算法。該算法基于Apriori構建,但采用了高級的數據結構減少掃描次數,只需要對原始數據進行兩次掃描,大大加快了算法速度。
其算法思想以及實現步驟如下:
(1)對于每個頻繁項,構造它的條件投影數據庫和投影FP-tree。
(2)對每個新構建的FP-tree重復這個過程,直到構造的新FP-tree為空,或者只包含一條路徑。
(3)當構造的FP-tree為空時,其前綴即為頻繁模式;當只包含一條路徑時,通過枚舉所有可能組合并與此樹的前綴連接即可得到頻繁模式。
最終,決定選擇FP-growth算法作為此次數據分析的算法模型。
在算法實現工具方面,出于掌握難易度、可分布式進行計算等方面考慮,本小組選擇Mahout這一輕量級數據挖掘軟件。它的關聯規則挖掘中就包括了FP Growth算法。
3數據分析實現
我們先將數據庫中的疾病數據導出,利用Mahout內置的FP-growth模塊,對原始數據進行關聯頻繁項分析,由于原始數據的量不大,我們沒有擴展使用Mahout集成的Mapreduce模式進行并行計算,通過對輸出的hdfs序列文件進行反序列化后我們就能正常查看結果數據。
上述步驟最后得出的文件為關聯關系分析后的各頻繁項以及相應支持度統計數,為方便后續關聯關系分析,我們基于原始result文件開發了輔助分析程序,可根據需求設定相應的最小支持度和最小置信度閾值,最終輸出符合閾值設置的關聯關系。如圖1所示。
4疾病關聯分析
通過基于大數據的挖掘分析技術,我們希望通過存數據分析的手段找出疾病診斷之間關聯規則,并于現有醫學知識進行驗證,以期發現其中的規律。這些規則可能會揭示數據庫中所含信息和一般規律,可以作為對新的病例診斷的參考依據。
通常我們在做關聯規則發現的時候都會設定支持度和置信度閾值最小支持度和最小置信度,而關聯規則發現則是發現那些支持度大于等于最小支持度并且置信度大于最小置信度的所有規則。支持度和置信度的意義在于,支持度是一個重要的度量,如果支持度很低,代表這個規則其實只是偶然出現,基本沒有意義。因此,支持度通常用來刪除那些無意義的規則。而置信度則是通過規則進行推理具有可靠性。用c(X->Y)來說,只有置信度越高,Y出現在包含X的事務中的概率才越大,否則這個規則也沒有意義。根據“指定最小支持度為0.001,最小置信度為0.8”的輸出結果,我們可以很快的發現其中有11條結果明確的疾病并發癥關系或病種的包含關系。如圖2。
剩余4條記錄中,有三條是和胃炎相關的,見圖3。
那我們可以就胃炎與十二指腸球部潰瘍、胃息肉、食管炎基于醫學上的知識,進行進一步的分析。
胃炎:是多種不同病因引起的胃黏膜急性和慢性炎癥,常伴有上皮損傷、黏膜炎癥反應和上皮再生。胃炎是最常見的消化系統疾病之一[5]。
4.1十二指腸球部潰瘍與胃炎關系
十二指腸球部潰瘍:是指胃酸和胃蛋白酶接觸的十二指腸粘膜,發生局限性的超過粘膜肌層的潰破。疾病病因主要是胃炎和其它刺激因素。長期的影響于胃粘膜,使胃黏膜、十二指腸黏膜產生潰瘍性損壞。因此十二指腸球部潰瘍=>[胃炎]之間存在一定的關聯關系。
4.2胃息肉與胃炎關系endprint
胃息肉:是指胃黏膜表面長出的突起狀乳頭狀組織,較小時常無明顯癥狀,一般都是在胃腸鋇餐造影、胃鏡檢查或其他原因手術時偶然發現。胃息肉最常采用Mings分類法分為再生性胃息肉及腫瘤性胃息肉兩大類。第一類為再生性胃息肉一即為增生息性肉,發病較常見,其比例約76%?90%。分布于胃內的部位不定,多數傾向于發生在胃炎的部位。這也就證明了胃息肉=>[胃炎]之間存在關聯關系。
4.3食管炎與胃炎關系
食管炎:即食道炎,泛指食管黏膜淺層或深層組織由于受到刺激或損傷,食管黏膜發生水腫和充血而引發的炎癥。胃炎是可以引起食道炎的。由于化學治療、放射治療導致食管局部受損,或患者本身抵抗力下降導致結核桿菌、真菌或病毒感染也可引發食管炎,臨床最常見的是胃酸反流引起反流性食管炎。所以說胃炎是會引起食道炎的。這也就證明了食管炎=>[胃炎]之間的關系。
通過胃炎與十二指腸球部潰瘍、胃息肉、食管炎的醫學知識分析,驗證了我們基于MahoutFP-growth進行關聯性分析一定的科學性。
還有我們還以對“指定最小支持度為0.001,最小置信度為0.7”的輸出結果進行“高脂血癥”相關的分析。其中我們可以找到4條與“高脂血癥”相關的記錄。如圖4。
高血脂癥,血脂是人體血漿內所含脂質的總稱,其中包括膽固醇、甘油三脂、膽固醇脂、β-脂蛋白、磷脂、未脂化的脂酸等。當血清膽固醇超過正常值230毫克/100毫升,甘油三脂超過140毫克/100毫升,P-脂蛋白超過390毫克/100毫升以上時,即可稱之為高血脂癥。高脂血癥是動脈粥樣硬化的主要發病因素,它的直接損害是加速全身動脈粥樣硬化,因為全身的重要器官都要依靠動脈供血、供氧,一旦動脈被粥樣斑塊堵塞,就會導致嚴重后果。常因侵犯重要器官而引起嚴重的后果,如冠心病、糖尿病、腦血管意外、頑固性高血壓及腎病綜合癥、胰腺炎、結石癥、脂肪肝等。動脈硬化的發生和發展,與血脂過高有著密切的關系。
“高脂血癥”的分析,也同樣驗證了我們基于MahoutFP-growth進行關聯性分析一定的科學性。目前我們的課題作業是在百萬級數據的基礎上分析的結果,由于數量不足,分析結果還存在很多不準確的地方,只能作為一種探索為后續更大數量的分析做些有益的嘗試。
參考文獻
[1]蘭小敏.大數據時代醫療信息系統應用與研究[J].數字通信世界,2016(08).
[2]周志華.機器學習[M].北京:清華大學出版社,2016.
[3]呂雪旗,李龍澍著.FP—Growth算法MapReduce化研究[J].計算機技術與發展,2012.
[4]陳封能,斯坦巴赫,庫瑪爾著,范明,范宏建等譯.數據挖掘導論Introduction to Data Mining[M].北京:人民郵電出版社,2011.
[5]張尤歷編.消化內科:疾病診療指南[M]北京:學苑出版社,2008.endprint