謝 爽 范會敏
(西安工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 陜西 西安 710021)
高血壓和高血脂是常見慢性病,早期一般沒有癥狀,是心腦血管疾病的主要危險(xiǎn)因素[1]。《2017中國心血管病報(bào)告數(shù)據(jù)》中指出,雙高疾病對我國公民的危害日益加劇,人們對雙高的預(yù)防治療手段的需求也越來越迫切。
在如今信息發(fā)展迅速的現(xiàn)代化社會中,醫(yī)療數(shù)據(jù)大部分都以電子醫(yī)療病歷的形式記錄,其中包含診斷、癥狀、檢查和化驗(yàn)等信息,具有維度高、稀疏的特點(diǎn)。針對醫(yī)療數(shù)據(jù)維度高、稀疏的特點(diǎn),一些疾病預(yù)測模型被提出。
傳統(tǒng)的疾病風(fēng)險(xiǎn)預(yù)測主要基于Cox比例風(fēng)險(xiǎn)回歸模型及邏輯回歸模型。Cox比例風(fēng)險(xiǎn)模型是由英國統(tǒng)計(jì)學(xué)家D.R.Cox提出的一種半?yún)?shù)回歸模型。Wang等[2]利用Cox模型,基于弗雷明漢心臟研究來建立房顫患者發(fā)生腦卒中及死亡的風(fēng)險(xiǎn)預(yù)測模型。該研究腦卒中預(yù)測模型和腦卒中或死亡預(yù)測模型的H-L統(tǒng)計(jì)量分別為7.6和6.5,AUC分別為0.66、0.70。
盡管傳統(tǒng)的回歸方法在疾病預(yù)測方面有廣泛的應(yīng)用,但這些方法在預(yù)測準(zhǔn)確度和模型可解釋方面仍有提升的空間。近年來,機(jī)器學(xué)習(xí)領(lǐng)域的特征選擇和有監(jiān)督學(xué)習(xí)建模方法越來越多地用于疾病預(yù)測問題。
Khosla等[3]采用了特征選擇和機(jī)器學(xué)習(xí)方法來預(yù)測5年內(nèi)的腦卒中發(fā)生率。該研究的數(shù)據(jù)來自心血管健康研究數(shù)據(jù)集,采用了四種方法進(jìn)行缺失值填充,包括均值填充、中位數(shù)填充、線性回歸,及期望最大化方法;特征選擇方法包括前向特征選擇、L1正則化和保守均值特征選擇;建模時嘗試了支持向量機(jī)和基于邊緣的刪失回歸方法。使用L1正則化邏輯回歸進(jìn)行特征選擇,然后使用支持向量機(jī)進(jìn)行預(yù)測,采用十折交叉驗(yàn)證的平均測試AUC(Area Under Curve)為0.764,優(yōu)于L1正則化Cox模型。將各種特征選擇算法與預(yù)測算法相結(jié)合的平均顯示,保守均值和基于邊緣的刪失回歸相結(jié)合在AUC評價(jià)標(biāo)準(zhǔn)中能達(dá)到0.777,為性能最佳的結(jié)果。
Choi等[4]在心衰的預(yù)測上率先使用了基于循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的方法。針對單個臨床事件的建模采用了自然語言理解中常用的one-hot向量的方式,把任何一個臨床事件都表示成N維的向量,但向量的最后一位為事件發(fā)生時間距離預(yù)測時間的間隔,類似于一個時間戳。使用門循環(huán)單元從每個輸入的臨床事件向量計(jì)算相應(yīng)的隱狀態(tài),在最終的隱狀態(tài)上應(yīng)用邏輯回歸模型計(jì)算最后的心衰風(fēng)險(xiǎn)概率。與線性回歸、支持向量機(jī)和K近鄰算法等多種經(jīng)典回歸或機(jī)器學(xué)習(xí)方法實(shí)驗(yàn)對比后發(fā)現(xiàn),基于RNN方法的預(yù)測AUC有提高。
綜上所述,由于電子病歷數(shù)據(jù)高維度、高稀疏的特點(diǎn),疾病預(yù)測研究的重點(diǎn)主要在特征處理方面。因此,本文提出一種Word2vec和卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合的特征提取方法(WV-CNN),從特征處理方面入手進(jìn)行雙高疾病的預(yù)測研究。
使用Word2vec進(jìn)行詞語表示,得到的詞向量為低維稠密性實(shí)數(shù),并且很好地保留了語義信息[5],最后利用卷積神經(jīng)網(wǎng)絡(luò)從局部到全局相關(guān)性特征的學(xué)習(xí)能力,對大量文本向量進(jìn)行深度學(xué)習(xí),將文本特征中的重要信息提取出來,以提高預(yù)測效果。
由于針對醫(yī)學(xué)體檢領(lǐng)域的文本特征提取,需要采用該領(lǐng)域的文本進(jìn)行向量庫的訓(xùn)練,得出的詞向量更貼合該問題領(lǐng)域。具體詞向量庫構(gòu)建流程如圖1所示。
圖1 詞向量庫構(gòu)建
先對文本Di進(jìn)行分詞處理Di=[wi,w2,…,wn],n為詞語個數(shù)。再根據(jù)Word2vec詞向量庫把分詞后的文本替換成低維數(shù)值向量Wi=[Vi1,Vi2,…,Vik],k為詞向量的維度,如圖2所示。
圖2 詞向量表示
經(jīng)過上述處理過程使文本特征從高維度、高稀疏數(shù)據(jù),變成了類似圖像的連續(xù)稠密矩陣數(shù)據(jù)表示,并且進(jìn)一步作為下一步卷積神經(jīng)網(wǎng)絡(luò)的輸入。這種文本向量化表示免去了一般特征處理的繁瑣工作,讓文本原始信息得到了最大限度的保留。
卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示,有輸入層、卷積層、池化層、全連接層四層,特征以詞向量的形式輸入到神經(jīng)網(wǎng)絡(luò)中,經(jīng)過卷積層、池化層提取出特征中的重要信息,最后再經(jīng)過全連接層輸出特征。
圖3 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
經(jīng)過Word2vec詞向量,令xi∈Rk為對應(yīng)于文本特征中的第i個詞的k維詞向量,將這些詞向量作為卷積神經(jīng)網(wǎng)絡(luò)的輸入。長度為n的文本表示為:
x1:n=x1⊕x2⊕…⊕xn
(1)
式中:⊕是連接運(yùn)算符;xi:i+j指的是詞向量xi,xi+1,…,xi+j的連接。
卷積中卷積核w∈Rhk作用在h個詞向量上以產(chǎn)生新特征,h為卷積步長。卷積核掃過詞向量xi:i+h-1生成特征ci,計(jì)算式表示為:
ci=f(w·xi:i+h-1+b)
(2)
式中:b∈R是偏置項(xiàng);f(·)是激勵函數(shù)。文本表述中,單個主語、主語+謂語、主語+謂語+賓語三種文本表述組合就能將一個句子的主要意思簡潔地表述清楚。卷積層中,考慮到上述三種文本表述組合,卷積核大小分別為1個詞向量、2個詞向量和3個詞向量三種。
使用非線性函數(shù)作為激勵函數(shù),使神經(jīng)網(wǎng)絡(luò)表達(dá)能力更加強(qiáng)大,不再是輸入的線性組合,幾乎可以逼近任意函數(shù),以協(xié)助表達(dá)復(fù)雜特征。常見的激勵函數(shù)有Sigmoid函數(shù)、tanh函數(shù)和ReLU函數(shù)等,本研究中使用tanh函數(shù):
(3)
卷積核作用于文本{x1:h,x2:h+1,…,xn-h+1:n}中產(chǎn)生特征映射,表示為:
c=[c1,c2,…,cn-h+1]c∈Rn-h+1
(4)
然后,在特征映射上進(jìn)行最大化池化操作,并取最大值c=max{c}作為對應(yīng)于該特定卷積核的特征,這是為了在特征映射找到最據(jù)代表性的特征,最后再經(jīng)過全連接層直接輸出特征。卷積神經(jīng)網(wǎng)絡(luò)的具體參數(shù)設(shè)置如表1所示。
表1 卷積神經(jīng)網(wǎng)絡(luò)參數(shù)設(shè)置
基于數(shù)據(jù)挖掘的疾病預(yù)測的步驟包括數(shù)據(jù)集的預(yù)處理、特征工程、使用機(jī)器學(xué)習(xí)算法訓(xùn)練預(yù)測模型,然后使用測試集驗(yàn)證模型的效果。數(shù)據(jù)預(yù)處理是指對訓(xùn)練集和測試集中的特征規(guī)范化,如科學(xué)計(jì)數(shù)法表示數(shù)據(jù)的處理、數(shù)值與字符混合數(shù)據(jù)的處理等。數(shù)據(jù)中含有文本型數(shù)據(jù),運(yùn)用特征提取方法將文本型數(shù)據(jù)中的關(guān)鍵信息提取出來并轉(zhuǎn)化為向量,作為新的特征合并到數(shù)據(jù)集中,然后利用預(yù)測算法預(yù)測出雙高的具體數(shù)值。
為了驗(yàn)證WV-CNN的效果,從輸入數(shù)據(jù)量級和預(yù)測算法等幾個不同角度對算法進(jìn)行對比實(shí)驗(yàn)。
在訓(xùn)練過程中分別使用Doc2vec算法和WV-CNN算法進(jìn)行特征處理,將處理后的數(shù)據(jù)特征輸入到訓(xùn)練后的模型中,對測試集進(jìn)行預(yù)測,得到對每個個體的收縮壓、舒張壓、甘油三酯、高密度脂蛋白膽固醇和低密度脂蛋白膽固醇五項(xiàng)指標(biāo)的預(yù)測結(jié)果,并與實(shí)際檢測值進(jìn)行對比。對比實(shí)驗(yàn)設(shè)計(jì)如圖4所示。
圖4 實(shí)驗(yàn)設(shè)計(jì)
實(shí)驗(yàn)使用均方誤差MSE作為評價(jià)指標(biāo),其第j項(xiàng)的計(jì)算式為:
(5)
(6)
本實(shí)驗(yàn)采用的數(shù)據(jù)集是由體檢中心提供的共10 000條個人體檢信息數(shù)據(jù)集,涉及BMI指數(shù)、心電圖、B超、血液檢驗(yàn)和尿液檢驗(yàn)等一系列數(shù)值型和文本型數(shù)據(jù)特征。實(shí)驗(yàn)中,對數(shù)據(jù)集按9 ∶1的比例分為訓(xùn)練集和測試集,再在訓(xùn)練集中以9 ∶1的比例分為訓(xùn)練集和驗(yàn)證集。其中,訓(xùn)練集的作用是計(jì)算梯度并更新權(quán)重;驗(yàn)證集的作用為確定正確的超參數(shù),以避免過擬合現(xiàn)象的發(fā)生;測試集的作用為給出實(shí)際的評價(jià)指標(biāo)。
在疾病預(yù)測中,樣本數(shù)據(jù)的大小不僅影響預(yù)測的效率還對預(yù)測的準(zhǔn)確率有著極大的影響。樣本數(shù)據(jù)不是越大越好,對于每一個具體問題,都有其最合適的樣本數(shù)據(jù)。為驗(yàn)證在不同樣本數(shù)據(jù)輸入下Doc2vec算法和WV-CNN算法的MSE值變化,本實(shí)驗(yàn)分別在支持向量機(jī)(SVM)和梯度提升樹(GBDT)算法下進(jìn)行對比實(shí)驗(yàn),結(jié)果如圖5和圖6所示。
圖5 SVM算法預(yù)測
圖6 GBDT算法預(yù)測
實(shí)驗(yàn)結(jié)果表明,相對于其他預(yù)測算法,WV-CNN算法的MSE值在不同的數(shù)量級輸入下基本都要低于Doc2vec算法。
由圖6可見,在輸入樣本數(shù)量在500和1 000左右時,Doc2vec算法的MSE值比WV-CNN算法略微高一些,分析原因主要是因?yàn)檩斎霕颖緮?shù)量太少,導(dǎo)致經(jīng)卷積神經(jīng)網(wǎng)絡(luò)提取到特征信息有限。在圖5和圖6中,隨著輸入樣本數(shù)量的增加,MSE值都呈下降趨勢。此外,在輸入樣本數(shù)量為8 000或8 500左右時MSE值較低,且之后MSE值趨于穩(wěn)定。
為了驗(yàn)證WV-CNN方法在不同預(yù)測算法下的有效性,本實(shí)驗(yàn)分別選取線性回歸、支持向量機(jī)、隨機(jī)森林、梯度提升樹和極端梯度提升(XGBoost),在輸入樣本數(shù)量為8 000的相同環(huán)境下進(jìn)行對比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果詳細(xì)數(shù)據(jù)如表2所示。
表2 Doc2vec方法與WV-CNN方法在不同預(yù)測算法下的對比實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)結(jié)果表明,在使用不同的預(yù)測算法情況下,本文算法的MSE值都要低于Doc2vec算法??梢钥闯?,支持向量機(jī)算法相對于其他算法的預(yù)測效果而言最差,但經(jīng)過WV-CNN算法得到的MSE值相比Doc2vec算法下降了0.314 2,經(jīng)過特征提取改進(jìn)后預(yù)測效果提升明顯。相對于其他算法,極端梯度提升算法的MSE值變化不明顯,使用了WV-CNN算法特征提取后MSE值下降了0.081 7,但預(yù)測效果最穩(wěn)定。綜合比較,經(jīng)WV-CNN算法提取文本特征后再使用極端梯度提升算法預(yù)測獲得的MSE值最小,達(dá)到了0.025 4。
為了驗(yàn)證WV-CNN算法對文本特征提取的有效性,本文進(jìn)行了一系列對比實(shí)驗(yàn),分別從輸入數(shù)據(jù)數(shù)量級、預(yù)測算法兩方面進(jìn)行實(shí)驗(yàn),采用MSE值作為評價(jià)指標(biāo),得到了多組實(shí)驗(yàn)結(jié)果,結(jié)果數(shù)據(jù)匯總?cè)绫?所示。
表3 實(shí)驗(yàn)結(jié)果匯總
實(shí)驗(yàn)結(jié)果表明,本文算法的特征提取能力優(yōu)于Doc2vec算法。本文算法在不同輸入數(shù)據(jù)數(shù)量級的MSE值平均降低了0.192 4,在各個不同預(yù)測算法中MSE值平均降低了0.245 4。經(jīng)過上述對比實(shí)驗(yàn)可以得出,在雙高疾病預(yù)測中,WV-CNN算法的特征提取能力在不同輸入數(shù)據(jù)數(shù)量級和不同預(yù)測方面都有很好的表現(xiàn)。
在雙高疾病預(yù)測過程中,本文提出了一種基于WV-CNN的特征提取方法,對體檢中心提供體檢數(shù)據(jù)進(jìn)行特征處理,并且使用Doc2vec算法作為對比組對特征進(jìn)行處理。經(jīng)過不同數(shù)量級樣本數(shù)據(jù)和不同預(yù)測算法兩個對比實(shí)驗(yàn),結(jié)果表明:基于WV-CNN的特征提取在疾病預(yù)測方面有較低的誤差率,具有不錯的效果。盡管如此,基于WV-CNN的雙高指標(biāo)預(yù)測方法在疾病預(yù)測方面仍然不夠完善,下一步將繼續(xù)完善預(yù)測模型。今后研究中,將基于WV-CNN的低誤差率預(yù)測,根據(jù)對雙高影響程度大小對體檢項(xiàng)目進(jìn)行排序,從數(shù)據(jù)分析的角度得到導(dǎo)致雙高的原因,醫(yī)護(hù)人員可以以此調(diào)整雙高治療方案。