鄭丹青
(株洲職業(yè)技術(shù)學(xué)院 電子信息工程系,湖南 株洲 412001)
數(shù)據(jù)挖掘是從大量的、不完全的、有噪聲的、模糊的、隨機的實際應(yīng)用數(shù)據(jù)中,尋找有意義、有價值信息的過程。數(shù)據(jù)挖掘可以應(yīng)用于任何類型的信息儲存庫(如關(guān)系數(shù)據(jù)庫、數(shù)據(jù)倉庫、事務(wù)數(shù)據(jù)庫和高級數(shù)據(jù)庫系統(tǒng))以及瞬態(tài)數(shù)據(jù)(如數(shù)據(jù)流)[1]。目前,數(shù)據(jù)挖掘在醫(yī)學(xué)領(lǐng)域的應(yīng)用主要集中在疾病輔助診斷、藥物開發(fā)、醫(yī)院信息系統(tǒng)中的應(yīng)用和遺傳學(xué)方面的應(yīng)用等。在疾病診斷方面,如采用貝葉斯學(xué)習(xí)分類方法對男女患者的圖像進(jìn)行自動診斷,將數(shù)據(jù)挖掘用于肝癌遺傳綜合征的自動檢測[2],運用決策樹方法,以醫(yī)院病案室保存的冠狀動脈粥樣硬化性心臟病(簡稱冠心病)病案中選取了一些數(shù)據(jù)作為挖掘的原始數(shù)據(jù)集進(jìn)行醫(yī)療數(shù)據(jù)分析[3]等。在醫(yī)院信息系統(tǒng)中,利用決策樹方法進(jìn)行醫(yī)院信息系統(tǒng)挖掘及醫(yī)療政策分析[4]等。
近年來,隨著醫(yī)院信息化建設(shè)的發(fā)展,電子病歷和病案的大量應(yīng)用,醫(yī)療設(shè)備和儀器的數(shù)字化,使得醫(yī)院數(shù)據(jù)庫系統(tǒng)中積累了大量有關(guān)病人的病史、診斷、檢驗和治療的臨床信息,而如何利用數(shù)據(jù)挖掘技術(shù)從醫(yī)院信息系統(tǒng)中抽取、清洗和變換數(shù)據(jù),采用分類、聚類、關(guān)聯(lián)分析等方法構(gòu)建臨床醫(yī)療數(shù)據(jù)分析系統(tǒng)。通過對患者資料數(shù)據(jù)庫中大量歷史數(shù)據(jù)處理、提煉蘊含其中的大量有價值的信息,發(fā)現(xiàn)隱藏的關(guān)系和模式,預(yù)測未來的發(fā)展趨勢,已成為醫(yī)院信息化建設(shè)中所需要進(jìn)一步研究的課題。其中,對疾病的臨床診斷、治療和預(yù)后的關(guān)系研究也是醫(yī)學(xué)科學(xué)研究很重要的方面[5]。
文中將以胃癌術(shù)后復(fù)發(fā)的危險因素分析為例,探討構(gòu)建基于數(shù)據(jù)挖掘的臨床醫(yī)療數(shù)據(jù)分析系統(tǒng),并運用元數(shù)據(jù)管理方法,使用戶可以根據(jù)數(shù)據(jù)分析的需要自行選取數(shù)據(jù)分析模型中的變量,使系統(tǒng)具有靈活性和擴展性。
醫(yī)院信息系統(tǒng)包括管理信息系統(tǒng)和臨床信息系統(tǒng)兩部分。其中,臨床信息系統(tǒng)主要處理有關(guān)病人方面的信息,如患者入院、住院、治療、檢查、出院等醫(yī)療信息。而利用數(shù)據(jù)挖掘決策樹技術(shù),通過對醫(yī)院信息系統(tǒng)中疾病的臨床診斷、治療和預(yù)后情況進(jìn)行數(shù)據(jù)分析,可從中發(fā)現(xiàn)影響疾病預(yù)后情況的因素。現(xiàn)以胃癌術(shù)后復(fù)發(fā)情況的數(shù)據(jù)分析為例,為尋找出胃癌術(shù)后復(fù)發(fā)的危險因素,構(gòu)建臨床醫(yī)療數(shù)據(jù)挖掘模型結(jié)構(gòu)如圖1所示。

圖1 臨床醫(yī)療數(shù)據(jù)挖掘模型結(jié)構(gòu)
為了進(jìn)行胃癌術(shù)后復(fù)發(fā)情況分析,首先確定胃癌術(shù)后復(fù)發(fā)與哪些因素有關(guān),從中選取年齡、胃切除、家族遺傳、營養(yǎng)狀況、術(shù)后化療、是否復(fù)發(fā)等相關(guān)信息作為數(shù)據(jù)挖掘項目的變量,這些變量數(shù)據(jù)類型及取值范圍見表1。

表1 定義數(shù)據(jù)分析模型的變量
其次從業(yè)務(wù)數(shù)據(jù)庫中抽取數(shù)據(jù),經(jīng)過數(shù)據(jù)預(yù)處理,去掉與決策無關(guān)的屬性,處理含空缺值的屬性,形成決策樹的訓(xùn)練數(shù)據(jù)集見表2。

表2 胃癌術(shù)后復(fù)發(fā)訓(xùn)練數(shù)據(jù)集(部分)
其中選取是否復(fù)發(fā)作為目標(biāo)屬性,建立一棵決策樹,以進(jìn)行胃癌術(shù)后復(fù)發(fā)的危險因素分析。
胃癌術(shù)后復(fù)發(fā)數(shù)據(jù)倉庫分為年齡、胃切除、家族遺傳、營養(yǎng)狀況、術(shù)后化療、是否復(fù)發(fā)6個維表和一個事實表,數(shù)據(jù)倉庫模型如圖2所示。

圖2 數(shù)據(jù)倉庫模型
然后,根據(jù)表1和表2所示數(shù)據(jù),利用SQL SERVER 2008創(chuàng)建臨床醫(yī)療數(shù)據(jù)倉庫。
數(shù)據(jù)挖掘平臺包括數(shù)據(jù)挖掘建模、數(shù)據(jù)挖掘結(jié)果展示和用戶交互界面等。其中,數(shù)據(jù)挖掘建模是數(shù)據(jù)挖掘操作的核心步驟,挖掘建模包括學(xué)習(xí)算法的選擇、算法參數(shù)的確定等[6]。
數(shù)據(jù)挖掘建模采用myEclipse作為開發(fā)工具,weka作為數(shù)據(jù)挖掘工作平臺。一方面利用weka軟件所集合的能承擔(dān)數(shù)據(jù)挖掘任務(wù)的機器學(xué)習(xí)算法,包括對數(shù)據(jù)進(jìn)行預(yù)處理、分類、回歸、聚類、關(guān)聯(lián)規(guī)則等實現(xiàn)數(shù)據(jù)挖掘建模;另一方面采用myEclipse作為開發(fā)工具,運用Java語言開發(fā)設(shè)計數(shù)據(jù)挖掘算法,然后,利用weka的接口將所編制的數(shù)據(jù)挖掘算法集成到weka軟件中。
利用weka軟件實現(xiàn)數(shù)據(jù)挖掘分析,首先要實現(xiàn)weka與數(shù)據(jù)倉庫的連接,選擇臨床醫(yī)療數(shù)據(jù)倉庫作為數(shù)據(jù)源,將數(shù)據(jù)倉庫中的事實表作為數(shù)據(jù)挖掘的模型表。
weka與數(shù)據(jù)倉庫的連接方法,首先用解壓軟件打開Weka3.6的安裝目錄下的weka.jar文件,在 weka.jar/weka/experiment目錄下找到DatabaseUtils.props.mssqlserver文件,并替換原來的DatabaseUtil.props文件,然后修改此文件中的jdbcURL,設(shè)置服務(wù)器和數(shù)據(jù)庫名,并將數(shù)據(jù)庫中的數(shù)據(jù)類型設(shè)置為對應(yīng)的weka僅支持的分類型(nominal)、數(shù)值型(numeric)、字符串型(string)和日期(date)型。然后重新打包 weka.jar,并替換原來同名文件。設(shè)置環(huán)境變量,將SQL Server2008的數(shù)據(jù)庫驅(qū)動程序sqljdbc4.jar加入到classpath變量中。
在完成數(shù)據(jù)庫連接,打開數(shù)據(jù)表后,在weka數(shù)據(jù)挖掘工作平臺上選擇數(shù)據(jù)挖掘技術(shù)方法,如選擇決策樹算法進(jìn)行胃癌臨床醫(yī)療數(shù)據(jù)分析。在選擇了輸入和預(yù)測列后,通過選擇決策樹中的某一種算法,就可在weka數(shù)據(jù)挖掘工作平臺上展示出數(shù)據(jù)挖掘結(jié)果。還可將測試集導(dǎo)入挖掘模型中,進(jìn)行模型的訓(xùn)練和測試,并對數(shù)據(jù)挖掘模型評估、預(yù)測。
在臨床醫(yī)療數(shù)據(jù)分析系統(tǒng)中,數(shù)據(jù)分析模型的變量會因所分析的對象不同而發(fā)現(xiàn)變化,為了使醫(yī)療數(shù)據(jù)分析系統(tǒng)具有擴展性和靈活性,設(shè)計元數(shù)據(jù)庫和元數(shù)據(jù)管理項目。
第一部分是對數(shù)據(jù)抽取、轉(zhuǎn)換、加載模塊中的數(shù)據(jù)進(jìn)行管理。為實現(xiàn)這項管理功能,在元數(shù)據(jù)庫設(shè)計中包括數(shù)據(jù)源信息表、目標(biāo)數(shù)據(jù)源信息表、數(shù)據(jù)源與目標(biāo)數(shù)據(jù)源之間映射關(guān)系信息表和數(shù)據(jù)轉(zhuǎn)換規(guī)則信息表等。其中數(shù)據(jù)源信息表和目標(biāo)數(shù)據(jù)源信息表用于保存數(shù)據(jù)文件編號、文件類型、文件名稱和文件所在位置(目錄)等[7]。
第二部分是對數(shù)據(jù)倉庫中事實表和維表中數(shù)據(jù)進(jìn)行管理。因為在對不同疾病的臨床醫(yī)療數(shù)據(jù)進(jìn)行分析時,數(shù)據(jù)分析模型所定義的變量個數(shù)是不同的,因此,通過元數(shù)據(jù)管理實現(xiàn)對數(shù)據(jù)倉庫中事實表和維表中屬性的動態(tài)管理,由事實表的元數(shù)據(jù)表決定事實表的屬性和維表個數(shù)及屬性。
通過元數(shù)據(jù)管理可以實現(xiàn)由醫(yī)務(wù)人員根據(jù)醫(yī)學(xué)分析的需要,自行選取數(shù)據(jù)分析模型中的變量,構(gòu)建不同的訓(xùn)練數(shù)據(jù)集進(jìn)行醫(yī)學(xué)分析。利用這種方法使臨床醫(yī)療數(shù)據(jù)分析系統(tǒng)應(yīng)用更加靈活。
以文獻(xiàn)[8]中所提供的胃癌術(shù)后復(fù)發(fā)數(shù)據(jù)集為例,并將此數(shù)據(jù)集作為不同數(shù)據(jù)源,測試加載到數(shù)據(jù)倉庫中,采用myEclipse作為開發(fā)工具,weka作為數(shù)據(jù)挖掘工作平臺,連接數(shù)據(jù)倉庫,讀取數(shù)據(jù)挖掘的模型表,選擇決策中的M5P算法,對胃癌臨床醫(yī)療進(jìn)行分析,結(jié)果如圖3所示。
由此可見,胃癌術(shù)后復(fù)發(fā)危險因素有胃切除、家族遺傳和術(shù)后化療。

圖3 胃癌臨床醫(yī)療數(shù)據(jù)分析結(jié)果
通過構(gòu)建基于數(shù)據(jù)挖掘的臨床醫(yī)療數(shù)據(jù)分析系統(tǒng),并將之應(yīng)用于胃癌術(shù)后復(fù)發(fā)的危險因素分析,從中發(fā)現(xiàn)與疾病有關(guān)的危險因素,實現(xiàn)了對疾病危險因素篩選分析。同時,通過構(gòu)建元數(shù)據(jù)管理,使數(shù)據(jù)挖掘系統(tǒng)具有很好的擴展性和靈活性。通過此系統(tǒng)與醫(yī)院信息系統(tǒng)的接口,可以方便從醫(yī)院信息系統(tǒng)直接提取數(shù)據(jù),并可實現(xiàn)由醫(yī)務(wù)人員根據(jù)醫(yī)學(xué)分析的需要自行選取數(shù)據(jù),進(jìn)行數(shù)據(jù)分析研究的功能。隨著臨床醫(yī)療數(shù)據(jù)的不斷增加,利用數(shù)據(jù)挖掘技術(shù)對醫(yī)院信息系統(tǒng)中疾病的臨床診斷、治療和預(yù)后情況進(jìn)行數(shù)據(jù)分析等諸多研究將會被日益重視并廣泛應(yīng)用。
[1]Jiawei Han,Micheline Kamber.數(shù)據(jù)挖掘概念與技術(shù)[M].范明,孟小峰,譯.北京:機械工業(yè)出版社,2007:199-200.
[2]于長春,賀佳,范思昌.數(shù)據(jù)挖掘技術(shù)在醫(yī)學(xué)領(lǐng)域中的應(yīng)用[J].第二軍醫(yī)大學(xué)學(xué)報,2003,24(11):1250-1252.
[3]劉昆,劉業(yè)政.基于決策樹的醫(yī)療數(shù)據(jù)分析[J].計算機工程,2002,28(2):41-43.
[4]章兢,張小剛.數(shù)據(jù)挖掘算法及其工程應(yīng)用[M].北京:機械工業(yè)出版社,2006:37,69-73.
[5]徐剛,袁兆康.數(shù)據(jù)挖掘及其在醫(yī)學(xué)領(lǐng)域中的應(yīng)用和展望[J].實用臨床醫(yī)學(xué),2006,7(11):196-198.
[6]紀(jì)希禹.數(shù)據(jù)挖掘技術(shù)應(yīng)用實例[M].北京:機械工業(yè)出版社,2009.
[7]鄭丹青.基于元數(shù)據(jù)的數(shù)據(jù)倉庫ETL系統(tǒng)設(shè)計與研究[J].吉林師范大學(xué)學(xué)報,2010,31(2):43-45.
[8]王彤.醫(yī)學(xué)統(tǒng)計學(xué)與SPSS軟件應(yīng)用[M].北京:北京大學(xué)醫(yī)學(xué)出版社,2008.