李強 陳東濤 羅先錄
摘? 要:隨著中國互聯(lián)網(wǎng)越來越快的發(fā)展,互聯(lián)網(wǎng)+、大數(shù)據(jù)和人工智能技術(shù)等最新科技技術(shù)也越來越多的滲透到醫(yī)療領(lǐng)域,對于提升多種疾病的篩查和診斷效率作用明顯,而大數(shù)據(jù)處理技術(shù)上仍然面對著許多難題。本課題針對智慧醫(yī)療發(fā)展的難點之一,將大數(shù)據(jù)處理技術(shù)和醫(yī)療海量數(shù)據(jù)相結(jié)合,應(yīng)用Apriori關(guān)聯(lián)規(guī)則算法在醫(yī)療信息系統(tǒng)中海量醫(yī)療數(shù)據(jù)中的應(yīng)用,發(fā)現(xiàn)疾病與其他疾病之間的聯(lián)系,從而為人們的健康預(yù)警及醫(yī)療機構(gòu)對疾病的診斷提供科學(xué)依據(jù)參考,本文實驗數(shù)據(jù)以心肌炎和胃癌為例,發(fā)現(xiàn)與病癥相關(guān)性強的病因。
關(guān)鍵詞:智慧醫(yī)療;數(shù)據(jù)挖掘;關(guān)聯(lián)規(guī)則;醫(yī)療大數(shù)據(jù)
中圖分類號:TP301? ? ?文獻標(biāo)識碼:A
Implementation of the Association Rule Algorithm in Medical Big Data
LI Qiang,CHEN Dongtao,LUO Xianlu
(Guangdong Neusoft University,F(xiàn)oshan 528225,China)
Abstract:With the rapid development of Internet in China,Internet+,big data,artificial intelligence and other latest technologies are increasingly involved in the medical field,promoting the screening and diagnosis of various diseases.However,there are still many challenges in big data processing techniques.Aimed at the development of smart medical care,this paper combines big data processing technology with massive medical data and adopts the Apriori algorithm in massive medical data in the medical information system,to identify the relationship between one disease and others.Therefore,it provides some scientific evidence and reference for health warning and disease diagnosis in medical institutions.The study is conducted with the experimental data of myocarditis and gastric cancer.
Keywords:smart medical care;data mining;association rules; medical big data
1? ?引言(Introduction)
隨著物聯(lián)網(wǎng)、云計算和大數(shù)據(jù)等各項新技術(shù)的高速發(fā)展,國家頒布了各項政策以促進醫(yī)療服務(wù)的發(fā)展。促進醫(yī)療信息平臺的轉(zhuǎn)變,以三項技術(shù)為核心,以患者數(shù)據(jù)為連接點,將醫(yī)療信息平臺逐步向?qū)I(yè)的、便于醫(yī)患使用的智慧醫(yī)療信息平臺轉(zhuǎn)變。智慧醫(yī)療這個新興的產(chǎn)業(yè)已經(jīng)引起了政府、集團和許多公司的關(guān)注,其中代表有推想科技的推想人工智能致力于進行肺癌輔助篩查,騰訊醫(yī)療人工智能實驗室推出了一項帕金森病AI輔助診斷新技術(shù)等。數(shù)據(jù)表明人工智能針對一些疾病的診斷效果已經(jīng)達到甚至超越了傳統(tǒng)的人工治療方案。但至今仍未形成成熟的產(chǎn)業(yè)鏈,其中,醫(yī)療物聯(lián)網(wǎng)已逐步走向產(chǎn)業(yè)化,而大數(shù)據(jù)處理技術(shù)上仍然面對著許多難題[1]。
本課題就智慧醫(yī)療發(fā)展的難點,基于Apriori關(guān)聯(lián)規(guī)則算法在醫(yī)療信息系統(tǒng)中海量醫(yī)療數(shù)據(jù)中的應(yīng)用,研究疾病與疾病之間的關(guān)聯(lián),為個人健康提供預(yù)警和為醫(yī)療診斷提供科學(xué)依據(jù)參考。
2? ?關(guān)聯(lián)規(guī)則算法(The apriori algorithm)
Apriori算法是一種最有影響的挖掘布爾關(guān)聯(lián)規(guī)則頻繁項集的算法,其核心是基于兩階段頻集思想的遞推算法。該關(guān)聯(lián)規(guī)則在分類上屬于單維、單層、布爾關(guān)聯(lián)規(guī)則。在這里,所有支持度大于最小支持度的項集稱為頻繁項集,簡稱頻集[2]。
關(guān)聯(lián)規(guī)則一般主要分為兩個過程:
(1)基于數(shù)據(jù)產(chǎn)生頻繁項集,對于每一個頻繁項集來說,該項集在數(shù)據(jù)集中所出現(xiàn)的頻率必須滿足一定的要求。項集在數(shù)據(jù)集中出現(xiàn)頻率稱之為支持度,所需滿足的要求稱之為最小支持度。支持度可以表示關(guān)聯(lián)規(guī)則是否普遍適用,通過設(shè)置最小支持度來使最終的關(guān)聯(lián)規(guī)則擁有更廣的適用面,也使最終獲得的結(jié)果更具有價值[3]。
(2)產(chǎn)生關(guān)聯(lián)規(guī)則,通過所發(fā)現(xiàn)的頻繁項集產(chǎn)生規(guī)則,計算每一個規(guī)則的置信度,規(guī)則的置信度若滿足最小置信度,那么這條規(guī)則就稱之為關(guān)聯(lián)規(guī)則。置信度的大小表示使用該關(guān)聯(lián)規(guī)則對數(shù)據(jù)進行推理的準(zhǔn)確性。
其中規(guī)則的支持度的數(shù)學(xué)表達式為:
support(AB)=P(A∪B)=supportCount(A∪B)/count(D),其中A和B表示不相交的項集,D表示數(shù)據(jù)集,supportCount(A∪B)表示A項集和B項集的并集在數(shù)據(jù)集中出現(xiàn)的次數(shù),count(D)表示數(shù)據(jù)集的總事務(wù)數(shù)。置信度的數(shù)學(xué)表達式為:confidence(AB)=P(A|B)=supportCount(A∪B)/supportCount(A)。如果置信度為100%,意味著在數(shù)據(jù)集中該規(guī)則總是準(zhǔn)確的。
最小支持度和最小置信度的閥值一般由用戶或者專家進行設(shè)定,滿足這兩個閥值的規(guī)則稱為強規(guī)則。
例如:年齡≥45歲糖尿病(支持度7%置信度60%)
則表示在所有患者的診療信息中有7%的患者年齡大于等于45歲并且患有糖尿病,其中年齡大于等于45歲的患者中有60%的患者患有糖尿病。由此可見,如果針對醫(yī)療信息系統(tǒng)中大量的醫(yī)療數(shù)據(jù)使用關(guān)聯(lián)規(guī)則算法進行挖掘,并能得出一些有趣的規(guī)則,那么將對醫(yī)療機構(gòu)關(guān)于各種疾病的決策方面有著很大的幫助。
Apriori算法的基本思想是:算法掃描一次數(shù)據(jù)集,計算每一個項的支持度,找出所有的頻繁1-項集L1,基于L1,產(chǎn)生所有可能頻繁2-項集C2,也就是候選2-項集,再基于C2統(tǒng)計支持度,找出頻繁2-項集L2,如此反復(fù)循環(huán),直至發(fā)現(xiàn)所有的頻繁項集。
候選項集的產(chǎn)生中使用的方法主要是F_(k-1)×F_(k-1)方法:通過合并兩個上一步獲得的頻繁(k-1)-項集來生成候選k-項集。令F_(k-1)={C_1,C_2,C_3,…,C_(k-1)}和L_(k-1)={D_1,D_2,D_3,…,D_(k-1)}為兩個頻繁(k-1)-項集,當(dāng)它們的前k-2項相同,且k-1項不同,則合并兩項,獲得候選k-項集,這個方法能有效的避免產(chǎn)生重復(fù)的候選項集問題,以及能確保該方法生成的候選k-項集的其余k-2個子集均為頻繁的[4]。
3? ?應(yīng)用與實現(xiàn)(Application and implementation)
3.1? ?數(shù)據(jù)的準(zhǔn)備和預(yù)處理
實際的數(shù)據(jù)庫極易受噪聲、缺失值和不一致數(shù)據(jù)的侵?jǐn)_,因為數(shù)據(jù)庫太大,并且多半來自多個異種數(shù)據(jù)源。低質(zhì)量的數(shù)據(jù)將會導(dǎo)致低質(zhì)量的挖掘結(jié)果,所以首先需要對原始數(shù)據(jù)進行數(shù)據(jù)預(yù)處理[5]。主要根據(jù)數(shù)據(jù)分析的任務(wù)選擇任務(wù)所需的數(shù)據(jù)對象和屬性,以及對數(shù)據(jù)進行數(shù)據(jù)清洗等。本次研究將對系統(tǒng)中門診就診基礎(chǔ)數(shù)據(jù)表,住院就診基礎(chǔ)數(shù)據(jù)表中的數(shù)據(jù)列,如身份證、疾病代碼進行處理,提取所需的數(shù)據(jù)列數(shù)據(jù)。數(shù)據(jù)預(yù)處理的過程主要有:
(1)去重處理:為了提高數(shù)據(jù)分析結(jié)果的價值,將數(shù)據(jù)中完全重復(fù)的記錄去掉,屬于去噪的一種。
(2)異常值處理:檢測和處理異常值,可以自行確定一個異常值的標(biāo)準(zhǔn)和方法。如:為避免由于錯誤的身份證信息而導(dǎo)致不同病人之間的疾病歷史混合在同一個記錄中,根據(jù)一代身份證位數(shù)為15位數(shù),以及二代身份證位數(shù)為18位數(shù)的特征[6],刪除數(shù)據(jù)中所有身份證不符合位數(shù)要求的數(shù)據(jù),并將所有身份證為空的數(shù)據(jù)刪除;創(chuàng)建省份與身份證前兩位特征碼的對應(yīng)表,刪除不符合身份代碼對照表的身份證的記錄。
(3)特征提?。焊鶕?jù)身份證號碼中的性別特征碼的奇偶性對身份證屬性進行特征提取,創(chuàng)建病人的性別屬性,如圖1所示。
(4)降維處理:創(chuàng)建concat_array存儲函數(shù),以便之后對疾病代碼列進行行轉(zhuǎn)列操作,降低數(shù)據(jù)的維度,減輕算法的負(fù)擔(dān)[7]。函數(shù)代碼如圖2所示。
3.2? ?數(shù)據(jù)挖掘
本文基于Python語言作為編程語言實現(xiàn)關(guān)聯(lián)規(guī)則算法的應(yīng)用。Python語言的語法清晰,易于操作純文本文件,并且有著豐富的第三方庫,包括numpy、scipy、matplotlib等,使用python語言使本課題關(guān)聯(lián)規(guī)則算法的實現(xiàn)更加快捷簡明,并使用了pycharm和anaconda工具進行開發(fā),利用這兩款工具有效的簡化了本課題中的開發(fā)工作流程[8,9]。整個程序主要流程有:
(1)輸入疾病名稱,模糊查詢確認(rèn)對應(yīng)的疾病代碼,輸入最小支持度和最小置信度。
(2)對所有患有或曾患有胃癌疾病的患者的記錄根據(jù)疾病代碼進行聚合,統(tǒng)計此類患者的各種疾病的記錄數(shù)(count(dm)),降序排列,獲取前十條記錄,即獲取此類患者患病較多的前十種疾病,并根據(jù)這十種疾病篩選數(shù)據(jù),將數(shù)據(jù)根據(jù)身份證進行行轉(zhuǎn)列。
(3)根據(jù)性別分別統(tǒng)計每種疾病的患病人數(shù),以及輸入的疾病名稱的地區(qū)分布人數(shù),對其進行可視化。
(4)利用Apriori算法對數(shù)據(jù)進行數(shù)據(jù)挖掘。
3.3? ?挖掘結(jié)果
程序以疾病名稱和代碼作為輸入,并輸出與之關(guān)聯(lián)的計算結(jié)果。
例如:運行程序,輸入心肌炎,輸入對應(yīng)的疾病代碼編號20,并設(shè)置最小支持度為0.001和最小置信度為0.6,進行數(shù)據(jù)挖掘和可視化。最終得到關(guān)聯(lián)規(guī)則715條,其中的部分挖掘結(jié)果如圖3所示。
由于胃癌患者的數(shù)量較小,為獲得與胃癌相關(guān)的關(guān)聯(lián)規(guī)則,經(jīng)過多次對支持度與置信度的調(diào)整,最終設(shè)置支持度為0.00009,置信度為0.5。最終得到關(guān)聯(lián)規(guī)則715條,從中篩選與胃癌相關(guān)的關(guān)聯(lián)規(guī)則如圖4所示。
3.4? ?數(shù)據(jù)可視化
本文分別對男性與女性在與胃癌相關(guān)的10項疾病的患病人數(shù)進行統(tǒng)計,根據(jù)數(shù)據(jù)調(diào)用pyecharts繪制柱狀圖和省份分布地圖,其中柱狀圖的數(shù)據(jù)包括疾病的名稱,患各疾病的男性人數(shù),患各疾病的女性人數(shù),地圖的數(shù)據(jù)包括分析的疾病在各省份的人數(shù)。最終得到胃癌相關(guān)的各疾病男女性患病人數(shù)統(tǒng)計條形圖,以及患病人群省份分布圖如圖5和圖6所示。
3.5? ?數(shù)據(jù)分析
針對胃癌相關(guān)的關(guān)聯(lián)規(guī)則結(jié)果進行分析可以得出以下結(jié)論:
規(guī)則第一條:患胃癌的患者性別為男性的置信度約為58.6%。該關(guān)聯(lián)規(guī)則較為符合現(xiàn)今的醫(yī)療相關(guān)研究及實際醫(yī)療診斷情況:男性患胃癌的幾率比女性高。
規(guī)則第二條:患胃癌的患者患胃炎的置信度約為67.9%。胃癌是胃黏膜上皮的惡心腫瘤,胃炎是胃黏膜炎癥,胃癌一般都是由胃炎發(fā)展而來的。根據(jù)數(shù)據(jù)可視化可以直觀的看到各個疾病中男女性的患病人數(shù)比例。
由此可見,該關(guān)聯(lián)規(guī)則算法的程序能夠有效的研究各種疾病與性別,以及其他疾病之間的關(guān)聯(lián)。
4? ?結(jié)論(Conclusion)
本課題利用python實現(xiàn)Apriori關(guān)聯(lián)規(guī)則算法用于分析了醫(yī)療數(shù)據(jù)中疾病與疾病之間關(guān)系,發(fā)現(xiàn)了疾病之間的關(guān)聯(lián)規(guī)則。通過本課題發(fā)現(xiàn)利用關(guān)聯(lián)規(guī)則算法研究醫(yī)療數(shù)據(jù)中疾病之間的關(guān)系的數(shù)據(jù)是有效的。關(guān)聯(lián)規(guī)則算法能發(fā)現(xiàn)海量的醫(yī)療數(shù)據(jù)中蘊藏的信息并能得出關(guān)聯(lián)規(guī)則的可信度。該結(jié)果能為醫(yī)療機構(gòu)對疾病診斷提供參考,降低疾病的漏檢誤診情況的發(fā)生。同時也證明了利用關(guān)聯(lián)規(guī)則算法對醫(yī)療大數(shù)據(jù)進行數(shù)據(jù)挖掘所得出的結(jié)論有重要的參考價值[10]。
同時由于源數(shù)據(jù)基于規(guī)模較小,分析結(jié)果并未能很好的展示疾病之間的明顯關(guān)系。通過本課題的研究,探討了Apriori關(guān)聯(lián)規(guī)則算法在醫(yī)療數(shù)據(jù)中的應(yīng)用,可更進一步的結(jié)合利用醫(yī)療數(shù)據(jù)中的個人信息和家庭信息數(shù)據(jù)對疾病相關(guān)數(shù)據(jù)進行研究,針對患者的年齡、地區(qū)、家族遺傳、收入情況等數(shù)據(jù)進行分析,尋找疾病與這些數(shù)據(jù)間的關(guān)聯(lián),為疾病預(yù)防和治療提供依據(jù)。
參考文獻(References)
[1] 降惠.醫(yī)學(xué)大數(shù)據(jù)可視分析研究[J].軟件工程,2017,20(11):1-3.
[2] 程廣,王曉峰.基于MapReduce的并行關(guān)聯(lián)規(guī)則增量更新算法[J].計算機工程,2016(02):21-25;32.
[3] 李慶鵬,張龍軍,耿新元.I-Apriori:一種基于Spark平臺的改進Apriori算法[J].科學(xué)技術(shù)與工程,2017(12):243-248.
[4] 宋波,楊艷利,馮云霞.基于關(guān)聯(lián)規(guī)則Apriori算法的心肺性職業(yè)病病情分析及預(yù)測[J].中國數(shù)字醫(yī)學(xué),2017(04):68-70.
[5] 謝志明,王鵬.基于MapReduce架構(gòu)的并行矩陣Apriori算法[J].計算機應(yīng)用研究,2017(02):401-404.
[6] 馬繼剛.第二代居民身份證防偽特征的研究[D].中國人民公安大學(xué)學(xué)報(自然科學(xué)版),2005.
[7] 崔妍,包志.關(guān)聯(lián)規(guī)則挖掘綜述[J].計算機應(yīng)用研究,2016,33?(02):330-334.
[8] Pang-Ning Tan.數(shù)據(jù)挖掘?qū)д摚ㄍ暾妫M].北京:人民郵電出版社,2011.
[9] 曾勇.基于關(guān)聯(lián)規(guī)則的電子病歷挖掘的應(yīng)用研究[D].廣州:華南理工大學(xué),2012.
[10] 邸書靈,黃琳.關(guān)聯(lián)規(guī)則挖掘在研究生個人學(xué)習(xí)計劃制定中的應(yīng)用[D].石家莊:石家莊鐵道學(xué)院學(xué)報,2007.