林英姿 曾宇平 徐飛龍 傅昊陽
(廣東省中醫(yī)院 廣州 510000)
?
基于Hadoop的分布式樸素貝葉斯智能診斷系統(tǒng)
林英姿 曾宇平 徐飛龍 傅昊陽
(廣東省中醫(yī)院 廣州 510000)
介紹基于Hadoop的分布式樸素貝葉斯智能診斷系統(tǒng)的研究思路、設(shè)計與實現(xiàn),結(jié)合系統(tǒng)在廣東省中醫(yī)院的應用情況對其進行優(yōu)化與改進,包括算法改選設(shè)計及系統(tǒng)準確率、擴展性、安全性等方面。
Hadoop; 分布式貝葉斯; 智能診斷
醫(yī)療領(lǐng)域經(jīng)過近30年的信息化建設(shè),積累了海量電子化病歷、檢查、檢驗、處方、診療費用等數(shù)據(jù),正向數(shù)據(jù)密集型、數(shù)據(jù)驅(qū)動型方向發(fā)展。而其中電子病歷作為患者在醫(yī)療機構(gòu)歷次診療信息的完整記錄,蘊含的醫(yī)學信息具有潛在價值性。通過對電子病歷數(shù)據(jù)進行挖掘,實現(xiàn)臨床決策支持、減少誤診及醫(yī)療疏忽,已成為醫(yī)療質(zhì)量管理的重要內(nèi)容[1]。目前已經(jīng)有學者對樸素貝葉斯算法在冠心病、糖尿病等疾病臨床輔助診斷決策以及中醫(yī)癥候診斷等方面進行了探索,對樸素貝葉斯算法進行了優(yōu)化與改進研究[2-3]。但總體而言,基于貝葉斯的臨床決策支持應用存在決策支持病種單一、訓練數(shù)據(jù)非臨床一線病歷、訓練數(shù)據(jù)規(guī)模有限、算法傳統(tǒng)串行實現(xiàn)效率受單機硬件配置限制等問題[4]。本研究基于廣東省中醫(yī)院海量真實電子病歷,在醫(yī)院私有云平臺上搭建Hadoop集群并部署優(yōu)化后的分布式樸素貝葉斯算法,進行智能診斷應用研究,以輔助臨床決策?;贖adoop的分布式樸素貝葉斯智能診斷系統(tǒng)是指利用云計算、Hadoop、樸素貝葉斯及相關(guān)文本分類挖掘技術(shù),具有海量病歷文本訓練數(shù)據(jù)采集、存儲、分布式并行處理以及智能預測等功能的信息管理系統(tǒng)。下文基于Hadoop的分布式樸素貝葉斯智能診斷系統(tǒng)均簡稱為智能診斷系統(tǒng)。
2.1 智能診斷數(shù)據(jù)挖掘算法選擇
2.1.1 樸素貝葉斯算法在文本分類方面具有獨特優(yōu)勢 首先,樸素貝葉斯分算法基于獨立假設(shè),即假設(shè)樣本每個特征與其他特征不相關(guān),每個特征的分布都可以獨立地當作一維分布來估計,當樣本的特征個數(shù)增加時,不需要使樣本規(guī)模呈指數(shù)增長,只需要估計各個變量;其次,獨立假設(shè)會導致一定的不準確性,但樸素貝葉斯分類器中,依據(jù)最大后驗概率決策規(guī)則,只要正確類的后驗概率比其他類高就可以得到正確的分類,抗噪音能力強,所以分類器有足夠的魯棒性彌補獨立假設(shè)的缺陷[5];第三,隨著樣本量的不斷增大,在獲得更多關(guān)于樣本特征信息后,可以依照貝葉斯公式對先驗概率不斷進行修正,對后驗概率進行優(yōu)化,不斷提高分類決策的準確性和置信度。
2.1.2 從算法角度考慮 樸素貝葉斯應用于臨床決策、診斷,能夠通過綜合分析患者相關(guān)影響因素,客觀準確地把握各種臨床信息權(quán)重,有效地根據(jù)診斷試驗的靈敏度、特異度、患病時各癥狀出現(xiàn)的概率(條件概率),結(jié)合各種疾病在人群中的比例(先驗概率),計算出患者患某病的概率(后驗概率),減少經(jīng)驗主義方法的偏倚[6-7]。因此,智能診斷系統(tǒng)采用樸素貝葉斯算法作為系統(tǒng)的核心算法。
2.2 海量真實病歷訓練數(shù)據(jù)選擇
分類模型訓練數(shù)據(jù)的準確性直接影響到樸素貝葉斯算法的計算結(jié)果,為在最大程度上保證準確率,系統(tǒng)訓練數(shù)據(jù)全部采用醫(yī)院真實病歷文本。醫(yī)院年門診量達700萬人次,通過病歷篩選將10個專科質(zhì)量較高的10萬份病歷納入訓練數(shù)據(jù)資源池,訓練數(shù)據(jù)規(guī)模大。
2.3 大數(shù)據(jù)并行運算
2.3.1 意義 大數(shù)據(jù)時代,當訓練病歷達到很大數(shù)量級時,訓練集增大必將占用更多的計算資源。傳統(tǒng)樸素貝葉斯算法的串行實現(xiàn)機制中,算法的訓練階段與分類預測階段都在單機上進行,必然會受到硬件資源不足的限制,最終導致機器性能下降甚至無法完成計算任務(wù)。然而在臨床診療過程中,臨床醫(yī)生對于系統(tǒng)運算效率、系統(tǒng)響應時間有極為嚴苛的需求,如何在系統(tǒng)用戶并發(fā)數(shù)量多時提供實時或準實時的數(shù)據(jù)分析查詢能力,對于系統(tǒng)具有重要意義。
2.3.2 過程 基于Hadoop的分布式貝葉斯算法采用分布處理的思想,通過對樣本進行分散統(tǒng)計與集中整合的方式來構(gòu)造分類器[8]。系統(tǒng)基于私有云平臺,搭建Hadoop集群,樸素貝葉斯分類算法在MapReduce并行化后部署在Hadoop集群上運行。具體實現(xiàn)表現(xiàn)在,訓練過程中,Map階段進行類別數(shù)及詞頻統(tǒng)計的過程分布在多個節(jié)點同時進行,對應Reduce過程將各節(jié)點的統(tǒng)計頻度進行匯總。分類過程中,未分類樣本之間相互獨立,所以樣本的分類預測只需要使用Map逐個處理,不需要進行Reduce過程,當多個用戶同時提交請求時,只需將不同用戶請求提交給不同的Map節(jié)點并行處理即可。
3.1 智能診斷系統(tǒng)總體技術(shù)架構(gòu)設(shè)計
基于Hadoop的分布式樸素貝葉斯智能診斷系統(tǒng)總體技術(shù)架構(gòu)設(shè)計,見圖1。
圖1 智能診斷系統(tǒng)總體技術(shù)架構(gòu)
3.1.1 基礎(chǔ)設(shè)施層 提供智能診斷系統(tǒng)模型訓練數(shù)據(jù)的分布存儲與并行計算的硬件基礎(chǔ)設(shè)施和平臺。該層并行架構(gòu)及私有云平臺基于普通商用服務(wù)器即能滿足需求,優(yōu)勢在于一方面可將組織內(nèi)部閑置或利用率不高的現(xiàn)有硬件納入到云平臺,另一方面能夠運用云計算的虛擬化和彈性資源調(diào)度技術(shù)為數(shù)據(jù)分析處理提供可伸縮的計算資源和基礎(chǔ)設(shè)施。
3.1.2 數(shù)據(jù)采集與預處理層 主要從電子病歷數(shù)據(jù)庫中抽取數(shù)據(jù),主要包括病歷主訴、既往史、過敏史、中醫(yī)診斷、西醫(yī)診斷等字段。在詳細分析數(shù)據(jù)源的數(shù)據(jù)結(jié)構(gòu)及質(zhì)量基礎(chǔ)上,將文檔處理成貝葉斯模型文本輸入格式,形成貝葉斯分類模型的訓練數(shù)據(jù)池。
3.1.3 數(shù)據(jù)存儲管理層 基于云平臺搭建Hadoop集群,設(shè)計Hadoop分布式文件系統(tǒng)(Hadoop Distributed File System,HDFS)模型及MapReduce模型,進行電子病歷數(shù)據(jù)存儲。目前平臺只將歷史病歷數(shù)據(jù)加載到Hadoop平臺,病歷實時數(shù)據(jù)流加載暫未進行研究。HDFS存儲模型特有的數(shù)據(jù)冗余機制,能夠保證數(shù)據(jù)存儲安全。
3.1.4 算法分析層 主要可劃分為兩個步驟:第一是貝葉斯訓練算法設(shè)計,第二是貝葉斯預測算法設(shè)計。兩個步驟都涉及中文分詞,分詞的好壞直接影響到貝葉斯分類器模型的性能及后續(xù)分類的結(jié)果。系統(tǒng)采用多層隱馬爾科夫模型進行分詞處理,這是目前中文分詞領(lǐng)域性能較好的一種模型。
3.1.5 應用服務(wù)層 系統(tǒng)支持B/S架構(gòu),用戶(臨床醫(yī)護人員、系統(tǒng)管理員、患者)采用自然語言或關(guān)鍵詞方式輸入,結(jié)果可通過多方式(圖形、概率值)進行展示,實現(xiàn)對病種的預測、專題分析等功能。
3.2 智能診斷實現(xiàn)過程
基于Hadoop的分布式樸素貝葉斯智能診斷系統(tǒng)對歷史海量真實病歷數(shù)據(jù)訓練得到貝葉斯分類預測模型,通過該模型預測文本所屬的類別,即預測醫(yī)生所輸入的癥狀描述文本所對應的病種。系統(tǒng)流程主要可分為兩大部分:第一部分是貝葉斯分類器模型訓練,第二部分利用貝葉斯分類模型進行分類預測,見圖2。
圖2智能診斷系統(tǒng)流程
3.3 智能診斷系統(tǒng)實現(xiàn)
醫(yī)院智能診斷系統(tǒng)具體實現(xiàn)界面,見圖3。臨床醫(yī)生只需在瀏覽器頁面癥狀文本框中輸入患者癥狀,系統(tǒng)就可以進行智能診斷,將診斷結(jié)果以圖像化界面方式輸出。
圖3 智能診斷系統(tǒng)界面
4.1 概述
基于分布式設(shè)計實現(xiàn)的樸素貝葉斯文本分類器具有高數(shù)據(jù)容量、高效性、可靠性和易擴展性[9],目前系統(tǒng)已經(jīng)在廣東省中醫(yī)院幾個專科測試應用,在保證基于病歷文本的智能診斷準確率的前提下,能夠有效提升海量病歷文檔分類預測的速度,實現(xiàn)毫秒級的響應時間。
4.2 算法改造設(shè)計
4.2.1 算法并行化設(shè)計與改造 明確哪些計算過程需要并行化分析、結(jié)果如何匯總。訓練過程中Map階段進行類別數(shù)及詞頻統(tǒng)計,對應Reduce過程將各節(jié)點的統(tǒng)計頻度進行匯總。分類過程中,未分類樣本之間相互獨立,所以樣本的分類預測只需要使用Map逐個處理,不再需要進行Reduce過程,Map結(jié)果直接輸出即可。
4.2.2 算法的優(yōu)化 充分考慮醫(yī)學決策特點(高級職稱醫(yī)生病歷權(quán)重、疑難診斷病歷權(quán)重),采用加權(quán)、文本向量空間模型方法對病歷數(shù)據(jù)進行預處理,提高病歷數(shù)據(jù)質(zhì)量和決策分析準確率。另外一點考慮就是針對分類樣本屬性的加權(quán),因為有些屬性對分類影響要大一些,而另外的屬性則要小一些。在參考國內(nèi)外研究成果基礎(chǔ)上提出屬性加權(quán)樸素貝葉斯算法,進一步提高樸素貝葉斯分類器性能[10-11]。
4.3 系統(tǒng)準確率改進
由于臨床診療的復雜性,診療決策很難保證完全正確,因此基于樸素貝葉斯算法的智能診斷準確性也無法達到百分之百。系統(tǒng)分類模型訓練數(shù)據(jù)以及前驗概率的準確性直接影響到樸素貝葉斯算法的計算結(jié)果,為在最大程度上保證系統(tǒng)準確率,訓練數(shù)據(jù)全部采用醫(yī)院真實病歷文本,可信度高,而且規(guī)模大,保證貝葉斯分類模型的準確性。選擇醫(yī)院病歷質(zhì)量較好的幾個專病專科,對其歷年臨床電子病歷進行了詳細的調(diào)查與病例分析,輔助對人群患病率進行預估算。同時系統(tǒng)具有很好的優(yōu)化調(diào)整能力。一方面體現(xiàn)在樸素貝葉斯分類模型建立之后,新增的病歷也可以不斷加載到Hadoop集群上的訓練數(shù)據(jù)池,對模型進行進一步的優(yōu)化與調(diào)整;另一方面,系統(tǒng)應用過程中可進一步獲得更多關(guān)于樣本特征的信息,依照貝葉斯公式對先驗概率進行修正,得到后驗概率,提高分類決策的準確性和置信度。
4.4 系統(tǒng)擴展性
基于云平臺搭建的Hadoop集群具有很好的冗余性、可擴展性。一方面,集群提供了數(shù)據(jù)冗余、備份機制,某個節(jié)點出現(xiàn)問題不會影響到整個計算過程,只需將節(jié)點分配的計算任務(wù)重新分配給另外一個節(jié)點即可;另一方面,MapReduce在處理樸素貝葉斯分類算法上具有較好的加速比,通過MapReduce計算框架將在串行實現(xiàn)機制中的一些計算過程并行化,總處理時間隨著參與計算節(jié)點的增加而減少,增加計算節(jié)點可以提高系統(tǒng)對規(guī)模相同數(shù)據(jù)的處理能力[12]。當集群計算能力不足時,只需利用云計算的虛擬化和彈性資源調(diào)度技術(shù),集群中添加新的節(jié)點即可[13]。需要注意的是Hadoop集群上完成樸素貝葉斯算法需要完成多個MapReduce作業(yè),每個作業(yè)的啟動和交互等需要消耗一定的資源且占總消耗的比例大。只有當需要處理的樣本數(shù)據(jù)量規(guī)模足夠大時,通過擴展計算節(jié)點才可以有效提高系統(tǒng)計算效率。
4.5 系統(tǒng)安全性
大數(shù)據(jù)的應用需從多個數(shù)據(jù)庫和信息系統(tǒng)中獲得相應的信息,添加數(shù)據(jù)分析功能,一定程度上預示著數(shù)據(jù)的開放、共享,而數(shù)據(jù)的開放與共享必將引起患者隱私安全保護等問題。電子病歷隱私問題包括個人隱私保護、重新識別攻擊、結(jié)果可信度、數(shù)據(jù)欺詐等[14]。在分析醫(yī)療電子病歷數(shù)據(jù)主體的隱私安全問題、安全需求、攻擊模型及系統(tǒng)特征的基礎(chǔ)上,管理層面上采用權(quán)限管控,技術(shù)層面上采用日志監(jiān)控、數(shù)字水印、數(shù)據(jù)脫敏、匿名化、標識轉(zhuǎn)換[15]等機制,防止敏感數(shù)據(jù)的越權(quán)查詢和泄露。
醫(yī)院經(jīng)過多年信息化建設(shè),積累海量電子病歷數(shù)據(jù),其蘊含的醫(yī)學信息與知識亟待挖掘、利用。本文針對廣東省中醫(yī)院海量真實電子病歷建立的基于Hadoop的分布式樸素貝葉斯智能診斷系統(tǒng)在臨床智能診斷、決策支持方面取得了較好的應用效果。目前只將歷史病歷數(shù)據(jù)加載到Hadoop平臺,病歷實時數(shù)據(jù)流加載暫未進行研究。未來將對病歷實時加載至智能診斷平臺進行研究,對智能診斷核心算法不斷進行優(yōu)化與改進。
1 吳煒,楊梅瑰,唐飛岳. 基于數(shù)據(jù)挖掘技術(shù)的輔助醫(yī)療診斷研究[J]. 醫(yī)學信息學雜志,2010,31(12):22-26.
2 柳秋云.改進的樸素貝葉斯分類器在醫(yī)療診斷中的應用[J]. 科技創(chuàng)新導報,2008,(31):192,194.
3 劉智,桑國明,魯明羽.基于屬性加權(quán)樸素貝葉斯的冠心病辨證模型[J]. 廣西師范大學學報: 自然科學版,2008,26(4):67-70.
4 陳偉,沈亞誠,蔡永銘,等. 基于Web的數(shù)據(jù)挖掘系統(tǒng)設(shè)計及其在絕經(jīng)綜合征中的應用[J].醫(yī)學信息學雜志,2012,33(7):33-36,44.
5 魏魯霞. 數(shù)據(jù)挖掘技術(shù)在藥品療效上的應用[J]. 醫(yī)學信息學雜志,2010,31(4):40-43.
6 李凱.貝葉斯法在醫(yī)學診斷中的應用[J].北京大學學報:醫(yī)學版,2010,42(3):360-362.
7 關(guān)鴻志,陳琳.貝葉斯法在臨床診斷決策中的應用[J].中華醫(yī)學雜志,2007,(29):2081-2083.
8 李偉衛(wèi),趙航,張陽,等.基于MapReduce的海量數(shù)據(jù)挖掘技術(shù)研究[J].計算機工程與應用,2013,(20):112-117.
9 衛(wèi)潔,石洪波,冀素琴.基于Hadoop的分布式樸素貝葉斯文本分類[J].計算機系統(tǒng)應用,2012,21(2):210-213.
10 Cheng T,Wei C,Tseng V S. Feature Selection for Medical Data Mining:comparisons of expert judgment and automatic approaches[C].Washington DC:Proceedings of the 19th IEEE Symposium on Computer-Based Medical Systems, 2006:165-170.
11 Ordon E Z C.Association Rule Discovery with the Train and Test Approach for Heart Disease Prediction[J].IEEE Transactions on Information Technology in Biomedicine,2006,10(2):334-343.
12 江小平,李成華,向文,等.云計算環(huán)境下樸素貝葉斯文本分類算法的實現(xiàn)[J].計算機應用,2011,31(9):2551-2556.
13 高漢松,肖凌,許德瑋,等.基于云計算的醫(yī)療大數(shù)據(jù)挖掘平臺[J]. 醫(yī)學信息學雜志,2013,34(5):7-12.
14 Meiko J.Challenges of Privacy Protection in Big Data Analytics[C].Santa Clara: IEEE International Congress on Big Data,2013: 235-238.
15 胡新平.醫(yī)療數(shù)據(jù)挖掘中的隱私保護[J]. 醫(yī)學信息學雜志,2009,30(8):1-4.
The Distributed Naive Bayesian Intelligent Diagnosis System Based on Hadoop
LINYing-zi,ZENGYu-ping,XUFei-long,FUHao-yang,Guangdong
ProvinceTraditionalChineseMedicalHospital,Guangzhou510000,China
The paper introduces the research idea, design and realization of the distributed Naive Bayesian intelligent diagnosis system based on Hadoop, makes optimization and improvement according to its application in Traditional Chinese Medicine (TCM) Hospital of Guangdong Province, including algorithm design improvement and enhancement of accuracy, extensibility and security of the system.
Hadoop; Distributed Naive Bayes; Intelligent diagnosis
2015-05-07
林英姿,工程師,發(fā)表論文3篇。
R-058
A 〔DOI〕10.3969/j.issn.1673-6036.2015.07.012