王 星,劉曉燕
(1.昆明醫(yī)科大學第一附屬醫(yī)院 昆明 650000;2.昆明理工大學 信息工程于自動化學院,昆明 650000)
醫(yī)療診斷是就醫(yī)過程中的一個重要環(huán)節(jié),除通過儀器的檢驗、檢查外,日常醫(yī)療診斷很大程度是一種基于經(jīng)驗的判定方法,通過長期對病例的癥狀分析和經(jīng)驗積累,得出常見疾病的診斷方法,再將該方法應用于新的病例中,根據(jù)新的病例表現(xiàn)出的既有癥狀信息,得到最初的疾病類型判斷。大數(shù)據(jù)指無法使用傳統(tǒng)工具或方法進行分析處理的、具有復雜關系的龐大數(shù)據(jù)集合,需要利用縱向信息對數(shù)據(jù)進行補充分析[1]。醫(yī)療大數(shù)據(jù)是醫(yī)療衛(wèi)生機構產(chǎn)生的一切與生命科學相關的復雜大數(shù)據(jù)[2]。醫(yī)療大數(shù)據(jù)領域中運用的淺層機器學習算法模型有回歸分析、決策樹、基于內(nèi)核的算法、降低維度算法等[3]。在醫(yī)療大數(shù)據(jù)的基礎上,疾病診斷方法可以通過決策樹模型進行表達,并且建模分析,得到數(shù)據(jù)分類模型,用于預測和判定未知數(shù)據(jù)的已知類型。
在機器學習理論中,決策樹是一個預測模型,在一定現(xiàn)有數(shù)據(jù)結論基礎上,基于特征值與對象概率分布規(guī)律,構建決策樹對實例進行分類的方法。決策樹模型很自然地還原了做決策的過程,將復雜的決策過程拆分成了一系列簡單的選擇,因而能直觀地解釋決策的整個過程[4]。它是一種常用的樹形結構分析工具,其中各非葉子節(jié)點代表一個特征值的判定測試,每個葉子節(jié)點表示實例的類別,每個樹形分支表示該類別所有值域上的輸出。使用決策樹進行決策分析時,待分類數(shù)據(jù)從根節(jié)點開始進行特征值判定,并根據(jù)判定值選擇分支,一直到葉子節(jié)點,最終測試數(shù)據(jù)的決策類型就是這種節(jié)點的類別[5]。
醫(yī)療診斷分析中,可同樣使用歷史診斷病例,以此作為數(shù)據(jù)基礎模型,通過病例中的檢查項目數(shù)值作為疾病類型的特征值,對不同特征值的疾病類型概率分布進行分析,建立檢查項目特征與疾病類型的概率預測模型。決策樹在建立時,相關的步驟包括特征選擇、決策樹生成、修剪[6],以下具體論述。
信息論是量化處理信息的分支科學,劃分數(shù)據(jù)的原則是將無序數(shù)據(jù)變得更加有序,劃分數(shù)據(jù)前后信息的變化等同于信息增益?;诟魈卣鬟M行劃分,確定出的信息增益最大特征就對應于最優(yōu)判定選擇[7]。所以特征選擇必須先計算每個特征帶來的信息增益,最優(yōu)特征的信息增益最大。
特征選擇目的在于建立起原始分析數(shù)據(jù)集,原始數(shù)據(jù)集包含特征值和分類結果,普通醫(yī)療檢驗就是特征選擇的實際執(zhí)行過程,每個檢驗指標可作為一個特征值,如:體溫、體表癥狀、各類血液檢驗指標等,分類結果就是該病例的最終疾病診斷。當一類疾病在一個特征值上有明顯分布規(guī)律時,可直接通過該特征值得到病情分類,該特征值就是區(qū)分該類疾病的最優(yōu)特征。原始數(shù)據(jù)集數(shù)據(jù)越大,特征值劃分越精細,得到的決策樹就越茂密,分析結果也就越準確。
信息集合的度量方式稱為香農(nóng)熵,簡稱熵,可將其看作為信息的期望,如果對象可劃分為很多類,則符號xi的信息熵可描述如下:
其中,p(xi)具體表示選擇該類型的概率。
在進行熵值計算時,需要確定出全部類型所有特征值對應的信息期望值,可通過下面公式得到:
其中n為分類數(shù)目,熵值和對象的不確定性存在正相關關系?;跀?shù)據(jù)估計方法確定出的熵就是經(jīng)驗熵。若十個數(shù)據(jù)劃分為兩類:A、B類,A類含四個數(shù)據(jù),則數(shù)據(jù)中A類出現(xiàn)的概率為4/10;另外6個數(shù)據(jù)屬于B類,則出現(xiàn)B類的概率為6/10,這些概率基于已有數(shù)據(jù)統(tǒng)計確定出。定義樣本數(shù)據(jù)中的數(shù)據(jù)就是訓練集D,此集合的經(jīng)驗熵表示為H(D),|D|對應于其樣本容量。為方便分析假設存在K個類CK,k=1,2,….K,|Ck|為屬于類Ck的樣本量,則可通過如下表達式計算出經(jīng)驗熵:
根據(jù)歷史診斷病例描述,通過醫(yī)療數(shù)據(jù)選取出主要疾病的特征描述信息,設定數(shù)據(jù)集D如表1所示。
表1 特征描述信息
樣例中共9個疾病特征,診斷類型有2類,13個病例中,8個診斷為咳嗽病,因此數(shù)據(jù)中咳嗽病出現(xiàn)的概率為8/13,感冒出現(xiàn)的概率為5/13,根據(jù)經(jīng)驗熵計算公式得到數(shù)據(jù)集D的經(jīng)驗熵為:
信息增益含義為特征x的信息確定后,類Y的信息確定性增加的程度。
條件熵H(Y|x)含義為變量x明確情況下,Y的概率值,H(Y|x)對應于x給定后Y的條件概率分布的熵對x的數(shù)學期望:
其中,pi=p(x=xi),在基于數(shù)據(jù)估計確定出熵和條件熵相關概率情況下,以上兩種熵就是經(jīng)驗熵和經(jīng)驗條件熵,此時如果有概率為0,則令
信息增益和特征存在相關性,因而特征A對集D的信息增益g(D,A),可看作為此集合的經(jīng)驗熵H(D)與特征A明確時其經(jīng)驗條件熵H(D|A)的差值[8],具體表示如下所示:
此差值對應于互信息,而決策樹學習中的信息增益可看作為訓練集中類與特征的互信息。
在實際計算中,依據(jù)原始樣本病例得出的經(jīng)驗熵H(D)=0.9612,我們分別計算每個特征所能得到的信息增益,去掉該特征值后的新數(shù)據(jù)集H(D|A)的經(jīng)驗熵,兩者的差異量如表2所示。
表2 差異量
從上表數(shù)據(jù)可以看到,通過咯痰或咽痛兩個特征進行疾病劃分,能更快區(qū)別出病例為咳嗽病或是感冒,因此咯痰或咽痛可作為優(yōu)先判定的特征值,此特征值判定應當作為決策樹的根判定節(jié)點。
信息增益值的大小對于訓練數(shù)據(jù)集而言,不存在絕對意義,在分類難度很大情況下,相應的信息增益值會偏大,相反情況下則偏小,可通過信息增益比而適當?shù)男U?,在特征選擇時一般以此標準進行。
信息增益比:特征A對集D的信息增益比gR(D,A),
可通過益g(D,A)與集D的經(jīng)驗熵比值確定出,具體表達式如下所示:
在得到原始數(shù)據(jù)集后,基于最優(yōu)特征值對數(shù)據(jù)集進行劃分,由于特征值可能為多個,這樣在劃分時,相應的數(shù)據(jù)集也可能超過二個。在初次劃分后,需要將數(shù)據(jù)集傳遞至分叉樹的下一個節(jié)點,然后在這一節(jié)點上,對數(shù)據(jù)進行再次劃分,從而基于遞歸模式對數(shù)據(jù)集進行處理,滿足相關應用要求。
在上一步中,將病例診斷信息分析為特征值集合和分類結果,構建出原始數(shù)據(jù)集,決策樹的生成過程則是醫(yī)療診斷過程,通過醫(yī)生對各個檢驗指標進行經(jīng)驗總結,得到分類結果。
ID3[9]算法生成決策樹,ID3算法的核心是在決策樹各個結點上應用信息增益準則選擇特征,遞歸地構建決策樹[10]。
輸入:訓練集D,特征集A;
輸出:決策樹T。
相應的生成流程如下:
1)若訓練集合D中全部實例都被劃分為類別CK,這種情況下設置T為單節(jié)點樹,并將Ck當做此節(jié)點的類別,返回T;
2)如果A=Ф,則置T為單節(jié)點樹,而此節(jié)點的類別對應于D中實例最大的類Ck,然后返回T;
3)相反情況下基于信息增益比表達式確定出A中各特征對D的信息增益比,對所得結果進行對比確定出此值最大的特征Ag;
4)對節(jié)點i,以Di為訓練集,以A-Ag為特征集,基于以上方法進行遞歸分析,而確定出子樹Ti,結束后返回Ti。
對全部劃分數(shù)據(jù)集的屬性進行遍歷后,各分支對應的全部實例相關的分類相同,在全部的實例對應的分類都一致情況下,確定出一個葉子節(jié)點或終止塊,任何達到葉子節(jié)點的數(shù)據(jù)必然屬于葉子節(jié)點的分類[11]。
決策樹生成算法遞歸確定出決策樹,一直到滿足結束遞歸條件,在此基礎上確定出的樹可更好的進行訓練數(shù)據(jù)的劃分,所得結果的精度高。不過對未知測試數(shù)據(jù)的分類所得結果的準確性相對有限,容易產(chǎn)生過擬合現(xiàn)象。這種現(xiàn)象的產(chǎn)生原因為,學習時過于側重提高分類正確性,而導致建立的決策樹過于復雜,處理方法是對建立的決策樹適當?shù)幕啠档推浜蟮奶幚黼y度。
決策樹修剪的意義在于減少需要判定的特征值復雜度,在醫(yī)療診斷中,存在著大量的檢查指標,實際情況下對于一個疾病的診斷,并不需要檢驗所有的項目,通常先進行一些基本的檢查,例如:體表表現(xiàn)、常規(guī)血液檢驗等,通過這些基礎指標得到疾病的大致分類,再針對該分類下的指標進一步進行其他項目檢驗,直至得出診斷。通過決策樹的剪枝,可以得到常規(guī)醫(yī)療檢驗的項目指標,減少不必要的檢驗項目和檢驗次數(shù)。
剪枝:對得到的決策樹進行修剪,將其中的一些子樹或葉子節(jié)點剪去,而新的子節(jié)點設置為根節(jié)點,這樣可使得分類樹結構簡化。
可基于決策樹的損失函數(shù)或代價函數(shù)最小來實現(xiàn)。
決策樹學習的損失函數(shù)定義為:
其中T對應于此子樹的葉子節(jié)點,Nt對應于此葉子相關的訓練樣本數(shù),α對應于懲罰系數(shù),Ht(T)則為第t個葉子熵,其計算公式為:
其中C(T)含義為對訓練數(shù)據(jù)的預測誤差,可看作為相應的擬合水平;
α表示,α≥0參數(shù)控制兩者之間的影響,此參數(shù)較大情況下確定出的模型結構更簡單,而相反情況下建立的決策樹更復雜,如果其為零,則對應于單純考慮擬合水平,決策樹的復雜性不需要考慮。
剪枝對應于α確定情況下,得到損失函數(shù)最小的子樹。
α確定后,訓練數(shù)據(jù)的擬合效果和子樹大小存在正相關關系,不過子樹大,則對應的復雜度越高,相反情況下則擬合效果差,損失函數(shù)表達了兩者間的平衡度。
決策樹的剪枝對應于從葉子節(jié)點進行遞歸,全部子節(jié)點回縮后的子樹記為Tb,而沒有回縮的子樹為Tb,如果存在如下關系式:
則可判斷出回縮降低了損失函數(shù),這樣就需要進行回縮處理,進行遞歸一直到不能進一步回縮。這樣就基于貪婪算法進行剪枝處理,而簡化了決策樹。
決策樹建立的目的在于更好的擬合訓練數(shù)據(jù),而剪枝操作主要是基于優(yōu)化損失函數(shù)而使決策樹得以簡化,也為其后的分類處理提供支持和便利。
決策樹分類[12,13]是分類算法中的一種應用最廣泛的技術,它通過尋找數(shù)據(jù)間的聯(lián)系,描述數(shù)據(jù)的關系模型,從而能夠作出預測。在決策樹建立基礎上,可基于其劃分實際數(shù)據(jù)集合,通過數(shù)據(jù)分類過程中各屬性值與決策樹節(jié)點的數(shù)值進行比較,遞歸執(zhí)行該節(jié)點及其子節(jié)點,最后到達的葉子節(jié)點即為分析預測的該數(shù)據(jù)分類。
醫(yī)療診斷分類的過程,則是根據(jù)醫(yī)療檢驗得到的項目指標,對各個指標進行判斷,將疾病類型劃分在歷史病例中。
通過對實際醫(yī)療診斷過程結合決策樹算法的分析,得出可將決策樹應用于醫(yī)療診斷的應用過程,通過以下過程實施,可得到?jīng)Q策樹模型。
在前面的決策樹分析過程中,我們將病例中的檢查項目指標作為特征值,構建分析原始數(shù)據(jù)集。
計算原始數(shù)據(jù)集的經(jīng)驗熵,其輸出結果符合預計計算。
圖1 原始數(shù)據(jù)集的經(jīng)驗熵
在第一輪最優(yōu)特征選擇中,計算得出的經(jīng)驗熵符合預計結果,選取咯痰作為最優(yōu)特征。
圖2 最優(yōu)特征選取
重復上面的最優(yōu)特征值選擇步驟,直到數(shù)據(jù)分類完畢或特征判定結束,獲得最終的決策樹。最終得到的決策樹結構。
圖3 最優(yōu)特征判定結束
基于樣本病例得到的決策樹,判定邏輯如圖4所示。
圖4 最終決策樹結構
決策樹的最終特征值僅有:咯痰和咽痛,與原始數(shù)據(jù)集中采集的特征值有很大程度的減少,對原始數(shù)據(jù)的病例診斷結果保持不變,實際應用中,可根據(jù)決策樹最終特征值進行檢驗指標進行采集,減少了無用或者與疾病關系不大的指標采集過程,可減少疾病診斷檢驗復雜度。
醫(yī)院大數(shù)據(jù)為分析病情提供了實現(xiàn)基礎,在選取了部分樣例進行實驗過程中,通過算法的描述得到了較簡化的區(qū)分感冒和咳嗽病的決策樹模型,使用該模型對其歷史病例進行測試,具有較高的準確率,基本達到診斷要求。通過醫(yī)療診斷分析模型的構建,可用于自動疾病初步預測、非醫(yī)療人員疾病診斷輔助信息手段、醫(yī)療檢驗項目指標制定,具有一定的可行性和指導意義。但是,如何尋找更好的數(shù)據(jù)預處理方法,如何發(fā)掘更好的優(yōu)化決策樹方法,如何更有效快速地完成決策樹剪枝,如何將決策樹與多種方法交叉結合等多種問題,都需要今后的學習中去研究[14]。