謝 爽 范會(huì)敏
(西安工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 陜西 西安 710021)
高血壓和高血脂是常見慢性病,早期一般沒有癥狀,是心腦血管疾病的主要危險(xiǎn)因素[1]。《2017中國(guó)心血管病報(bào)告數(shù)據(jù)》中指出,雙高疾病對(duì)我國(guó)公民的危害日益加劇,人們對(duì)雙高的預(yù)防治療手段的需求也越來越迫切。
在如今信息發(fā)展迅速的現(xiàn)代化社會(huì)中,醫(yī)療數(shù)據(jù)大部分都以電子醫(yī)療病歷的形式記錄,其中包含診斷、癥狀、檢查和化驗(yàn)等信息,具有維度高、稀疏的特點(diǎn)。針對(duì)醫(yī)療數(shù)據(jù)維度高、稀疏的特點(diǎn),一些疾病預(yù)測(cè)模型被提出。
傳統(tǒng)的疾病風(fēng)險(xiǎn)預(yù)測(cè)主要基于Cox比例風(fēng)險(xiǎn)回歸模型及邏輯回歸模型。Cox比例風(fēng)險(xiǎn)模型是由英國(guó)統(tǒng)計(jì)學(xué)家D.R.Cox提出的一種半?yún)?shù)回歸模型。Wang等[2]利用Cox模型,基于弗雷明漢心臟研究來建立房顫患者發(fā)生腦卒中及死亡的風(fēng)險(xiǎn)預(yù)測(cè)模型。該研究腦卒中預(yù)測(cè)模型和腦卒中或死亡預(yù)測(cè)模型的H-L統(tǒng)計(jì)量分別為7.6和6.5,AUC分別為0.66、0.70。
盡管傳統(tǒng)的回歸方法在疾病預(yù)測(cè)方面有廣泛的應(yīng)用,但這些方法在預(yù)測(cè)準(zhǔn)確度和模型可解釋方面仍有提升的空間。近年來,機(jī)器學(xué)習(xí)領(lǐng)域的特征選擇和有監(jiān)督學(xué)習(xí)建模方法越來越多地用于疾病預(yù)測(cè)問題。
Khosla等[3]采用了特征選擇和機(jī)器學(xué)習(xí)方法來預(yù)測(cè)5年內(nèi)的腦卒中發(fā)生率。該研究的數(shù)據(jù)來自心血管健康研究數(shù)據(jù)集,采用了四種方法進(jìn)行缺失值填充,包括均值填充、中位數(shù)填充、線性回歸,及期望最大化方法;特征選擇方法包括前向特征選擇、L1正則化和保守均值特征選擇;建模時(shí)嘗試了支持向量機(jī)和基于邊緣的刪失回歸方法。使用L1正則化邏輯回歸進(jìn)行特征選擇,然后使用支持向量機(jī)進(jìn)行預(yù)測(cè),采用十折交叉驗(yàn)證的平均測(cè)試AUC(Area Under Curve)為0.764,優(yōu)于L1正則化Cox模型。將各種特征選擇算法與預(yù)測(cè)算法相結(jié)合的平均顯示,保守均值和基于邊緣的刪失回歸相結(jié)合在AUC評(píng)價(jià)標(biāo)準(zhǔn)中能達(dá)到0.777,為性能最佳的結(jié)果。
Choi等[4]在心衰的預(yù)測(cè)上率先使用了基于循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的方法。針對(duì)單個(gè)臨床事件的建模采用了自然語言理解中常用的one-hot向量的方式,把任何一個(gè)臨床事件都表示成N維的向量,但向量的最后一位為事件發(fā)生時(shí)間距離預(yù)測(cè)時(shí)間的間隔,類似于一個(gè)時(shí)間戳。使用門循環(huán)單元從每個(gè)輸入的臨床事件向量計(jì)算相應(yīng)的隱狀態(tài),在最終的隱狀態(tài)上應(yīng)用邏輯回歸模型計(jì)算最后的心衰風(fēng)險(xiǎn)概率。與線性回歸、支持向量機(jī)和K近鄰算法等多種經(jīng)典回歸或機(jī)器學(xué)習(xí)方法實(shí)驗(yàn)對(duì)比后發(fā)現(xiàn),基于RNN方法的預(yù)測(cè)AUC有提高。
綜上所述,由于電子病歷數(shù)據(jù)高維度、高稀疏的特點(diǎn),疾病預(yù)測(cè)研究的重點(diǎn)主要在特征處理方面。因此,本文提出一種Word2vec和卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合的特征提取方法(WV-CNN),從特征處理方面入手進(jìn)行雙高疾病的預(yù)測(cè)研究。
使用Word2vec進(jìn)行詞語表示,得到的詞向量為低維稠密性實(shí)數(shù),并且很好地保留了語義信息[5],最后利用卷積神經(jīng)網(wǎng)絡(luò)從局部到全局相關(guān)性特征的學(xué)習(xí)能力,對(duì)大量文本向量進(jìn)行深度學(xué)習(xí),將文本特征中的重要信息提取出來,以提高預(yù)測(cè)效果。
由于針對(duì)醫(yī)學(xué)體檢領(lǐng)域的文本特征提取,需要采用該領(lǐng)域的文本進(jìn)行向量庫的訓(xùn)練,得出的詞向量更貼合該問題領(lǐng)域。具體詞向量庫構(gòu)建流程如圖1所示。

圖1 詞向量庫構(gòu)建
先對(duì)文本Di進(jìn)行分詞處理Di=[wi,w2,…,wn],n為詞語個(gè)數(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為對(duì)應(yīng)于文本特征中的第i個(gè)詞的k維詞向量,將這些詞向量作為卷積神經(jīng)網(wǎng)絡(luò)的輸入。長(zhǎng)度為n的文本表示為:
x1:n=x1⊕x2⊕…⊕xn
(1)
式中:⊕是連接運(yùn)算符;xi:i+j指的是詞向量xi,xi+1,…,xi+j的連接。
卷積中卷積核w∈Rhk作用在h個(gè)詞向量上以產(chǎn)生新特征,h為卷積步長(zhǎng)。卷積核掃過詞向量xi:i+h-1生成特征ci,計(jì)算式表示為:
ci=f(w·xi:i+h-1+b)
(2)
式中:b∈R是偏置項(xiàng);f(·)是激勵(lì)函數(shù)。文本表述中,單個(gè)主語、主語+謂語、主語+謂語+賓語三種文本表述組合就能將一個(gè)句子的主要意思簡(jiǎn)潔地表述清楚。卷積層中,考慮到上述三種文本表述組合,卷積核大小分別為1個(gè)詞向量、2個(gè)詞向量和3個(gè)詞向量三種。
使用非線性函數(shù)作為激勵(lì)函數(shù),使神經(jīng)網(wǎng)絡(luò)表達(dá)能力更加強(qiáng)大,不再是輸入的線性組合,幾乎可以逼近任意函數(shù),以協(xié)助表達(dá)復(fù)雜特征。常見的激勵(lì)函數(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}作為對(duì)應(yīng)于該特定卷積核的特征,這是為了在特征映射找到最據(jù)代表性的特征,最后再經(jīng)過全連接層直接輸出特征。卷積神經(jīng)網(wǎng)絡(luò)的具體參數(shù)設(shè)置如表1所示。

表1 卷積神經(jīng)網(wǎng)絡(luò)參數(shù)設(shè)置
基于數(shù)據(jù)挖掘的疾病預(yù)測(cè)的步驟包括數(shù)據(jù)集的預(yù)處理、特征工程、使用機(jī)器學(xué)習(xí)算法訓(xùn)練預(yù)測(cè)模型,然后使用測(cè)試集驗(yàn)證模型的效果。數(shù)據(jù)預(yù)處理是指對(duì)訓(xùn)練集和測(cè)試集中的特征規(guī)范化,如科學(xué)計(jì)數(shù)法表示數(shù)據(jù)的處理、數(shù)值與字符混合數(shù)據(jù)的處理等。數(shù)據(jù)中含有文本型數(shù)據(jù),運(yùn)用特征提取方法將文本型數(shù)據(jù)中的關(guān)鍵信息提取出來并轉(zhuǎn)化為向量,作為新的特征合并到數(shù)據(jù)集中,然后利用預(yù)測(cè)算法預(yù)測(cè)出雙高的具體數(shù)值。
為了驗(yàn)證WV-CNN的效果,從輸入數(shù)據(jù)量級(jí)和預(yù)測(cè)算法等幾個(gè)不同角度對(duì)算法進(jìn)行對(duì)比實(shí)驗(yàn)。
在訓(xùn)練過程中分別使用Doc2vec算法和WV-CNN算法進(jìn)行特征處理,將處理后的數(shù)據(jù)特征輸入到訓(xùn)練后的模型中,對(duì)測(cè)試集進(jìn)行預(yù)測(cè),得到對(duì)每個(gè)個(gè)體的收縮壓、舒張壓、甘油三酯、高密度脂蛋白膽固醇和低密度脂蛋白膽固醇五項(xiàng)指標(biāo)的預(yù)測(cè)結(jié)果,并與實(shí)際檢測(cè)值進(jìn)行對(duì)比。對(duì)比實(shí)驗(yàn)設(shè)計(jì)如圖4所示。

圖4 實(shí)驗(yàn)設(shè)計(jì)
實(shí)驗(yàn)使用均方誤差MSE作為評(píng)價(jià)指標(biāo),其第j項(xiàng)的計(jì)算式為:
(5)

(6)
本實(shí)驗(yàn)采用的數(shù)據(jù)集是由體檢中心提供的共10 000條個(gè)人體檢信息數(shù)據(jù)集,涉及BMI指數(shù)、心電圖、B超、血液檢驗(yàn)和尿液檢驗(yàn)等一系列數(shù)值型和文本型數(shù)據(jù)特征。實(shí)驗(yàn)中,對(duì)數(shù)據(jù)集按9 ∶1的比例分為訓(xùn)練集和測(cè)試集,再在訓(xùn)練集中以9 ∶1的比例分為訓(xùn)練集和驗(yàn)證集。其中,訓(xùn)練集的作用是計(jì)算梯度并更新權(quán)重;驗(yàn)證集的作用為確定正確的超參數(shù),以避免過擬合現(xiàn)象的發(fā)生;測(cè)試集的作用為給出實(shí)際的評(píng)價(jià)指標(biāo)。
在疾病預(yù)測(cè)中,樣本數(shù)據(jù)的大小不僅影響預(yù)測(cè)的效率還對(duì)預(yù)測(cè)的準(zhǔn)確率有著極大的影響。樣本數(shù)據(jù)不是越大越好,對(duì)于每一個(gè)具體問題,都有其最合適的樣本數(shù)據(jù)。為驗(yàn)證在不同樣本數(shù)據(jù)輸入下Doc2vec算法和WV-CNN算法的MSE值變化,本實(shí)驗(yàn)分別在支持向量機(jī)(SVM)和梯度提升樹(GBDT)算法下進(jìn)行對(duì)比實(shí)驗(yàn),結(jié)果如圖5和圖6所示。

圖5 SVM算法預(yù)測(cè)

圖6 GBDT算法預(yù)測(cè)
實(shí)驗(yàn)結(jié)果表明,相對(duì)于其他預(yù)測(cè)算法,WV-CNN算法的MSE值在不同的數(shù)量級(jí)輸入下基本都要低于Doc2vec算法。
由圖6可見,在輸入樣本數(shù)量在500和1 000左右時(shí),Doc2vec算法的MSE值比WV-CNN算法略微高一些,分析原因主要是因?yàn)檩斎霕颖緮?shù)量太少,導(dǎo)致經(jīng)卷積神經(jīng)網(wǎng)絡(luò)提取到特征信息有限。在圖5和圖6中,隨著輸入樣本數(shù)量的增加,MSE值都呈下降趨勢(shì)。此外,在輸入樣本數(shù)量為8 000或8 500左右時(shí)MSE值較低,且之后MSE值趨于穩(wěn)定。
為了驗(yàn)證WV-CNN方法在不同預(yù)測(cè)算法下的有效性,本實(shí)驗(yàn)分別選取線性回歸、支持向量機(jī)、隨機(jī)森林、梯度提升樹和極端梯度提升(XGBoost),在輸入樣本數(shù)量為8 000的相同環(huán)境下進(jìn)行對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果詳細(xì)數(shù)據(jù)如表2所示。

表2 Doc2vec方法與WV-CNN方法在不同預(yù)測(cè)算法下的對(duì)比實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)結(jié)果表明,在使用不同的預(yù)測(cè)算法情況下,本文算法的MSE值都要低于Doc2vec算法。可以看出,支持向量機(jī)算法相對(duì)于其他算法的預(yù)測(cè)效果而言最差,但經(jīng)過WV-CNN算法得到的MSE值相比Doc2vec算法下降了0.314 2,經(jīng)過特征提取改進(jìn)后預(yù)測(cè)效果提升明顯。相對(duì)于其他算法,極端梯度提升算法的MSE值變化不明顯,使用了WV-CNN算法特征提取后MSE值下降了0.081 7,但預(yù)測(cè)效果最穩(wěn)定。綜合比較,經(jīng)WV-CNN算法提取文本特征后再使用極端梯度提升算法預(yù)測(cè)獲得的MSE值最小,達(dá)到了0.025 4。
為了驗(yàn)證WV-CNN算法對(duì)文本特征提取的有效性,本文進(jìn)行了一系列對(duì)比實(shí)驗(yàn),分別從輸入數(shù)據(jù)數(shù)量級(jí)、預(yù)測(cè)算法兩方面進(jìn)行實(shí)驗(yàn),采用MSE值作為評(píng)價(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ù)量級(jí)的MSE值平均降低了0.192 4,在各個(gè)不同預(yù)測(cè)算法中MSE值平均降低了0.245 4。經(jīng)過上述對(duì)比實(shí)驗(yàn)可以得出,在雙高疾病預(yù)測(cè)中,WV-CNN算法的特征提取能力在不同輸入數(shù)據(jù)數(shù)量級(jí)和不同預(yù)測(cè)方面都有很好的表現(xiàn)。
在雙高疾病預(yù)測(cè)過程中,本文提出了一種基于WV-CNN的特征提取方法,對(duì)體檢中心提供體檢數(shù)據(jù)進(jìn)行特征處理,并且使用Doc2vec算法作為對(duì)比組對(duì)特征進(jìn)行處理。經(jīng)過不同數(shù)量級(jí)樣本數(shù)據(jù)和不同預(yù)測(cè)算法兩個(gè)對(duì)比實(shí)驗(yàn),結(jié)果表明:基于WV-CNN的特征提取在疾病預(yù)測(cè)方面有較低的誤差率,具有不錯(cuò)的效果。盡管如此,基于WV-CNN的雙高指標(biāo)預(yù)測(cè)方法在疾病預(yù)測(cè)方面仍然不夠完善,下一步將繼續(xù)完善預(yù)測(cè)模型。今后研究中,將基于WV-CNN的低誤差率預(yù)測(cè),根據(jù)對(duì)雙高影響程度大小對(duì)體檢項(xiàng)目進(jìn)行排序,從數(shù)據(jù)分析的角度得到導(dǎo)致雙高的原因,醫(yī)護(hù)人員可以以此調(diào)整雙高治療方案。