石 惠
(安徽水利水電職業(yè)技術(shù)學(xué)院,安徽 合肥 231603)
醫(yī)生在對患者病情進(jìn)行判斷時,不僅要依靠先進(jìn)的醫(yī)療技術(shù),還需要依賴豐富的經(jīng)驗。這些經(jīng)驗是從平時大量的診斷中積累的。一方面,所有醫(yī)生經(jīng)驗的積累并不平均,而且有些疾病發(fā)病的幾率高,有些則相對較低,在一些發(fā)病幾率比較小的疾病判斷上,就比較容易出現(xiàn)偏差,或者無從判斷。另一方面,擁有再豐富的經(jīng)驗的醫(yī)生也只是依靠主觀上的判斷。因此,在醫(yī)院對就診病人的病情判斷中,帶著主觀意識,沒有科學(xué)的去衡量各種因素對疾病的影響,是一種被動的診斷。利用數(shù)據(jù)挖掘技術(shù),把醫(yī)院病案的歷史數(shù)據(jù)重新利用起來并加以分析,獲得潛在的規(guī)律和有價值的知識,并提供給醫(yī)療工作者。相應(yīng)科室的醫(yī)生在判斷病情時會更加科學(xué)合理,也使得醫(yī)生的判斷更準(zhǔn)確,還可以更進(jìn)一步建立醫(yī)患間的互信,改善當(dāng)前相當(dāng)緊張的醫(yī)患關(guān)系。
數(shù)據(jù)挖掘又可稱為數(shù)據(jù)庫中的知識發(fā)現(xiàn)(KDD),就是從大量的無序數(shù)據(jù)中進(jìn)行有目的的分析,獲取有價值的模式或規(guī)律,“挖掘”一詞便由此而來。由于數(shù)據(jù)挖掘是KDD過程中最為關(guān)鍵的步驟,在實踐應(yīng)用中“數(shù)據(jù)挖掘”已被廣泛接受,因此,數(shù)據(jù)挖掘和KDD這兩個術(shù)語在實際應(yīng)用中往往不加以區(qū)分。
WEKA的全名是懷卡托智能分析環(huán)境,是一款免費的,非商業(yè)化的,基于Java環(huán)境下開源的機器學(xué)習(xí)(Machine Learning)以及數(shù)據(jù)挖掘(Data Mining)軟件。它集成了多種機器學(xué)習(xí)算法,主要包括數(shù)據(jù)預(yù)處理、分類、聚類、回歸、關(guān)聯(lián)規(guī)則和在新的交互式界面上的可視化等。
數(shù)據(jù)關(guān)聯(lián)是數(shù)據(jù)庫中存在的一類重要的可被發(fā)現(xiàn)并且有用的知識,反映單個事件和其他事件之間的依賴和關(guān)聯(lián)。假如2項或多項屬性之間存在著關(guān)聯(lián),那么其中1項的屬性值就可以根據(jù)其他屬性值來進(jìn)行預(yù)測。例如在候車大廳里買方便面的顧客中90%還會買火腿腸,這就是一條關(guān)聯(lián)規(guī)則。那么在候車大廳超市中就可以將這2種物品靠近擺放,能促進(jìn)銷售。
關(guān)聯(lián)規(guī)則挖掘是數(shù)據(jù)挖掘領(lǐng)域中的重要課題之一。關(guān)聯(lián)規(guī)則挖掘普遍使用支持度和置信度衡量機制。一般地,關(guān)聯(lián)規(guī)則挖掘問題可分成2步:發(fā)現(xiàn)頻繁項目集和生成關(guān)聯(lián)規(guī)則。1994年Agrawal等提出了一個算法稱為Apriori算法,作為經(jīng)典的關(guān)聯(lián)規(guī)則挖掘算法被引用。
基于骨科病案數(shù)據(jù),運用weka進(jìn)行數(shù)據(jù)挖掘。在收集了某醫(yī)院骨科住院病案的數(shù)據(jù)后,再進(jìn)行進(jìn)一步地統(tǒng)計、匯總和分析,然后用weka工具進(jìn)行預(yù)處理以便使數(shù)據(jù)能進(jìn)行關(guān)聯(lián)規(guī)則挖掘,最后再進(jìn)行關(guān)聯(lián)規(guī)則的挖掘。
數(shù)據(jù)收集是數(shù)據(jù)挖掘的首要環(huán)節(jié),也是數(shù)據(jù)挖掘的必要步驟。于是首先得收集原始數(shù)據(jù),本次收集的數(shù)據(jù)是某醫(yī)院骨科6年來住院病案的相關(guān)數(shù)據(jù),共有956條,如表1所列。
表1 骨科住院病案信息登記表
數(shù)據(jù)表中有病案號、姓名、性別、年齡、入院日期、出院日期、(住院)天數(shù)、出院主診斷(即疾病名稱)、ICD(國際疾病編碼)、轉(zhuǎn)歸(治療結(jié)果)、(是否)手術(shù)、住院費用共12個屬性。
隨著數(shù)據(jù)量的逐漸增多和迅速膨脹,原始數(shù)據(jù)中存在噪聲、不完整和不一致的數(shù)據(jù)也越來越多。在數(shù)據(jù)挖掘前需對原始數(shù)據(jù)進(jìn)行預(yù)處理,主要步驟為數(shù)據(jù)清理、數(shù)據(jù)集成、數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)選擇。
(1)數(shù)據(jù)清理。從現(xiàn)有的數(shù)據(jù)表中看,數(shù)據(jù)表中已有的各項數(shù)據(jù)值比較完整,有些數(shù)據(jù)項的值不全,但不影響數(shù)據(jù)挖掘結(jié)果,所以不需要填補空缺值。數(shù)據(jù)的來源單一,所以沒有不一致的數(shù)據(jù)。數(shù)據(jù)表中對挖掘結(jié)果產(chǎn)生影響符合以下3種情形的病案數(shù)據(jù)均要刪除:死亡類數(shù)據(jù);未痊愈或好轉(zhuǎn)住院期間中途進(jìn)行轉(zhuǎn)院或者轉(zhuǎn)科類數(shù)據(jù);未痊愈或好轉(zhuǎn)住院期間中途因其他原因強行出院類數(shù)據(jù)。
另外,對于有些屬性值空缺會影響到挖掘結(jié)果的數(shù)據(jù)項,如疾病名稱,也要刪除。經(jīng)過數(shù)據(jù)清理后,最終獲得的數(shù)據(jù)集共有748條數(shù)據(jù)。
(2)數(shù)據(jù)集成。原數(shù)據(jù)的數(shù)據(jù)表是一個獨立的數(shù)據(jù)源,在此無須進(jìn)行數(shù)據(jù)集成。
(3)數(shù)據(jù)轉(zhuǎn)換。對海量數(shù)據(jù)進(jìn)行復(fù)雜的數(shù)據(jù)分析和挖掘?qū)⑿枰荛L時間,使得這種分析不現(xiàn)實或不可行。數(shù)據(jù)轉(zhuǎn)換是將數(shù)據(jù)轉(zhuǎn)換或歸并成一個適合數(shù)據(jù)挖掘的數(shù)據(jù)形式。本數(shù)據(jù)表經(jīng)數(shù)據(jù)清理后,有2個屬性需要進(jìn)行轉(zhuǎn)換。描述如下:對數(shù)值型數(shù)據(jù)進(jìn)行離散化。對所使用的數(shù)據(jù)的分析以及與骨科醫(yī)生的不斷溝通,首先按照骨科住院病案的特點把住院天數(shù)屬性值劃分為2個區(qū)間,一般短期住院在28天以內(nèi)(包括28天),超過28天的為長期住院,其所對應(yīng)的具體屬性值為(0-28]和(28-inf)。
通過與經(jīng)驗豐富的骨科醫(yī)生溝通,并依據(jù)取值結(jié)果來看比較接近自然值,將年齡屬性值劃分為3個區(qū)間,即劃分成3個區(qū)間,即小于等于35歲的,介于35到68歲之間,大于68歲的。對數(shù)據(jù)進(jìn)行泛化處理。分析表1的數(shù)據(jù),其中ICD這個屬性共有206個屬性值,如果直接以此來劃分疾病類別,則會導(dǎo)致每種疾病的支持度過低,不利于數(shù)據(jù)挖掘結(jié)果。數(shù)據(jù)表中的出院主診斷屬性值為疾病的中文名稱,通過查閱資料并與骨科醫(yī)生討論分析,再結(jié)合表1數(shù)據(jù)表中的此屬性具體取值,用以下步驟對其進(jìn)行數(shù)據(jù)處理:出院主診斷屬性的取值按醫(yī)院診斷骨科疾病時的分類來分,分成創(chuàng)傷、脊柱外科、關(guān)節(jié)外科、手外科、顯微外科、骨腫瘤、小兒骨科和常見骨疾病。再根據(jù)每個類的支持度,將那些支持度過小影響挖掘結(jié)果的類向上合并,將那些支持度過大的類再進(jìn)行劃分。最終將數(shù)據(jù)表中所有疾病名稱劃分成12類,即12個屬性值,并且為方便計,先將這個類別名稱改名為易于理解的疾病名稱(DN),將長疾病名稱簡化成英文縮寫,其他數(shù)據(jù)項及屬性值為了保持一致也全部轉(zhuǎn)化為英文來表示。經(jīng)過數(shù)據(jù)轉(zhuǎn)換后的屬性取值如表2所列。
表2 部分屬性取值
(4)數(shù)據(jù)選擇。查看數(shù)據(jù)表,對于數(shù)據(jù)挖掘無用的數(shù)據(jù)項如病案號和姓名這2個數(shù)據(jù)項進(jìn)行刪除;因為有了(住院)天數(shù)這個數(shù)據(jù)項,入院日期和出院日期這2個數(shù)據(jù)項就可以刪除了;出院主診斷和ICD相互重復(fù),所以將ICD數(shù)據(jù)項刪除;因為影響住院費用的因素和所使用的藥品及使用的藥用器材等密切有關(guān),在數(shù)據(jù)表中沒有這些相關(guān)的數(shù)據(jù)信息,這會影響到數(shù)據(jù)挖掘的結(jié)果,所以對住院費用數(shù)據(jù)項也進(jìn)行刪除。經(jīng)過數(shù)據(jù)清洗、數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)消減后的數(shù)據(jù)表如表3所列。
表3 整理后的數(shù)據(jù)表
選擇weka中的Associate,采用Apriori算法,設(shè)置置信度參數(shù)最小值為0.9。得到的規(guī)則如下:
從以上關(guān)聯(lián)規(guī)則可以看出,普通的骨病、創(chuàng)傷類和上肢骨折類等疾病的病人住院時間為28天以內(nèi)。關(guān)聯(lián)規(guī)則是針對多屬性的,當(dāng)我們收集到更多的可能具有某種關(guān)聯(lián)的數(shù)據(jù)時,獲得的關(guān)聯(lián)規(guī)則會更具價值。
本文通過對某醫(yī)院骨科病案數(shù)據(jù)的整理分析,并利用weka軟件進(jìn)行數(shù)據(jù)挖掘,獲得了數(shù)據(jù)間的關(guān)聯(lián),找出了某些因素間的隱含關(guān)系,可為骨科醫(yī)生對住院病人的病情判斷提供理論上的支持。
[1]Jiawei Han,Micheline Kamber.數(shù)據(jù)挖掘概念與技術(shù)[M].范明,孟小峰譯.北京:機械工業(yè)出版社,2007.
[2]Fan Jianhua and Li Deyi.An overview of Data Mining and Knowledge Discovery[J].Comput.Sci&Technol,1998(4):348-369.
[3]David Hand.數(shù)據(jù)挖掘原理[M].張銀奎譯.北京:機械工業(yè)出版社,2003.
[4]文 拯,梁建武,陳 英.關(guān)聯(lián)規(guī)則算法的研究[J].計算機技術(shù)與發(fā)展,2009(5):56-59.