劉金花, 王洋, 趙婧
(1. 山西醫(yī)科大學(xué)汾陽(yáng)學(xué)院 衛(wèi)生信息管理系, 山西 汾陽(yáng) 032200;2. 北方自動(dòng)控制技術(shù)研究所, 山西 太原 030006)
目前大多數(shù)人遭受各種慢性疾病的困擾,如心血管疾病、糖尿病、腎衰竭等,病人除了需要花費(fèi)大量時(shí)間和金錢進(jìn)行治療外,還會(huì)遭受各種并發(fā)癥的困擾[1]。因此,慢性疾病的早期識(shí)別和檢測(cè)已成為全球的熱點(diǎn)問(wèn)題,并在臨床實(shí)踐中發(fā)揮著至關(guān)重要的作用。近年來(lái),各種數(shù)據(jù)挖掘技術(shù)和機(jī)器學(xué)習(xí)算法被用來(lái)預(yù)測(cè)和診斷疾病。但是,現(xiàn)有模型都假設(shè)用于訓(xùn)練模型的數(shù)據(jù)是完美的。
本研究的主要目的是以糖尿病為例建立一種具有更高可靠性能的疾病預(yù)測(cè)模型,綜合考慮并解決了目前模型中存在的數(shù)據(jù)的缺失值、數(shù)據(jù)類別不平衡和分類評(píng)價(jià)指標(biāo)選取三個(gè)問(wèn)題。首先,采用補(bǔ)償算法對(duì)缺失數(shù)據(jù)進(jìn)行填補(bǔ)。然后,選擇一種合適的過(guò)采樣技術(shù)來(lái)解決類別不平衡問(wèn)題。最后,通過(guò)一組對(duì)比實(shí)驗(yàn)來(lái)選擇合適的、優(yōu)秀的分類器。本研究所提模型的框架,如圖1所示。
圖1 本研究所提模型的框架圖
在整個(gè)實(shí)驗(yàn)過(guò)程中,采用了臨床試驗(yàn)中比較關(guān)注的指標(biāo)來(lái)評(píng)價(jià)分類性能。實(shí)驗(yàn)表明,本研究所提模型在皮馬印第安人糖尿病數(shù)據(jù)集上取得了較高的性能,比同一數(shù)據(jù)集上的其他預(yù)測(cè)模型性能更好、更可信。
目前已經(jīng)提出了許多糖尿病的預(yù)測(cè)模型。V. Anuja Kumari[2]采用以徑向基函數(shù)為核的支持向量機(jī),準(zhǔn)確率達(dá)到78%。Vijayan[3]采用AdaBoost算法,以決策樹(shù)(Decision Tree,DT)、貝葉斯(Na?ve-Bayes,NB)、支持向量機(jī)(Sup-port Vector Machine,SVM)和決策殘差作為基分類器,使用決策殘差獲得了80.72%的最佳準(zhǔn)確率。Maniruzzaman[4]發(fā)現(xiàn)醫(yī)學(xué)數(shù)據(jù)的結(jié)構(gòu)具有非正態(tài)性、非線性和內(nèi)在相關(guān)性。因此,他們采用了基于高斯過(guò)程的分類,采用了線性、多項(xiàng)式和徑向三種核的分類方法,使用徑向核的分類準(zhǔn)確率達(dá)到了81.97%。前面所述這些文獻(xiàn)都是在原始數(shù)據(jù)集上直接進(jìn)行實(shí)驗(yàn),而沒(méi)有考慮數(shù)據(jù)的質(zhì)量。Maniruzzaman[5]首先用中位數(shù)替換缺失數(shù)據(jù)和離群值,提取糖尿病數(shù)據(jù)集的特征。對(duì)比10種不同的分類器,實(shí)驗(yàn)表明,隨機(jī)森林(Random Forest,RF)特征選擇和RF分類技術(shù)的準(zhǔn)確率為92.26%,靈敏度為95.96%,特異度為79.72%。Birjais[6]采用K-近鄰(K-Nearest Neighbors,KNN)對(duì)缺失數(shù)據(jù)進(jìn)行填補(bǔ),梯度提升分類器的準(zhǔn)確率達(dá)到86%。但這些方法的數(shù)據(jù)中均存在大量缺失和類別不平衡問(wèn)題。
本研究使用的數(shù)據(jù)來(lái)自UCI機(jī)器學(xué)習(xí)知識(shí)庫(kù)的皮馬印第安人糖尿病數(shù)據(jù)集[7-8]。對(duì)該數(shù)據(jù)集屬性的描述,如表1所示。
表1 皮馬印第安人糖尿病數(shù)據(jù)集描述及缺失值統(tǒng)計(jì)
包括268名患者和500名非患者。很明顯,患者人數(shù)遠(yuǎn)遠(yuǎn)超過(guò)非患者。舉一個(gè)極端的例子,如果所有的樣本都預(yù)測(cè)為非糖尿病患者,就可以達(dá)到65.1%的準(zhǔn)確率。不平衡數(shù)據(jù)集會(huì)削弱學(xué)習(xí)算法預(yù)測(cè)少數(shù)類別的能力,這個(gè)結(jié)論已經(jīng)得到了驗(yàn)證[9]。因此,在數(shù)據(jù)類別不平衡的學(xué)習(xí)任務(wù)中,僅用準(zhǔn)確率來(lái)評(píng)價(jià)分類性能是不可信的。此外對(duì)數(shù)據(jù)集進(jìn)行了統(tǒng)計(jì)分析,因?yàn)橛写罅咳笔е怠?/p>
各類大數(shù)據(jù)集中特別是醫(yī)療數(shù)據(jù)中存在大量的缺失值是很正常的,然而,數(shù)據(jù)的純度和完整性是機(jī)器學(xué)習(xí)算法的基礎(chǔ)。補(bǔ)償法是處理缺失值最常見(jiàn)的手段。在這里,本研究采用了條件均值填補(bǔ)方法,即根據(jù)類標(biāo)簽將數(shù)據(jù)集分為糖尿病和非糖尿病兩組,缺失的值由每個(gè)組的平均值替換。
在基于機(jī)器學(xué)習(xí)的研究中,良好的數(shù)據(jù)是基礎(chǔ),而特征是數(shù)據(jù)表示的基石。糖尿病數(shù)據(jù)集有8個(gè)屬性(特征),本研究還對(duì)數(shù)據(jù)進(jìn)行了基于皮爾森相關(guān)系數(shù)的特征相關(guān)分析,如圖2所示。
圖2 糖尿病數(shù)據(jù)集間特征的相關(guān)性分析
所有8個(gè)特征與結(jié)果呈正相關(guān)。而血糖、BMI、胰島素、懷孕次數(shù)是糖尿病的重要特征。此外,年齡與懷孕、血壓這兩屬性的相關(guān)性較大,BMI與皮瓣厚度的相關(guān)性較大。所以選擇了除了Pedigreed 屬性之外的其他7個(gè)屬性作為最后的特征。
針對(duì)類別不平衡問(wèn)題,已經(jīng)提出了許多解決方案,如欠采樣、過(guò)采樣、代價(jià)敏感學(xué)習(xí)法、基于集成的方法等[10]。由于人工合成少數(shù)類樣本的過(guò)采樣技術(shù)(Synthetic Minority Over-sampling Technique,SMOTE)是通過(guò)隨機(jī)生成新實(shí)例來(lái)擴(kuò)充數(shù)據(jù),而不是簡(jiǎn)單地從原始數(shù)據(jù)中復(fù)制現(xiàn)有樣本[11]。因此,這里使用了SMOTE來(lái)解決類不平衡的問(wèn)題。
對(duì)于給定的少數(shù)類樣本x,求得它與其他少數(shù)類樣本之間的最近鄰,并計(jì)算它們的差值(距離)。然后,隨機(jī)選取0和1之間的數(shù)乘以該差值,并將其添加到原始樣本x中。生成新樣本,如式(1)。
(1)
圖3 SMOTE生成新樣本的過(guò)程
梯度提升決策樹(shù)(Gradient boost decision tree,GBDT)是另一種強(qiáng)大的集成算法。其核心思想與隨機(jī)森林一樣,GBDT采用迭代的方法建立決策樹(shù),并通過(guò)減少損失函數(shù)對(duì)模型進(jìn)行評(píng)估。沿著損失函數(shù)梯度下降的方向,GBDT不斷更新當(dāng)前模型的參數(shù),不斷地對(duì)模型進(jìn)行調(diào)優(yōu)使損失函數(shù)收斂到全局最小。
(1) 初始化預(yù)測(cè)模型F0(x)為一常數(shù),如式(2)。
(2)
其中決策樹(shù)分類器γ也初始化為常數(shù)。
(2) 循環(huán)迭代m=1:K(K為最大迭代次數(shù)). 每迭代一次構(gòu)建一個(gè)基于回歸樹(shù)的弱分類器,并且生成相應(yīng)的預(yù)測(cè)值Fm(x). 負(fù)的梯度計(jì)算,如式(3)。
-gk(x)=-[?L(yi,F(xi))/?F(xi)]F(x)=Fm-1(x)
i={1,2,…,N}
(3)
(3)h(x;αm)為弱分類器建立的回歸樹(shù),第m個(gè)回歸樹(shù)應(yīng)該沿著m-1次損失函數(shù)梯度下降的方向建立。因此,參數(shù)αm利用式(4)進(jìn)行更新。
(4)
(4) 沿梯度下降的方向優(yōu)化步長(zhǎng),將使損失函數(shù)逐步變小,如式(5)。
(5)
(5) 在每次迭代后,模型的預(yù)測(cè)函數(shù)將隨之進(jìn)行更新,如式(6)。
Fm(x)=Fm-1(x)+βmh(xi;α)
(6)
為了消除屬性之間的差異,在實(shí)驗(yàn)之前,首先得對(duì)數(shù)據(jù)進(jìn)行歸一化處理。為了獲得穩(wěn)定可信的結(jié)果,本實(shí)驗(yàn)采用了十折交叉驗(yàn)證策略。
由于糖尿病數(shù)據(jù)存在缺失和類別不平衡的問(wèn)題,本研究引入更多的指標(biāo)來(lái)充分評(píng)價(jià)分類性能。除了ACC、靈敏度、特異度,還有接受者操作特性曲線(Receiver Operating Characteristics, ROC)和ROC曲線下的面積(Area under the ROC,AROC)。AROC指標(biāo)是一種較好的醫(yī)學(xué)診斷指標(biāo),在理論和實(shí)踐上都得到了驗(yàn)證。上面提到的這些指標(biāo)都是基于混淆矩陣定義的?;煜仃?,如表2所示。
表2 混淆矩陣
準(zhǔn)確率(Accuracy,ACC)是指分類器正確預(yù)測(cè)陽(yáng)性樣本或陰性樣本的能力。如式(7)。
(7)
靈敏度(Sensitivity,SEN)表示分類器在實(shí)際陽(yáng)性樣本中識(shí)別陽(yáng)性項(xiàng)的能力。SEN與醫(yī)學(xué)上的漏診率密切相關(guān),如式(8)、式(9)。
(8)
MissedDiagnosisRate=1-Sensitivity
(9)
一般來(lái)說(shuō),一個(gè)好的疾病預(yù)測(cè)模型應(yīng)該提高SEN,降低漏診率,因?yàn)殛?yáng)性樣本指的是糖尿病患者。反之,特異性(Specificity,SPE)則表示分類器識(shí)別實(shí)際陰性樣本中陰性項(xiàng)的能力SPE在醫(yī)學(xué)上與誤診率有關(guān),如式(10)、式(11)。
(10)
MisdiagnosisRate=1-Specificity
(11)
特異性是醫(yī)學(xué)上的另一個(gè)主要指標(biāo),SPE越低,誤診率越高。因此,一個(gè)良好的診斷模型應(yīng)盡量減少誤診率和漏診率,也就是提高診斷的SEN和SPE。
ROC是一個(gè)綜合指標(biāo),權(quán)衡SEN和SPE。ROC曲線是以SEN為縱坐標(biāo),1-SPE(也稱為誤診率)為橫坐標(biāo)繪制的曲線。AUC是ROC的數(shù)量指標(biāo),指ROC曲線下方的面積。理論上,AUC的取值為[0,1],在理想的分類器中,AUC的值應(yīng)該是1。
為了驗(yàn)證本研究所提方法在每個(gè)階段的性能,設(shè)計(jì)了多組對(duì)比實(shí)驗(yàn)。此外,除了本研究提到的GBDT算法外,還選取了RF、NB、DT和邏輯回歸(Logistic Regression,LR)三種傳統(tǒng)的分類算法進(jìn)行實(shí)驗(yàn)。本研究采用5個(gè)分類器對(duì)原始的糖尿病數(shù)據(jù)集進(jìn)行分類,并將其結(jié)果作為基準(zhǔn),如表3所示。
表3 在原始數(shù)據(jù)集上分類性能比較
先忽略準(zhǔn)確率,從表3可以看出每個(gè)分類器的靈敏度較低,即醫(yī)學(xué)上的漏診率較高,顯然不符合臨床診斷試驗(yàn)的要求。
數(shù)據(jù)經(jīng)過(guò)條件均值補(bǔ)全法填補(bǔ),又經(jīng)過(guò)SMOTE處理后,得到了完整的類別平衡的訓(xùn)練數(shù)據(jù),如表4所示。
表4 在平衡數(shù)據(jù)集上訓(xùn)練分類器的性能比較
表4給出了在平衡數(shù)據(jù)中訓(xùn)練模型得到的測(cè)試分類性能。從表4可看出,各分類器的SEN均有提高,特別是GBDT和RF算法,但各分類器的SPE有所下降。這是合理的,因?yàn)镾EN和SPE本質(zhì)上是矛盾的。五種分類算法的ROC曲線,如圖4所示。
顯然GBDT相比其他具有更強(qiáng)的鑒別能力,而RF的分類性能略低,但在運(yùn)行時(shí)間上如前面所述,RF要比GBDT更好。因此,可以根據(jù)自己的情況選擇分類器。
所提模型與現(xiàn)有模型的對(duì)比,如表5所示。本研究所提模型的準(zhǔn)確率落后于Maniruzzaman et[5],然而,他們是在類別不平衡的數(shù)據(jù)中進(jìn)行的實(shí)驗(yàn),ACC會(huì)傾向多數(shù)類,不可信。因此,在不同分布的訓(xùn)練數(shù)據(jù)中進(jìn)行實(shí)驗(yàn),ACC不具可比性。除去ACC,可以看到本研究所提模型的SEN和SPE都高于其他模型。從臨床實(shí)踐的角度來(lái)看,本研究模型優(yōu)于其他模型。
圖4 不同分類器的ROC曲線比
表5 與現(xiàn)有模型進(jìn)行比較
針對(duì)慢性疾病的預(yù)測(cè)與早期識(shí)別,本研究綜合解決了在已有預(yù)測(cè)模型中存在的問(wèn)題,利用條件均值法對(duì)缺失數(shù)據(jù)進(jìn)行填補(bǔ)。類別不平衡導(dǎo)致分類結(jié)果不可信、不可靠,本研究利用SMOTE算法對(duì)數(shù)據(jù)進(jìn)行平衡處理。此外,與以往的評(píng)價(jià)指標(biāo)不同,本研究采用臨床診斷試驗(yàn)中更常用的SEN、SPE和ROC來(lái)評(píng)價(jià)預(yù)測(cè)結(jié)果。GBDT與其他常規(guī)分類器相比,其預(yù)測(cè)ACC為90.26%,SEN為100%,SPE為85%,AUC為0.95,表現(xiàn)出良好的性能。此外,同樣的方法可以推廣到預(yù)測(cè)其他類型的疾病。預(yù)測(cè)結(jié)果可以提醒醫(yī)生和病人及早控制和治療。