姚麗娟,李冬冬,王 喆
1.華東理工大學(xué) 信息科學(xué)與工程學(xué)院,上海 200237
2.蘇州大學(xué) 江蘇省計算機(jī)信息處理技術(shù)重點(diǎn)實驗室,江蘇 蘇州 215006
心力衰竭(簡稱心衰)是一種復(fù)雜的臨床癥候群,是各種心血管疾病的終末階段[1-3]。根據(jù)心衰發(fā)生的緩急,臨床可分為急性心力衰竭和慢性心力衰竭,根據(jù)心力衰竭發(fā)生的部位可分為左心、右心和全心衰竭,還有收縮性或舒張性心力衰竭之分[3]。心衰是指由于心臟的收縮功能和(或)舒張功能發(fā)生障礙,不能將靜脈回血充分排出心臟,導(dǎo)致靜脈系統(tǒng)血液淤積,動脈系統(tǒng)血液灌注不足,從而引發(fā)起心臟循環(huán)障礙癥候群[4-5]。心衰是全球慢性心血管疾病的重要組成部分。大多數(shù)嚴(yán)重的心血管疾病都會引起心力衰竭,如冠狀動脈疾?。–AD)、高血壓、瓣膜性心臟病和糖尿病均可引起或?qū)е侣孕牧λソ叩氖Т鷥擺4-5]。
近年來,它的發(fā)病率和死亡率在不斷地增加,尤其是老年人。據(jù)國內(nèi)外報道,因受試人群的不同,心力衰竭患者1年的全因死亡率達(dá)30%,重癥心力衰竭患者在確診后第1年內(nèi)全因死亡率超過20%[6]。隨著年齡的增長,70歲以上的老年人患心衰的可能性高達(dá)10%。心衰是威脅人類生命的一大疾病,因此心衰死亡率的預(yù)測是重要的,在醫(yī)療領(lǐng)域有重大意義。心衰病人的預(yù)測死亡率提供了重要的決策信息去輔助醫(yī)生治療病人。醫(yī)生可以根據(jù)心衰病人病情的嚴(yán)重程度選擇合適的治療方案以提高病人的存活率。對于高死亡率的病人,可以及時采取有針對性的措施,避免錯過最佳治療時機(jī)或不恰當(dāng)?shù)闹委?;對于低死亡率的病人,也可避免藥物的過度使用,有利于醫(yī)院資源的合理分配[7]。
近年來,醫(yī)院積累了大量心衰病人的臨床診斷信息,包括專家診斷,檢查,用藥,手術(shù)等臨床數(shù)據(jù)。這些數(shù)據(jù)原先分散在電子病歷系統(tǒng)EMRS(Electronic Medical Record System)、醫(yī)院信息系統(tǒng)HIS(Hospital Information System)、實驗室信息系統(tǒng)LIS(Laboratory Information System)等不同的系統(tǒng)中[8]。近年來,大多醫(yī)院也意識到這些臨床信息的隱藏價值,構(gòu)建臨床數(shù)據(jù)中心CDR(Clinical Data Repository)將這些信息系統(tǒng)地集成在一起。通過CDR系統(tǒng),研究學(xué)者們可以拿到較為全面、系統(tǒng)的數(shù)據(jù),這對于分析挖掘數(shù)據(jù)中的有用信息是十分有益的。
早期專家學(xué)者們只是對患上心衰的原因和導(dǎo)致心衰病人死亡的因素做一些分析,期望找到?jīng)Q定性的因素來避免心衰的發(fā)生或降低心衰死亡率。文獻(xiàn)[3]發(fā)現(xiàn)有多種因素參與了導(dǎo)致心衰發(fā)生的病理生理過程,并詳細(xì)分析了多方面的因素,如心衰病因、臨床因素、心率失常因素。本文中獲取的心衰病人數(shù)據(jù)集涵蓋了病人的很多信息,例如:基本信息、診斷信息、用藥信息、檢查信息,一共有1 302個特征。但并不一定所有的特征都是與心衰死亡相關(guān)的,因此對原始特征集進(jìn)行特征選擇。特征選擇本質(zhì)就是將重要的特征選擇出來,將無關(guān)和冗余特征進(jìn)行剔除,這樣便于精煉模型和提高模型的準(zhǔn)確率[9]。研究表示,有效的特征選擇可以降低系統(tǒng)的計算時間,提高分類的精確度,降低對系統(tǒng)硬件的需求[9-13]。傳統(tǒng)的特征選擇方法有基于相關(guān)度的Correlation-based Feature Selection(CFS)[9]、Relief[11]等,基于特征信息增益的 Information Gain(IG)[10]等,本文選取了經(jīng)典的Relief方法,選擇出重要的特征,同時也在實驗部分證明了該方法的有效性。
本文獲取的心衰數(shù)據(jù)集是不平衡數(shù)據(jù)集,死亡的病例相對較少,存活病例較多。不平衡問題會使分類界面往少數(shù)類偏移,少數(shù)類的識別率低。解決不平衡問題一般有兩種方法,一種是基于數(shù)據(jù)層面,通過對多數(shù)類進(jìn)行降采樣,或者對少數(shù)類進(jìn)行過采樣,或者降采樣和過采樣兩者同時進(jìn)行,來解決不平衡數(shù)據(jù)的問題[14]。文獻(xiàn)[15]提出了一種運(yùn)用K-means原理進(jìn)行聚類降采樣方法。文獻(xiàn)[16]提出SMOTE過采樣方法,采用啟發(fā)式的策略,有選擇地復(fù)制少數(shù)類樣本。另一種是從算法方面,例如代價敏感學(xué)習(xí)。賦予各個類別不同的錯分代價,賦予少數(shù)類比多數(shù)類更大的錯分代價來解決不平衡問題。文獻(xiàn)[17]在SVM的基礎(chǔ)上對其做了改進(jìn),通過增大少數(shù)類的權(quán)重,減少多數(shù)類權(quán)重,來解決不平衡問題,稱為biased penalties SVM(bp-SVM)[17-18]。極限學(xué)習(xí)機(jī)(ELM)在不平衡問題上,忽略了樣本的離散程度,可能導(dǎo)致局部最優(yōu)結(jié)果。文獻(xiàn)[19]對此做出了改進(jìn),提出了基于類依賴的代價規(guī)則極限學(xué)習(xí)機(jī)(CCR-ELM)。文獻(xiàn)[20]提出了一種基于重力的局部近鄰方法GFRNN。通過對少數(shù)類和多數(shù)類賦予不同的質(zhì)量來解決不平衡問題。另一種算法層面的改進(jìn)為集成學(xué)習(xí),文獻(xiàn)[21]提出了適用于不平衡數(shù)據(jù)分類的Adaboost算法(ILAdaboost)。原始的集成算法Bagging在不平衡數(shù)據(jù)集上仍然存在不足,文獻(xiàn)[22]通過引入一種大致平衡的采樣方法改進(jìn)后得到RB Bagging模型,能較大地體現(xiàn)出多樣性。
隨著機(jī)器學(xué)習(xí)的快速發(fā)展,它也為醫(yī)療領(lǐng)域提供了有效的支持,一些學(xué)者將機(jī)器學(xué)習(xí)應(yīng)用到心衰的診斷課題。心衰診斷的相關(guān)工作主要是采用傳統(tǒng)模型:邏輯回歸(Logistic Regression,LR)、支持向量機(jī)(Support Vector Machines,SVM)、決策樹(Decision Tree,DT)。文獻(xiàn)[23]運(yùn)用決策樹建立模型分析與充血性心衰相關(guān)的因素,提取出關(guān)鍵因素。文獻(xiàn)[24]用決策樹模型預(yù)測剛出院的心衰病人一年內(nèi)死亡或心衰惡化的概率,起到提早監(jiān)控病人病情的作用。實驗中與LR算法做出了對比,實驗表明決策樹模型的性能比邏輯回歸模型好。文獻(xiàn)[25]結(jié)合SVM和Adaboost建立心力衰竭分期模型,提高了心力衰竭診斷和分期準(zhǔn)確度。文獻(xiàn)[26]用SVM建立模型從自主和復(fù)極化心電圖標(biāo)記中心源性猝死和泵衰竭死亡,它們是慢性心衰病人不同的死因。文獻(xiàn)[27]構(gòu)建模型去預(yù)測心衰病人死亡或再次住院率。實驗結(jié)果表明,預(yù)測30天后再次住院或死亡率時,SVM效果最好。在這些分類器中,SVM的應(yīng)用最為廣泛并取得了優(yōu)越的預(yù)測性能。另外,本文的心衰數(shù)據(jù)集為不平衡數(shù)據(jù)集,因此本文采用bp-SVM[17-18]分類模型來實現(xiàn)對心衰病人死亡率的預(yù)測。
本文心衰病人的數(shù)據(jù)來自于上海曙光醫(yī)院。上海曙光醫(yī)院是一所中西醫(yī)結(jié)合的綜合性醫(yī)院,它擁有完善的臨床數(shù)據(jù)中心CDR系統(tǒng),記錄了病人大量的臨床信息,其中包括心衰病人的數(shù)據(jù)信息。本文基于心衰病人的臨床數(shù)據(jù)去預(yù)測心衰病人本次住院后30天內(nèi)的死亡率。根據(jù)醫(yī)院提供的數(shù)據(jù),篩選得到心衰病人的樣本庫。心衰病人的樣本庫包含2009年3月至2016年4月期間在上海曙光醫(yī)院有住院記錄的心衰病人。樣本庫是基于以下標(biāo)準(zhǔn)選擇的:(1)至少要有以下ICD-10-CM編碼中的一個作為病人該次入院的首要診斷(編碼:I11.0,I13.0,I13.2,I50,I50.1,I50.2,I50.3,I50.4,I50.9);(2)心衰病人在該次住院的前兩天內(nèi)需要有至少一次有心衰用藥治療方案的記錄。通過上述兩個標(biāo)準(zhǔn)進(jìn)行篩選,留下了4 682個心衰病人的信息,其中有539個在醫(yī)院死亡,病人平均隨訪時間為0.96年。這4 682個心衰病人一共有10 203條住院記錄,每條記錄都記錄了病人的一些基本信息,例如,年齡,性別和一些結(jié)構(gòu)化的臨床診斷信息,包括心率,用藥情況,常規(guī)檢查,診斷信息。
心衰病人部分臨床信息是以數(shù)值存儲,如年齡;部分是以文本形式存儲,如用藥情況。這些非數(shù)值化的信息無法直接利用,所以需要對這些信息進(jìn)行預(yù)處理,將這些信息全部轉(zhuǎn)換為數(shù)值化的數(shù)據(jù),以便后續(xù)可以用機(jī)器學(xué)習(xí)算法來處理。
對于年齡和心率,保留原始數(shù)值。性別轉(zhuǎn)化為數(shù)字,男性用1表示,女性用0表示。為了使CDR數(shù)據(jù)中的臨床事件可以被表示為可計算事件序列,為每一個心衰案例構(gòu)建一個向量表示。向量的維度等于不同的特征出現(xiàn)在CDR系統(tǒng)中的數(shù)量。每個維度的值代表在特定時間段內(nèi)對應(yīng)醫(yī)療事件是否出現(xiàn)。根據(jù)挑選出來的心衰案例,不同的ICD-10-CM診斷編碼有1 222種,所以診斷信息被轉(zhuǎn)化為1 222維的向量。醫(yī)院專家手動將中國61種廣泛使用的藥物挑選出來,并進(jìn)一步根據(jù)功能將它分為11個大類,即藥物被轉(zhuǎn)化為11維的向量,如表1中的藥物類別所示。同時專家選出了22個有關(guān)心衰的檢查,如表1中的檢查項目所示。 參照每項檢查的參考值,將檢查的結(jié)果分為三類,偏高,偏低,正常。每項檢查被轉(zhuǎn)化為三維的向量,所有的向量都是用0,1數(shù)值表示。
表1 11類藥物和22項檢查內(nèi)容
經(jīng)過上述的數(shù)據(jù)特征處理后可以得到一個數(shù)值化的數(shù)據(jù)集被命名為SSHF(Shanghai Shuguang Heart Failure)。SSHF數(shù)據(jù)集一共有10 203條心衰病人的住院記錄,每條記錄有1 302個特征。數(shù)據(jù)集對應(yīng)的特征如表2所示。
表2 SSHF數(shù)據(jù)集的特征解釋
由于本文預(yù)測的是心衰病人本次住院后30天內(nèi)的死亡率,所以根據(jù)原始數(shù)據(jù)集SSHF,對數(shù)據(jù)進(jìn)行篩選,將不能確定30天內(nèi)是否死亡的案例剔除,最后留下6 260條住院記錄。其中有562條死亡記錄,5 608條存活記錄,樣本特征維度仍為1 302,特征與SSHF數(shù)據(jù)集一致。所提取的數(shù)據(jù)是不平衡的,不平衡率為9.98。將預(yù)測心衰病人30天后死亡率的數(shù)據(jù)稱為SSHFmonth數(shù)據(jù)集以便區(qū)分。
Relief算法是由Kira和Rendel首次提出來的[11]。算法的思想和K-NN分類算法有點(diǎn)相近。主要思想是:同一類中最近的樣本比不同類中最近的樣本更接近。假設(shè)這有N個訓(xùn)練樣本:{F(1),c(1)},{F(2),c(2)},…,{F(N),c(N)}。其中,F(xiàn)(k)=[F1(k),F2(k),…,Fn(k)]表示樣本k的特征向量,c(k)表示樣本k的類標(biāo)號。在Relief算法中,特征Fi的相關(guān)性s計算如下:
Relief算法為每個特征計算出一個分?jǐn)?shù),分?jǐn)?shù)的高低代表該特征的相關(guān)性與可識別性,重要特征的特征得分會比較高。因此可以根據(jù)閾值來篩選特征,剔除特征得分不大于閾值的特征。
支持向量機(jī)(SVM)是由Vapnik等學(xué)者提出的,支持向量機(jī)的目標(biāo)是構(gòu)造一個目標(biāo)函數(shù),尋找分割超平面ωx+b=0。
假定大小為N的樣本集{(xi,yi),i=1,2,…,N},對于二分類問題,yi為樣本類標(biāo)號 yi∈{+1,-1}。對于線性可分問題,求最優(yōu)超平面可轉(zhuǎn)換為目標(biāo)函數(shù)的優(yōu)化問題。即:
參數(shù)C為懲罰系數(shù),用于控制目標(biāo)函數(shù)中兩項的權(quán)重。
bp-SVM是為了解決不平衡問題對SVM做出的改進(jìn)[17-18]。bp-SVM的模型為:
C1表示正類樣本的權(quán)重,C1=N/(2×N1),C2表示負(fù)類樣本的權(quán)重,C2=N/(2×N2)。N1和N2分別為正負(fù)類樣本的數(shù)量,N為樣本總數(shù)量。
當(dāng)樣本集線性不可分時,通過核函數(shù)可以將原樣本集數(shù)據(jù)x映射到一個高維線性空間。不同的核函數(shù)可以對應(yīng)不同的最優(yōu)超平面。本實驗中,選用徑向基核函數(shù)(RBF)。公式如下:
徑向基核是一種局部性強(qiáng)的核函數(shù),其可以將一個樣本映射到一個更高維的空間內(nèi)。該核函數(shù)是應(yīng)用最廣的一個,無論大樣本還是小樣本都有比較好的性能。
本實驗中,bp-SVM模型選用徑向基核(RBF)來預(yù)測心衰病人的死亡率,并采用5輪交叉驗證作為超參數(shù)的選擇,參數(shù)c與σ的范圍都設(shè)置為[0.01~100]。因為SSHFmonth數(shù)據(jù)具有不同的量綱和量綱單位,這會影響后續(xù)的實驗結(jié)果,所以采用Z-score歸一化心衰數(shù)據(jù),使各個特征處于同一數(shù)量級??紤]到數(shù)據(jù)的不平衡性質(zhì),選擇三個度量標(biāo)準(zhǔn)來表示本文的實驗結(jié)果:TPR(True Positive Rate),TNR(True Negatives Rate),AA(Average Accuracy metric)。TPR和TNR反映的是每一類的識別率,而AA反映的是整體性能。這三個度量標(biāo)準(zhǔn)的計算如下:
TP,TN,F(xiàn)P,F(xiàn)N分別為混淆矩陣的元素。所有的實驗都是在載有英特爾四核的處理器,主頻2.20 GHz,16 GB內(nèi)存的Linux操作系統(tǒng)上,Matlab環(huán)境。
Relief特征選擇的閾值,對應(yīng)閾值下的保留的特征維度以及三個度量標(biāo)準(zhǔn)下的結(jié)果、對應(yīng)的方差和SVM訓(xùn)練時間都被記錄在表3中,最好結(jié)果加粗表示。
表3 特征維度,預(yù)測結(jié)果及對應(yīng)的方差描述
由表3可知,Relief算法設(shè)置不同的閾值,就可以得到不同維度的數(shù)據(jù)。閾值越大,所保留的數(shù)據(jù)特征就越少。當(dāng)閾值為0.02時,系統(tǒng)達(dá)到了最好的性能,AA指標(biāo)可以達(dá)到80.81%。此時的維度被降為231,相比于原始的1 302維,特征維度大幅度減少。計算時間也由最初的49.46 s降低到15.48 s,系統(tǒng)速度有了很大的提升,而且,系統(tǒng)性能并沒有因為維度的減少而降低,由78.3%提高到80.81%。這正說明了有效的特征選擇可以降低特征維度,減少計算時間,提高系統(tǒng)性能。
TPR代表正類的識別率,當(dāng)系統(tǒng)達(dá)到最好性能時,TPR為79.59%,與最高的80.36%相當(dāng)。TNR最高可達(dá)91.65%,系統(tǒng)性能最好時的TNR為82.03%,并不是最高的。TNR只是反映了負(fù)例的識別率,并不代表整體性能。一般來說,TNR變高時,TPR會變低,因為TNR的提高是以犧牲TPR為代價,如圖1所示。而對于心衰數(shù)據(jù),在保證整體性能的前提下,更關(guān)心的應(yīng)該是指標(biāo)TPR,因為希望心衰死亡案例都可以被識別出來。如果將高死亡率病人識別為低死亡率病人,那可能會耽誤病人的救治,使病人錯過最佳治療時間和治療方案。所以指標(biāo)TPR的準(zhǔn)確度比TNR更為重要,這樣更符合現(xiàn)實意義。
圖1 特征維度與系統(tǒng)性能關(guān)系圖
從圖1中,隨著特征維度的減少,TPR和TNR指標(biāo)逐漸趨于穩(wěn)定,平均精度AA也逐漸保持穩(wěn)定。當(dāng)特征維度降到20維左右,系統(tǒng)性能并沒有下降很多,仍保持在一個較高的水平70%以上,TPR和TNR也沒有大幅度下降的情況。根據(jù)圖2,可以得知特征維度的降低與SVM訓(xùn)練時間的關(guān)系。隨著特征維度的減少,系統(tǒng)訓(xùn)練時間會降低,最后趨于穩(wěn)定。這也說明了特征選擇可以減少計算時間。有效的特征選擇會提高系統(tǒng)準(zhǔn)確度,而且根據(jù)表3所示,系統(tǒng)維度降低到11維時,系統(tǒng)性能仍能達(dá)到72.38%,指標(biāo)TPR也仍能達(dá)到73%。但并不是意味著特征可以無限度減少,當(dāng)特征維度減少到一定值后,系統(tǒng)性能會下降。因為過少的特征會損失很多信息,導(dǎo)致分類結(jié)果準(zhǔn)確度下降,影響系統(tǒng)性能。所以需要選擇一個合適的維度,既能保證系統(tǒng)性能,又減少了計算時間和特征維度。所選特征的維度是根據(jù)Relief算法的閾值來設(shè)置的,可以根據(jù)實際情況來定義。
圖2 特征維度與系統(tǒng)訓(xùn)練時間關(guān)系圖
在眾多傳統(tǒng)特征選擇算法中,本文采用的是Relief特征選擇方法,來對心衰數(shù)據(jù)進(jìn)行特征選擇。為了證明所選用的Relief特征選擇算法的有效性,將Relief與傳統(tǒng)的CFS和IG特征選擇算法進(jìn)行對比,對比實驗基于bp-SVM分類模型。實驗結(jié)果如表4所示,結(jié)果粗體表示每個指標(biāo)下最好的結(jié)果。
表4 Relief與其他特征選擇算法效果對比%
在對心衰疾病的分析和預(yù)測中,最為普遍采用的預(yù)測模型是SVM、邏輯回歸、決策樹、K近鄰,正如相關(guān)工作中所示案例,一般情況下,SVM模型更優(yōu)。為了證明本文預(yù)測系統(tǒng)采用的bp-SVM模型的正確性和有效性,將bp-SVM與邏輯回歸(LR)、決策樹(DT)、K近鄰(KNN)模型進(jìn)行對比。bp-SVM和對比算法都是基于特征選擇后的數(shù)據(jù)樣本上,Relief閾值為0.02。算法參數(shù)如下:K-NN,K的取值集合為{1,3,5,7,9},取其中最好結(jié)果作為K近鄰的最好結(jié)果,bp-SVM參數(shù)見5.1節(jié)中參數(shù)設(shè)置。結(jié)果如表5所示,粗體為最好結(jié)果。
表5 bp-SVM與其他模型的效果對比
由表4可以看出,Relief特征選擇方法相對于CFS和IG效果更好一些。雖然IG在負(fù)類識別率TNR上占很大優(yōu)勢,但是在TPR上表現(xiàn)不佳。在整體性能AA上,IG與CFS表現(xiàn)相似。而Relief方法在TPR和AA標(biāo)準(zhǔn)上都是表現(xiàn)最優(yōu)。實驗證明了Relief特征選擇方法在心衰數(shù)據(jù)集上的有效性。此外,由表5可以看出,bp-SVM相比較于K-NN、LR、DT,預(yù)測效果最好。bp-SVM在平均分類精度AA上比K-NN和LR高出了約12%,比DT高出了26.96%,這體現(xiàn)了bp-SVM模型的優(yōu)越性。而且,本文的實驗數(shù)據(jù)是不平衡數(shù)據(jù)集,所以更加關(guān)注正例的識別率TPR,希望能識別出高死亡率的心衰病人,以便醫(yī)生能及時采取醫(yī)療措施,提高病人的治愈率。雖然就負(fù)例識別率TNR而言,bp-SVM比K-NN和邏輯回歸模型低了約10%,和決策樹模型相當(dāng),但是bp-SVM較其他對比算法,在正例識別率更加準(zhǔn)確,大大超越了K-NN、LR和DT。所以bp-SVM在總體性能AA上仍然保持了它的良好性能。實驗證明采用bp-SVM模型構(gòu)建心衰死亡率預(yù)測系統(tǒng)可以在一定程度上提高預(yù)測準(zhǔn)確率。
本文根據(jù)真實數(shù)據(jù)和需求,提出了一個死亡率預(yù)測系統(tǒng),可以預(yù)測心衰病人本次住院后的30天內(nèi)的死亡率。系統(tǒng)性能可以達(dá)到80.81%,該系統(tǒng)可以應(yīng)用到心衰死亡率的預(yù)測。系統(tǒng)預(yù)測心衰病人的死亡率,醫(yī)生可以根據(jù)死亡率的高低,提出有針對性的治療方案以便提高臨床診斷。同時也避免了心衰病人潛在的死亡危險不能及時被發(fā)現(xiàn)而導(dǎo)致錯失治療時間。同時,該系統(tǒng)用少量的特征就可以達(dá)到較高的準(zhǔn)確率,減少了計算時間,讓系統(tǒng)預(yù)測更加快速。因此這個心衰預(yù)測系統(tǒng)在現(xiàn)實生活中是有價值和實際意義的。