鄭丹青
(株洲職業(yè)技術(shù)學(xué)院 電子信息工程系,湖南 株洲 412001)
數(shù)據(jù)挖掘是從大量的、不完全的、有噪聲的、模糊的、隨機(jī)的實(shí)際應(yīng)用數(shù)據(jù)中,尋找有意義、有價(jià)值信息的過(guò)程。數(shù)據(jù)挖掘可以應(yīng)用于任何類型的信息儲(chǔ)存庫(kù)(如關(guān)系數(shù)據(jù)庫(kù)、數(shù)據(jù)倉(cāng)庫(kù)、事務(wù)數(shù)據(jù)庫(kù)和高級(jí)數(shù)據(jù)庫(kù)系統(tǒng))以及瞬態(tài)數(shù)據(jù)(如數(shù)據(jù)流)[1]。目前,數(shù)據(jù)挖掘在醫(yī)學(xué)領(lǐng)域的應(yīng)用主要集中在疾病輔助診斷、藥物開(kāi)發(fā)、醫(yī)院信息系統(tǒng)中的應(yīng)用和遺傳學(xué)方面的應(yīng)用等。在疾病診斷方面,如采用貝葉斯學(xué)習(xí)分類方法對(duì)男女患者的圖像進(jìn)行自動(dòng)診斷,將數(shù)據(jù)挖掘用于肝癌遺傳綜合征的自動(dòng)檢測(cè)[2],運(yùn)用決策樹(shù)方法,以醫(yī)院病案室保存的冠狀動(dòng)脈粥樣硬化性心臟?。ê?jiǎn)稱冠心?。┎“钢羞x取了一些數(shù)據(jù)作為挖掘的原始數(shù)據(jù)集進(jìn)行醫(yī)療數(shù)據(jù)分析[3]等。在醫(yī)院信息系統(tǒng)中,利用決策樹(shù)方法進(jìn)行醫(yī)院信息系統(tǒng)挖掘及醫(yī)療政策分析[4]等。
近年來(lái),隨著醫(yī)院信息化建設(shè)的發(fā)展,電子病歷和病案的大量應(yīng)用,醫(yī)療設(shè)備和儀器的數(shù)字化,使得醫(yī)院數(shù)據(jù)庫(kù)系統(tǒng)中積累了大量有關(guān)病人的病史、診斷、檢驗(yàn)和治療的臨床信息,而如何利用數(shù)據(jù)挖掘技術(shù)從醫(yī)院信息系統(tǒng)中抽取、清洗和變換數(shù)據(jù),采用分類、聚類、關(guān)聯(lián)分析等方法構(gòu)建臨床醫(yī)療數(shù)據(jù)分析系統(tǒng)。通過(guò)對(duì)患者資料數(shù)據(jù)庫(kù)中大量歷史數(shù)據(jù)處理、提煉蘊(yùn)含其中的大量有價(jià)值的信息,發(fā)現(xiàn)隱藏的關(guān)系和模式,預(yù)測(cè)未來(lái)的發(fā)展趨勢(shì),已成為醫(yī)院信息化建設(shè)中所需要進(jìn)一步研究的課題。其中,對(duì)疾病的臨床診斷、治療和預(yù)后的關(guān)系研究也是醫(yī)學(xué)科學(xué)研究很重要的方面[5]。
文中將以胃癌術(shù)后復(fù)發(fā)的危險(xiǎn)因素分析為例,探討構(gòu)建基于數(shù)據(jù)挖掘的臨床醫(yī)療數(shù)據(jù)分析系統(tǒng),并運(yùn)用元數(shù)據(jù)管理方法,使用戶可以根據(jù)數(shù)據(jù)分析的需要自行選取數(shù)據(jù)分析模型中的變量,使系統(tǒng)具有靈活性和擴(kuò)展性。
醫(yī)院信息系統(tǒng)包括管理信息系統(tǒng)和臨床信息系統(tǒng)兩部分。其中,臨床信息系統(tǒng)主要處理有關(guān)病人方面的信息,如患者入院、住院、治療、檢查、出院等醫(yī)療信息。而利用數(shù)據(jù)挖掘決策樹(shù)技術(shù),通過(guò)對(duì)醫(yī)院信息系統(tǒng)中疾病的臨床診斷、治療和預(yù)后情況進(jìn)行數(shù)據(jù)分析,可從中發(fā)現(xiàn)影響疾病預(yù)后情況的因素?,F(xiàn)以胃癌術(shù)后復(fù)發(fā)情況的數(shù)據(jù)分析為例,為尋找出胃癌術(shù)后復(fù)發(fā)的危險(xiǎn)因素,構(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)養(yǎng)狀況、術(shù)后化療、是否復(fù)發(fā)等相關(guān)信息作為數(shù)據(jù)挖掘項(xiàng)目的變量,這些變量數(shù)據(jù)類型及取值范圍見(jiàn)表1。
表1 定義數(shù)據(jù)分析模型的變量
其次從業(yè)務(wù)數(shù)據(jù)庫(kù)中抽取數(shù)據(jù),經(jīng)過(guò)數(shù)據(jù)預(yù)處理,去掉與決策無(wú)關(guān)的屬性,處理含空缺值的屬性,形成決策樹(shù)的訓(xùn)練數(shù)據(jù)集見(jiàn)表2。
表2 胃癌術(shù)后復(fù)發(fā)訓(xùn)練數(shù)據(jù)集(部分)
其中選取是否復(fù)發(fā)作為目標(biāo)屬性,建立一棵決策樹(shù),以進(jìn)行胃癌術(shù)后復(fù)發(fā)的危險(xiǎn)因素分析。
胃癌術(shù)后復(fù)發(fā)數(shù)據(jù)倉(cāng)庫(kù)分為年齡、胃切除、家族遺傳、營(yíng)養(yǎng)狀況、術(shù)后化療、是否復(fù)發(fā)6個(gè)維表和一個(gè)事實(shí)表,數(shù)據(jù)倉(cāng)庫(kù)模型如圖2所示。
圖2 數(shù)據(jù)倉(cāng)庫(kù)模型
然后,根據(jù)表1和表2所示數(shù)據(jù),利用SQL SERVER 2008創(chuàng)建臨床醫(yī)療數(shù)據(jù)倉(cāng)庫(kù)。
數(shù)據(jù)挖掘平臺(tái)包括數(shù)據(jù)挖掘建模、數(shù)據(jù)挖掘結(jié)果展示和用戶交互界面等。其中,數(shù)據(jù)挖掘建模是數(shù)據(jù)挖掘操作的核心步驟,挖掘建模包括學(xué)習(xí)算法的選擇、算法參數(shù)的確定等[6]。
數(shù)據(jù)挖掘建模采用myEclipse作為開(kāi)發(fā)工具,weka作為數(shù)據(jù)挖掘工作平臺(tái)。一方面利用weka軟件所集合的能承擔(dān)數(shù)據(jù)挖掘任務(wù)的機(jī)器學(xué)習(xí)算法,包括對(duì)數(shù)據(jù)進(jìn)行預(yù)處理、分類、回歸、聚類、關(guān)聯(lián)規(guī)則等實(shí)現(xiàn)數(shù)據(jù)挖掘建模;另一方面采用myEclipse作為開(kāi)發(fā)工具,運(yùn)用Java語(yǔ)言開(kāi)發(fā)設(shè)計(jì)數(shù)據(jù)挖掘算法,然后,利用weka的接口將所編制的數(shù)據(jù)挖掘算法集成到weka軟件中。
利用weka軟件實(shí)現(xiàn)數(shù)據(jù)挖掘分析,首先要實(shí)現(xiàn)weka與數(shù)據(jù)倉(cāng)庫(kù)的連接,選擇臨床醫(yī)療數(shù)據(jù)倉(cāng)庫(kù)作為數(shù)據(jù)源,將數(shù)據(jù)倉(cāng)庫(kù)中的事實(shí)表作為數(shù)據(jù)挖掘的模型表。
weka與數(shù)據(jù)倉(cāng)庫(kù)的連接方法,首先用解壓軟件打開(kāi)Weka3.6的安裝目錄下的weka.jar文件,在 weka.jar/weka/experiment目錄下找到DatabaseUtils.props.mssqlserver文件,并替換原來(lái)的DatabaseUtil.props文件,然后修改此文件中的jdbcURL,設(shè)置服務(wù)器和數(shù)據(jù)庫(kù)名,并將數(shù)據(jù)庫(kù)中的數(shù)據(jù)類型設(shè)置為對(duì)應(yīng)的weka僅支持的分類型(nominal)、數(shù)值型(numeric)、字符串型(string)和日期(date)型。然后重新打包 weka.jar,并替換原來(lái)同名文件。設(shè)置環(huán)境變量,將SQL Server2008的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序sqljdbc4.jar加入到classpath變量中。
在完成數(shù)據(jù)庫(kù)連接,打開(kāi)數(shù)據(jù)表后,在weka數(shù)據(jù)挖掘工作平臺(tái)上選擇數(shù)據(jù)挖掘技術(shù)方法,如選擇決策樹(shù)算法進(jìn)行胃癌臨床醫(yī)療數(shù)據(jù)分析。在選擇了輸入和預(yù)測(cè)列后,通過(guò)選擇決策樹(shù)中的某一種算法,就可在weka數(shù)據(jù)挖掘工作平臺(tái)上展示出數(shù)據(jù)挖掘結(jié)果。還可將測(cè)試集導(dǎo)入挖掘模型中,進(jìn)行模型的訓(xùn)練和測(cè)試,并對(duì)數(shù)據(jù)挖掘模型評(píng)估、預(yù)測(cè)。
在臨床醫(yī)療數(shù)據(jù)分析系統(tǒng)中,數(shù)據(jù)分析模型的變量會(huì)因所分析的對(duì)象不同而發(fā)現(xiàn)變化,為了使醫(yī)療數(shù)據(jù)分析系統(tǒng)具有擴(kuò)展性和靈活性,設(shè)計(jì)元數(shù)據(jù)庫(kù)和元數(shù)據(jù)管理項(xiàng)目。
第一部分是對(duì)數(shù)據(jù)抽取、轉(zhuǎn)換、加載模塊中的數(shù)據(jù)進(jìn)行管理。為實(shí)現(xiàn)這項(xiàng)管理功能,在元數(shù)據(jù)庫(kù)設(shè)計(jì)中包括數(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ù)文件編號(hào)、文件類型、文件名稱和文件所在位置(目錄)等[7]。
第二部分是對(duì)數(shù)據(jù)倉(cāng)庫(kù)中事實(shí)表和維表中數(shù)據(jù)進(jìn)行管理。因?yàn)樵趯?duì)不同疾病的臨床醫(yī)療數(shù)據(jù)進(jìn)行分析時(shí),數(shù)據(jù)分析模型所定義的變量個(gè)數(shù)是不同的,因此,通過(guò)元數(shù)據(jù)管理實(shí)現(xiàn)對(duì)數(shù)據(jù)倉(cāng)庫(kù)中事實(shí)表和維表中屬性的動(dòng)態(tài)管理,由事實(shí)表的元數(shù)據(jù)表決定事實(shí)表的屬性和維表個(gè)數(shù)及屬性。
通過(guò)元數(shù)據(jù)管理可以實(shí)現(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ù)源,測(cè)試加載到數(shù)據(jù)倉(cāng)庫(kù)中,采用myEclipse作為開(kāi)發(fā)工具,weka作為數(shù)據(jù)挖掘工作平臺(tái),連接數(shù)據(jù)倉(cāng)庫(kù),讀取數(shù)據(jù)挖掘的模型表,選擇決策中的M5P算法,對(duì)胃癌臨床醫(yī)療進(jìn)行分析,結(jié)果如圖3所示。
由此可見(jiàn),胃癌術(shù)后復(fù)發(fā)危險(xiǎn)因素有胃切除、家族遺傳和術(shù)后化療。
圖3 胃癌臨床醫(yī)療數(shù)據(jù)分析結(jié)果
通過(guò)構(gòu)建基于數(shù)據(jù)挖掘的臨床醫(yī)療數(shù)據(jù)分析系統(tǒng),并將之應(yīng)用于胃癌術(shù)后復(fù)發(fā)的危險(xiǎn)因素分析,從中發(fā)現(xiàn)與疾病有關(guān)的危險(xiǎn)因素,實(shí)現(xiàn)了對(duì)疾病危險(xiǎn)因素篩選分析。同時(shí),通過(guò)構(gòu)建元數(shù)據(jù)管理,使數(shù)據(jù)挖掘系統(tǒng)具有很好的擴(kuò)展性和靈活性。通過(guò)此系統(tǒng)與醫(yī)院信息系統(tǒng)的接口,可以方便從醫(yī)院信息系統(tǒng)直接提取數(shù)據(jù),并可實(shí)現(xiàn)由醫(yī)務(wù)人員根據(jù)醫(yī)學(xué)分析的需要自行選取數(shù)據(jù),進(jìn)行數(shù)據(jù)分析研究的功能。隨著臨床醫(yī)療數(shù)據(jù)的不斷增加,利用數(shù)據(jù)挖掘技術(shù)對(duì)醫(yī)院信息系統(tǒng)中疾病的臨床診斷、治療和預(yù)后情況進(jìn)行數(shù)據(jù)分析等諸多研究將會(huì)被日益重視并廣泛應(yīng)用。
[1]Jiawei Han,Micheline Kamber.數(shù)據(jù)挖掘概念與技術(shù)[M].范明,孟小峰,譯.北京:機(jī)械工業(yè)出版社,2007:199-200.
[2]于長(zhǎng)春,賀佳,范思昌.數(shù)據(jù)挖掘技術(shù)在醫(yī)學(xué)領(lǐng)域中的應(yīng)用[J].第二軍醫(yī)大學(xué)學(xué)報(bào),2003,24(11):1250-1252.
[3]劉昆,劉業(yè)政.基于決策樹(shù)的醫(yī)療數(shù)據(jù)分析[J].計(jì)算機(jī)工程,2002,28(2):41-43.
[4]章兢,張小剛.數(shù)據(jù)挖掘算法及其工程應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2006:37,69-73.
[5]徐剛,袁兆康.數(shù)據(jù)挖掘及其在醫(yī)學(xué)領(lǐng)域中的應(yīng)用和展望[J].實(shí)用臨床醫(yī)學(xué),2006,7(11):196-198.
[6]紀(jì)希禹.數(shù)據(jù)挖掘技術(shù)應(yīng)用實(shí)例[M].北京:機(jī)械工業(yè)出版社,2009.
[7]鄭丹青.基于元數(shù)據(jù)的數(shù)據(jù)倉(cāng)庫(kù)ETL系統(tǒng)設(shè)計(jì)與研究[J].吉林師范大學(xué)學(xué)報(bào),2010,31(2):43-45.
[8]王彤.醫(yī)學(xué)統(tǒng)計(jì)學(xué)與SPSS軟件應(yīng)用[M].北京:北京大學(xué)醫(yī)學(xué)出版社,2008.