孔明霞 韓文英 王龍
摘 要:計算機技術在醫學領域的應用越來越引起人們的重視,數據挖掘是其中新興的熱門學科,應用在醫療系統中可以處理已經積累起來的病人資料數據庫中大量的歷史數據,利用已有的這些信息,通過各種技術和方法找出其中蘊涵的、先前未知的,但非常有用的規則或模式,即找出新的病因或發現新的治療方法。也就是說數據挖掘的目的是要發現新的知識,這些新知識必將促進醫療事業的發展。 本文介紹了數據挖掘的概念、主要的技術方法及其實施步驟,以及該技術在醫療信息系統中的應用。
關鍵詞:數據挖掘;關聯規則;分類規則;臨床信息系統(CIS)
1 數據挖掘技術概述
1) 概念[1]
數據挖掘(Data Mining),又稱數據庫中的知識發現(Knowledge Discovery in Database, KDD),是指從大型數據庫或數據倉庫中提取隱含的、未知的、非平凡的及有潛在應用價值的信息或模式,它是數據庫研究中的一個很有應用價值的新領域,融合了數據庫、人工智能、機器學習、統計學等多個領域的理論和技術。數據挖掘工具能夠對將來的趨勢和行為進行預測,從而很好地支持人們的決策。
2) 數據挖掘的技術方法
數據挖掘的技術主要有關聯分析、序列模式分析、分類分析、聚類分析、統計分析、基于模糊集合的分析、基于神經網絡的分析等等。
●關聯分析法:利用關聯規則進行數據挖掘,其目的是挖掘隱藏在數據間的相互關系,它能發現數據庫中形如"90%的顧客在一次購買活動中購買商品A的同時購買商品B"之類的知識。采用關聯分析法可以從醫療信息系統(如CIS)的數據庫或為此建立的數據倉庫、數據集市的細節或事務中尋找出重新出現概率很高的模式。即從CIS的數據庫中分析某種疾病治療過程中誘發其他疾病的概率以及與時間的關系等[3]。
●序列模式分析法:與關聯分析相似,其目的也是為了挖掘數據之間的聯系,但其側重點在于分析數據間的前后序列關系。它能發現數據庫中形如"在某一段時間內,顧客購買商品A,接著購買商品B,而后購買商品C,即序列A→B→C出現的頻度較高"之類的知識。
●分類分析法:設有一個數據庫和一組具有不同特征的類別(標記),該數據庫中的每一個記錄都賦予一個類別的標記,這樣的數據庫稱為示例數據庫或訓練集。分類分析就是通過分析示例數據庫中的數據,為每個類別做出準確的描述或建立分析模型或挖掘出分類規則,然后用這個分類規則對其它數據庫中的記錄進行分類。目前已有多種分類分析模型得到應用,其中幾種典型模型是線性回歸模型、決策樹模型、基本規則模型和神經網絡模型。
●聚類分析法:通過分析數據庫中的記錄數據,根據一定的分類規則,合理地劃分記錄集合,確定每個記錄所在類別。它所采用的分類規則是由聚類分析工具決定的。聚類分析的方法很多,其中包括系統聚類法、分解法、加入法、動態聚類法、模糊聚類法、運籌方法等。采用不同的聚類方法,對于相同的記錄集合可能有不同的劃分結果。
2數據挖掘的實施步驟
數據挖掘是一個利用各種分析工具在海量數據中發現模型和數據間關系的過程,它是一個交互式的迭代過程。主要包括以下實施步驟[2]:
1)取得數據源
數據挖掘最理想的數據源是數據倉庫。數據倉庫由來自多個數據庫的數據組成,并消除他們之間的不一致。如數據倉庫不可得,則要從各個數據庫中取得數據。數據挖掘有時還需要對原有數據庫進行改造以得到可用的數據源,例如延長歷史的保留期等。
2)數據預處理
這包括消除來自不同數據庫甚至不同類型計算機數據表示的不一致,在數據中加入新的數據項(例如對原有數據項進行有意義的數學計算而得到新的數據項),以發現更多的規律,將數據分為訓練集和測試集等方面。
3) 構造和訓練模型
這個步驟依賴于具體的數據挖掘方法。常用的方法有規則歸納、決策樹、遺傳算法、人工神經網絡、粗集方法、鄰近搜索方法、模糊邏輯、可視化技術等。
4) 評價模型
用測試數據集來測試模型以估計模型的正確率。最后一步是驗證模型,比如通過對病人診療數據分析后得到一個模型,不管它與歷史數據多么吻合,在進行臨床使用前,都必須首先進行臨床試驗。
3 數據挖掘技術在醫療信息系統中的應用
下面以序列模式分析法為例,介紹了數據挖掘技術在醫療中的重要作用。
給定一個病人就診數據庫D,每條就診記錄包含進行該就診的病人標識、就診時間和診斷出的疾病數據項。數據項集是數據項的非空集合,序列是數據項集的有序集。
設Sa=〈A1,A2,…,AK〉,Sb=〈B1,B2,…,Bn〉是兩個序列,如果存在整數1≤i 一個病人在一段時間內進行的所有診斷可看作一個序列:S=〈item set(T1), item set(T2),…, item set(Tn)〉,其中item set(Ti)表示診斷Ti診斷出的疾病集,序列中的元素是按診斷時間排列的,這樣一個序列叫這個病人的病人序列。 如果一個序列S包含在一個病人的病人序列中,則稱這個病人序列支持序列S。在一個診斷數據庫中,一個序列的支持度是支持這個序列的病人數占全部診斷病人數的比例。 對一個診斷數據庫D,挖掘序列模式的任務就是在D中找出所有的最大序列,這些序列滿足用戶指定的最小支持度,這樣的一個序列叫做序列模式。具有最小支持度的序列叫頻繁序列。 在診斷數據庫D中挖掘序列模式是先將D轉換為病人序列庫Q,然后通過對Q多次掃描找出各個長度的頻繁序列,序列的長度指序列包含項的個數。如果用戶指定的最小支持度為37%(即有兩個病人支持),則挖掘的序列模式如下: S1=〈{1003},{1009}〉和S2=〈{1003},{1004,1007}〉。 這樣對醫院的就診數據庫進行一些必要的預處理,選取一類病情,然后利用挖掘序列模式的算法,挖掘滿足支持度限制的序列模式,就可以發現一些病情的發展模式,從而有針對性的預防某些疾病的發生,同時給病人一些實際數據的說明,使病人高度重視某些疾病,防止病情進一步發展。 4 結束語 本文通過舉例介紹了數據挖掘技術在醫療系統中的應用,通過醫學領域的專業知識和數據挖掘技術的結合,收集大量穩定、可靠的醫療數據,反復實踐,不斷提高挖掘知識的質量,合理應用,必將對醫學研究、疾病診斷和治療起到重要的促進作用。 參考文獻: [1]屈竟輝,醫學信息數據庫的建立與數據挖掘,第四軍醫大學學報,2001年第22期。 [2]付階輝,趙林度,數據挖掘技術在HIS中的應用,東南大學學報,2002年10月。 [3]顏延,秦興彬,樊建平,王磊,醫療健康大數據研究綜述,科研信息化技術與應用,2014(06) [4]王淑,陳敏,于廣軍,舒林華,基于數據挖掘技術的典型兒童呼吸道感染性疾病臨床決策支持系統研究,中國數字醫學,2015(12) [5]于婷,大數據時代的數據挖掘技術與應用,通訊世界,2018年12月。