石 惠
(安徽水利水電職業技術學院,安徽 合肥 231603)
醫生在對患者病情進行判斷時,不僅要依靠先進的醫療技術,還需要依賴豐富的經驗。這些經驗是從平時大量的診斷中積累的。一方面,所有醫生經驗的積累并不平均,而且有些疾病發病的幾率高,有些則相對較低,在一些發病幾率比較小的疾病判斷上,就比較容易出現偏差,或者無從判斷。另一方面,擁有再豐富的經驗的醫生也只是依靠主觀上的判斷。因此,在醫院對就診病人的病情判斷中,帶著主觀意識,沒有科學的去衡量各種因素對疾病的影響,是一種被動的診斷。利用數據挖掘技術,把醫院病案的歷史數據重新利用起來并加以分析,獲得潛在的規律和有價值的知識,并提供給醫療工作者。相應科室的醫生在判斷病情時會更加科學合理,也使得醫生的判斷更準確,還可以更進一步建立醫患間的互信,改善當前相當緊張的醫患關系。
數據挖掘又可稱為數據庫中的知識發現(KDD),就是從大量的無序數據中進行有目的的分析,獲取有價值的模式或規律,“挖掘”一詞便由此而來。由于數據挖掘是KDD過程中最為關鍵的步驟,在實踐應用中“數據挖掘”已被廣泛接受,因此,數據挖掘和KDD這兩個術語在實際應用中往往不加以區分。
WEKA的全名是懷卡托智能分析環境,是一款免費的,非商業化的,基于Java環境下開源的機器學習(Machine Learning)以及數據挖掘(Data Mining)軟件。它集成了多種機器學習算法,主要包括數據預處理、分類、聚類、回歸、關聯規則和在新的交互式界面上的可視化等。
數據關聯是數據庫中存在的一類重要的可被發現并且有用的知識,反映單個事件和其他事件之間的依賴和關聯。假如2項或多項屬性之間存在著關聯,那么其中1項的屬性值就可以根據其他屬性值來進行預測。例如在候車大廳里買方便面的顧客中90%還會買火腿腸,這就是一條關聯規則。那么在候車大廳超市中就可以將這2種物品靠近擺放,能促進銷售。
關聯規則挖掘是數據挖掘領域中的重要課題之一。關聯規則挖掘普遍使用支持度和置信度衡量機制。一般地,關聯規則挖掘問題可分成2步:發現頻繁項目集和生成關聯規則。1994年Agrawal等提出了一個算法稱為Apriori算法,作為經典的關聯規則挖掘算法被引用。
基于骨科病案數據,運用weka進行數據挖掘。在收集了某醫院骨科住院病案的數據后,再進行進一步地統計、匯總和分析,然后用weka工具進行預處理以便使數據能進行關聯規則挖掘,最后再進行關聯規則的挖掘。
數據收集是數據挖掘的首要環節,也是數據挖掘的必要步驟。于是首先得收集原始數據,本次收集的數據是某醫院骨科6年來住院病案的相關數據,共有956條,如表1所列。

表1 骨科住院病案信息登記表
數據表中有病案號、姓名、性別、年齡、入院日期、出院日期、(住院)天數、出院主診斷(即疾病名稱)、ICD(國際疾病編碼)、轉歸(治療結果)、(是否)手術、住院費用共12個屬性。
隨著數據量的逐漸增多和迅速膨脹,原始數據中存在噪聲、不完整和不一致的數據也越來越多。在數據挖掘前需對原始數據進行預處理,主要步驟為數據清理、數據集成、數據轉換和數據選擇。
(1)數據清理。從現有的數據表中看,數據表中已有的各項數據值比較完整,有些數據項的值不全,但不影響數據挖掘結果,所以不需要填補空缺值。數據的來源單一,所以沒有不一致的數據。數據表中對挖掘結果產生影響符合以下3種情形的病案數據均要刪除:死亡類數據;未痊愈或好轉住院期間中途進行轉院或者轉科類數據;未痊愈或好轉住院期間中途因其他原因強行出院類數據。
另外,對于有些屬性值空缺會影響到挖掘結果的數據項,如疾病名稱,也要刪除。經過數據清理后,最終獲得的數據集共有748條數據。
(2)數據集成。原數據的數據表是一個獨立的數據源,在此無須進行數據集成。
(3)數據轉換。對海量數據進行復雜的數據分析和挖掘將需要很長時間,使得這種分析不現實或不可行。數據轉換是將數據轉換或歸并成一個適合數據挖掘的數據形式。本數據表經數據清理后,有2個屬性需要進行轉換。描述如下:對數值型數據進行離散化。對所使用的數據的分析以及與骨科醫生的不斷溝通,首先按照骨科住院病案的特點把住院天數屬性值劃分為2個區間,一般短期住院在28天以內(包括28天),超過28天的為長期住院,其所對應的具體屬性值為(0-28]和(28-inf)。
通過與經驗豐富的骨科醫生溝通,并依據取值結果來看比較接近自然值,將年齡屬性值劃分為3個區間,即劃分成3個區間,即小于等于35歲的,介于35到68歲之間,大于68歲的。對數據進行泛化處理。分析表1的數據,其中ICD這個屬性共有206個屬性值,如果直接以此來劃分疾病類別,則會導致每種疾病的支持度過低,不利于數據挖掘結果。數據表中的出院主診斷屬性值為疾病的中文名稱,通過查閱資料并與骨科醫生討論分析,再結合表1數據表中的此屬性具體取值,用以下步驟對其進行數據處理:出院主診斷屬性的取值按醫院診斷骨科疾病時的分類來分,分成創傷、脊柱外科、關節外科、手外科、顯微外科、骨腫瘤、小兒骨科和常見骨疾病。再根據每個類的支持度,將那些支持度過小影響挖掘結果的類向上合并,將那些支持度過大的類再進行劃分。最終將數據表中所有疾病名稱劃分成12類,即12個屬性值,并且為方便計,先將這個類別名稱改名為易于理解的疾病名稱(DN),將長疾病名稱簡化成英文縮寫,其他數據項及屬性值為了保持一致也全部轉化為英文來表示。經過數據轉換后的屬性取值如表2所列。

表2 部分屬性取值
(4)數據選擇。查看數據表,對于數據挖掘無用的數據項如病案號和姓名這2個數據項進行刪除;因為有了(住院)天數這個數據項,入院日期和出院日期這2個數據項就可以刪除了;出院主診斷和ICD相互重復,所以將ICD數據項刪除;因為影響住院費用的因素和所使用的藥品及使用的藥用器材等密切有關,在數據表中沒有這些相關的數據信息,這會影響到數據挖掘的結果,所以對住院費用數據項也進行刪除。經過數據清洗、數據轉換和數據消減后的數據表如表3所列。

表3 整理后的數據表
選擇weka中的Associate,采用Apriori算法,設置置信度參數最小值為0.9。得到的規則如下:
從以上關聯規則可以看出,普通的骨病、創傷類和上肢骨折類等疾病的病人住院時間為28天以內。關聯規則是針對多屬性的,當我們收集到更多的可能具有某種關聯的數據時,獲得的關聯規則會更具價值。
本文通過對某醫院骨科病案數據的整理分析,并利用weka軟件進行數據挖掘,獲得了數據間的關聯,找出了某些因素間的隱含關系,可為骨科醫生對住院病人的病情判斷提供理論上的支持。
[1]Jiawei Han,Micheline Kamber.數據挖掘概念與技術[M].范明,孟小峰譯.北京:機械工業出版社,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.數據挖掘原理[M].張銀奎譯.北京:機械工業出版社,2003.
[4]文 拯,梁建武,陳 英.關聯規則算法的研究[J].計算機技術與發展,2009(5):56-59.