王 波,鄧 科
(西安交通大學(xué) 智能網(wǎng)絡(luò)與網(wǎng)絡(luò)安全教育部重點(diǎn)實(shí)驗(yàn)室,陜西 西安 710049)
心電圖用以記錄心電活動(dòng),心電異?;顒?dòng)會(huì)引起心律失常。文中的心電圖數(shù)據(jù)來(lái)自MITBIH數(shù)據(jù)集,選取了數(shù)據(jù)集中最多的5類作為心電圖識(shí)別的對(duì)象,分別為正常節(jié)拍(N)、左束支傳導(dǎo)阻滯(LBBB)、右束支傳導(dǎo)阻滯(RBBB)、室性早搏(PVC)和房性早搏(APB)。
目前的心電圖識(shí)別算法主要有3種,分別為基于波形形狀的識(shí)別算法[1];基于波形特征的識(shí)別算法[2]以及基于深度學(xué)習(xí)的自動(dòng)特征提取算法[3]。ZHU等利用波形形態(tài)學(xué)特征,并提取RR間期和QRS波時(shí)限等特征,利用支持向量機(jī)將心電圖分為5類,最終的分類結(jié)果達(dá)到97.8%[4],該方法對(duì)心電圖質(zhì)量要求較高,抗干擾能力差,需對(duì)各波形準(zhǔn)確定位,診斷準(zhǔn)確率也較低。呂衛(wèi)等人采用S變換提取心電圖特征,然后利用支持向量機(jī)作為分類器的識(shí)別方法,將心電圖分為8類,最終的識(shí)別效果達(dá)到96.4%[5],該方法訓(xùn)練時(shí)間較短,但高維心電圖信號(hào)是復(fù)雜的,單一的分類器不能很好地完成識(shí)別任務(wù)。龐彥偉等人利用深度卷積神經(jīng)網(wǎng)絡(luò)的方法將心電圖分為5類,準(zhǔn)確率達(dá)到98%[6],該方法避免了人工提取特征,但訓(xùn)練時(shí)間較長(zhǎng),識(shí)別的準(zhǔn)確率依賴于網(wǎng)絡(luò)結(jié)構(gòu),不易設(shè)計(jì)出合適的卷積網(wǎng)絡(luò),對(duì)數(shù)據(jù)的要求較高。
基于上述總結(jié),由于心電圖數(shù)據(jù)失衡以及分類器單一對(duì)心電圖信息利用不充分,傳統(tǒng)的心律失常識(shí)別方法分類效果較差,因此筆者設(shè)計(jì)了一種新型的心律失常識(shí)別方法。
圖1 心律失常識(shí)別方法
心律失常識(shí)別方法如圖1所示,由下向上主要包括預(yù)處理、聚類插值過(guò)采樣(Density-Based spatial clustering of applications with noise- Synthetic Minority Over-sampling TEchnique,DB-SMOTE)算法、特征提取及多層堆疊分類器4個(gè)部分。
由于信號(hào)采集受到干擾,首先對(duì)心電圖信號(hào)進(jìn)行濾波去噪。心電圖信號(hào)中各類別數(shù)量存在嚴(yán)重的不平衡,分類效果受到極大影響,因此有必要構(gòu)造少數(shù)類樣本以增強(qiáng)數(shù)據(jù)集。傳統(tǒng)合成少數(shù)類過(guò)采樣技術(shù)(Synthetic Minority Over-sampling TEchnique,SMOTE)算法未考慮噪聲樣本的干擾以及少數(shù)類數(shù)據(jù)內(nèi)部的不均衡,因此提出了聚類插值過(guò)采樣算法來(lái)改善少數(shù)類樣本分布狀況。在特征提取階段,通過(guò)小波變換對(duì)心電圖信號(hào)壓縮作為提取的特征F。在分類階段,采用多層堆疊模型進(jìn)行識(shí)別,第一層基模型為識(shí)別準(zhǔn)確率高的K最近鄰(K-NearestNeighbor,KNN)、極端梯度提升樹(eXtreme gradient boosting,Xgboost)和梯度提升樹(Gradient BoostingDecision Tree,GBDT)模型,將提取后的特征F映射為新特征F′,為防止過(guò)擬合,第二層使用簡(jiǎn)單的邏輯回歸(Logistic Regression,LR)模型識(shí)別新特征F′。
數(shù)據(jù)來(lái)源為美國(guó)麻省理工學(xué)院提供的研究心律失常的數(shù)據(jù)庫(kù)MITBIH。由于傳感器采集到的心電信號(hào)受肌電干擾、工頻干擾以及基線漂移等不同性質(zhì)的噪聲干擾,因此需濾去信號(hào)中的噪聲,圖2為濾波去噪效果圖。然后根據(jù)Pan-Tompkins算法對(duì)處理后的心電圖信號(hào)進(jìn)行QRS波定位,主要有微分、平方、滑動(dòng)積分和閾值運(yùn)算4個(gè)步驟[7]。采用微分放大QRS波的斜率,便于檢測(cè)QRS波群。對(duì)信號(hào)進(jìn)行逐點(diǎn)平方,使得微分后的輸出非線性放大,有助于限制T波引起的誤差。接著利用滑動(dòng)窗口積分,使得絕對(duì)振幅增大和波形進(jìn)一步光滑,獲得R波斜率和其他波形信息。最后采用自適應(yīng)雙閾值檢測(cè)R峰,兩個(gè)閾值中較高者用于信號(hào)的第一次分析,如果在特定的時(shí)間間隔內(nèi)未檢測(cè)R峰,則使用較低的閾值[8],雙閾值的設(shè)計(jì)一定程度上就可以防漏檢。圖3為檢測(cè)R峰示意圖,紅圈標(biāo)注的位置為R峰,以R峰為基準(zhǔn)點(diǎn),向左取199個(gè)采樣點(diǎn),向右取100個(gè)采樣點(diǎn),合計(jì)300個(gè)采樣點(diǎn)為一個(gè)心拍。
圖2 ECG信號(hào)預(yù)處理效果圖
圖3 QRS波R峰檢測(cè)
按照機(jī)器學(xué)習(xí)數(shù)據(jù)不平衡原則,數(shù)據(jù)比例超過(guò)2∶1就屬于數(shù)據(jù)失衡。根據(jù)數(shù)據(jù)預(yù)處理后的心拍劃分,正常、左束支傳導(dǎo)阻滯、右束支傳導(dǎo)阻滯、室性早搏和房性早搏的心拍數(shù)量分別為74 962、8 068、7 254、7 034和2 545,明顯可看出各類樣本數(shù)量分布不均衡,尤其是房性早搏的心拍數(shù)量只有正常的4%。
現(xiàn)有大部分分類模型都是建立在數(shù)據(jù)分布均勻的基礎(chǔ)上,當(dāng)數(shù)據(jù)不平衡時(shí),會(huì)壓縮少數(shù)類的分類空間,造成嚴(yán)重的分類誤差。不過(guò)在現(xiàn)實(shí)條件中,采集和標(biāo)注心電圖數(shù)據(jù)的代價(jià)是昂貴的,因此生成少數(shù)類樣本來(lái)緩解數(shù)據(jù)失衡是一種較好的替代選擇。CHAWLA等在2002年提出經(jīng)典的合成少數(shù)類過(guò)采樣技術(shù)[9]。合成少數(shù)類過(guò)采樣技術(shù)主要流程如下所示:
(1) 少數(shù)類中的每一個(gè)樣本a,以歐式距離為度量,計(jì)算該樣本到少數(shù)類中其他樣本K近鄰;
(2) 根據(jù)少數(shù)類的不平衡情況設(shè)置采樣倍率N,對(duì)于每一個(gè)少數(shù)類樣本a,從其K近鄰中隨機(jī)選出若干個(gè)樣本,假設(shè)隨機(jī)選擇的近鄰為b;
(3) 隨機(jī)選擇的近鄰b與樣本a以如下的公式生成新樣本:
c=a+rand(0,1)*(a-b) 。
(1)
傳統(tǒng)的合成少數(shù)類過(guò)采樣技術(shù)忽略了少數(shù)類數(shù)據(jù)內(nèi)部的不平衡和噪聲樣本干擾的影響,同時(shí)可能會(huì)入侵多數(shù)類樣本分類空間。針對(duì)合成少數(shù)類過(guò)采樣技術(shù)存在的問(wèn)題,提出了DB-SMOTE算法。DB-SMOTE算法的主要思想是將少數(shù)類數(shù)據(jù)通過(guò)有噪空間的密度聚類(Density-Based Spatial Clustering of Applications with Noise,DBSCAN)算法[10]分為m個(gè)簇,過(guò)濾噪聲樣本集合,以各個(gè)簇的邊界數(shù)據(jù)作為主體,插值合成新的樣本。
有噪空間的密度聚類算法將少數(shù)類樣本點(diǎn)分為3種,為核心點(diǎn)、邊界點(diǎn)和噪聲點(diǎn),具體含義為:在半徑Eps內(nèi)含有超過(guò)MinPts數(shù)目的點(diǎn)為核心點(diǎn);在半徑Eps內(nèi)沒(méi)有超過(guò)MinPts數(shù)目的點(diǎn)為邊界點(diǎn);在半徑Eps內(nèi)沒(méi)有相鄰點(diǎn)為噪聲點(diǎn)。
圖4 DB-SMOTE生成結(jié)果可視化
DB-SMOTE算法具體步驟如下:
(1) 對(duì)少數(shù)類樣本集Xb進(jìn)行有噪空間的密度聚類,過(guò)濾不屬于任意簇的噪聲點(diǎn)集合Xn,根據(jù)樣本點(diǎn)的局部密度將簇劃分為{C1,C2,…,Cm},并獲取邊界點(diǎn)集合Cb;
(2) 將邊界點(diǎn)集合Cb中的點(diǎn)按邊界點(diǎn)在各簇{C1,C2,…,Cm}分布劃分為邊界樣本簇{Cb1,Cb2,…,Cbm};
(3) 以各簇邊界樣本的簇密度{ωb1,ωb2,…,ωbm}為比例,對(duì)各簇的邊界數(shù)據(jù){Cb1,Cb2,…,Cbm}使用合成少數(shù)類過(guò)采樣技術(shù)構(gòu)造新數(shù)據(jù)。
有噪空間的密度聚類算法設(shè)置參數(shù)半徑Eps為3.5、MinPts設(shè)為40、距離度量設(shè)置為minkowski。算法將少數(shù)類樣本分類3個(gè)簇,樣本個(gè)數(shù)分別為882、449和51,濾除的噪聲樣本個(gè)數(shù)為118,邊界點(diǎn)為367。根據(jù)少數(shù)類樣本失衡情況,DB-SMOTE算法生成少數(shù)類樣本1 101個(gè)。為便于直觀分析和理解,在文中利用流形學(xué)習(xí)算法t分布隨機(jī)近鄰嵌入(t-distributed stochastic neighbor embedding,tSNE)[11]實(shí)現(xiàn)心電圖信號(hào)的降維可視化。DB-SMOTE算法的生成結(jié)果見(jiàn)圖4,其中點(diǎn)表示原始心電圖數(shù)據(jù),加號(hào)表示生成的數(shù)據(jù)??梢郧逦吹缴傻男碾妶D心拍主要集中在原始數(shù)據(jù)的邊界,既擴(kuò)充了少數(shù)類樣本,也減少了生成樣本入侵到多數(shù)類樣本空間的風(fēng)險(xiǎn)。
在疾病類數(shù)據(jù)識(shí)別任務(wù)中,疾病被分為正常的代價(jià)比正常被認(rèn)為疾病的代價(jià)大得多。正常被分為疾病可通過(guò)后期的復(fù)診糾正,而疾病被分為正常很有可能錯(cuò)過(guò)最佳的治療時(shí)間,所以DB-SMOTE算法生成少數(shù)類樣本以提升少數(shù)類的識(shí)別效果很有意義。
在文中,DB-SMOTE算法生成房性早搏類1 101組心拍,每次試驗(yàn)隨機(jī)劃分訓(xùn)練集和測(cè)試集,有力地避免模型針對(duì)固定測(cè)試集調(diào)參。具體的訓(xùn)練集和測(cè)試集劃分如下:
表1 訓(xùn)練集和測(cè)試集劃分
因心電圖信號(hào)維度較高,為克服維度災(zāi)難并獲取本質(zhì)特征,特征提取在心律失常識(shí)別方法中起著重要作用。小波變換是分析非平穩(wěn)信號(hào)的有力工具,它能同時(shí)提供時(shí)間和頻率信息[12-13],文中采用小波變換對(duì)心電圖信號(hào)進(jìn)行壓縮。小波壓縮心電圖信號(hào)利用了信號(hào)的小波域表示相對(duì)稀缺性,心電圖信號(hào)可以使用少量近似系數(shù)和一些細(xì)節(jié)系數(shù)來(lái)精確表示。小波壓縮主要有3個(gè)步驟:
(1) 分解過(guò)程:選定一種小波,對(duì)信號(hào)進(jìn)行N層小波分解;
(2) 細(xì)節(jié)系數(shù)閾值選擇:對(duì)于從1到N的每個(gè)級(jí)別,選擇一個(gè)閾值,并將硬閾值應(yīng)用于細(xì)節(jié)系數(shù);
(3) 重構(gòu)信號(hào):利用N級(jí)的原始近似系數(shù)和1~N級(jí)的修正細(xì)節(jié)系數(shù)計(jì)算小波重構(gòu)。
由于心電圖信號(hào)的連續(xù)性和光滑性都較好,而sym 5小波函數(shù)具有緊支撐性、良好的連續(xù)性和對(duì)稱性,因此適合對(duì)心電信號(hào)分解;小波分解層數(shù)設(shè)置為4層。利用基于Birgé-Massart策略的小波系數(shù)選擇規(guī)則確定閾值,計(jì)算公式為
(2)
其中,M和α為經(jīng)驗(yàn)系數(shù),一般情況下M為第一層小波系數(shù)的長(zhǎng)度,α取1.5,i和j分別為當(dāng)前分解層數(shù)和總的分解層數(shù)。
文中使用壓縮率(Number of zeros,Nz)和保留能量作為衡量壓縮效果指標(biāo),壓縮率是指壓縮后不為零系數(shù)(L1)占原系數(shù)長(zhǎng)度(L)的比率:
(3)
保留能量率(Retained energy,Re)是指壓縮后信號(hào)保留的能量(Compress energy,Ce)與原始信號(hào)能量(Original energy,Oe)的比率:
(4)
通過(guò)圖5原始信號(hào)和重建恢復(fù)的信號(hào)對(duì)比,可以發(fā)現(xiàn)無(wú)論是從壓縮后的能量保留角度,還是恢復(fù)后的視覺(jué)感知,效果都是不錯(cuò)的,重建原始信號(hào)僅僅使用了14%的系數(shù),最終心電信號(hào)的維度從300降到了47。
圖5 原始信號(hào)和重建恢復(fù)信號(hào)對(duì)比
圖6 多層堆疊分類模型結(jié)構(gòu)圖
由于計(jì)算能力的提高和沒(méi)有完美的模型,多種模型融合的堆疊算法是當(dāng)前分類模型中最有前途的方向之一。與bagging和boosting集成模型不同,多層堆疊模型是一種融合多個(gè)不同模型的方法。和相互獨(dú)立的單一識(shí)別模型相比,堆疊模型具有更強(qiáng)的非線性,能夠降低泛化誤差,識(shí)別過(guò)程如圖6所示。
為達(dá)到最優(yōu)的識(shí)別效果,多層堆疊模型的基模型選取了識(shí)別準(zhǔn)確率高和差異化的分類器,分別為K近鄰、極端梯度提升樹、梯度提升樹。為了減少過(guò)擬合,在第一層模型訓(xùn)練利用5折交叉驗(yàn)證找到使模型泛化的最優(yōu)超參數(shù),最終K近鄰參數(shù)K設(shè)為1,距離參數(shù)為曼哈頓距離,極端梯度提升樹的學(xué)習(xí)率為0.05,樹的個(gè)數(shù)為600,樹深為15,梯度提升樹的學(xué)習(xí)率為0.1,樹的個(gè)數(shù)為800,樹深為15。
多層堆疊模型的第二層是將各分類器的輸出概率作為特征F′識(shí)別,由于第一層采用了多個(gè)復(fù)雜的非線性分類器,為了降低過(guò)擬合的風(fēng)險(xiǎn),第二層分類器選取了較為簡(jiǎn)單的邏輯回歸模型,正則化參數(shù)設(shè)置為l2,優(yōu)化算法為sag。
DB-SMOTE算法過(guò)濾了少數(shù)類房性早搏心拍中的噪聲,生成的樣本增強(qiáng)了少數(shù)類樣本集,也減少了入侵多數(shù)類樣本空間的風(fēng)險(xiǎn)。以堆疊模型中的極端梯度提升樹為例,結(jié)合合成少數(shù)類過(guò)采樣技術(shù)的極端梯度提升樹識(shí)別準(zhǔn)確率為99.26%,結(jié)合DB-SMOTE算法的極端梯度提升樹識(shí)別準(zhǔn)確率達(dá)99.42%。由極端梯度提升樹的對(duì)比實(shí)驗(yàn)可以看出,DB-SMOTE算法濾去了噪聲樣本,生成的少數(shù)類樣本改善了樣本的空間分布,提升了最終的識(shí)別效果。
圖7 使用DB-SMOTE識(shí)別房性早搏
在5類心電圖數(shù)據(jù)中,房性早搏的心拍數(shù)量是最少的,也是識(shí)別效果最差的。DB-SMOTE算法能夠有效改善數(shù)據(jù)分布狀況。采用DB-SMOTE算法生成少數(shù)類房性早搏心拍,并結(jié)合K近鄰、極端梯度提升樹和梯度提升樹進(jìn)行識(shí)別,與未使用DB-SMOTE算法進(jìn)行比較,各分類器識(shí)別表現(xiàn)見(jiàn)圖7。
從圖7中可以看出:對(duì)于K近鄰、極端梯度提升樹和梯度提升樹3種分類器,使用DB-SMOTE算法均提高了房性早搏類的分類準(zhǔn)確率。針對(duì)房性早搏類的識(shí)別情況,K近鄰的分類效果最差,結(jié)合DB-SMOTE算法后準(zhǔn)確率提高了1.35%,較大地提高了K近鄰的分類效果;對(duì)于分類效果較好的極端梯度提升樹和梯度提升樹,結(jié)合DB-SMOTE算法后識(shí)別準(zhǔn)確率未有較大的提升。DB-SMOTE算法對(duì)于效果較差的分類器,準(zhǔn)確率提升較為明顯,對(duì)于分類效果較好的分類器,準(zhǔn)確率略有提高。
單一的分類器識(shí)別結(jié)果并未令人滿意,因此構(gòu)造多層堆疊分類器來(lái)提升模型性能。實(shí)驗(yàn)中為提升效果,選取單一分類器中性能較好的3個(gè)分類器K近鄰、極端梯度提升樹和梯度提升樹?;诸惼黝愋筒煌?,各有優(yōu)點(diǎn)和缺點(diǎn),可通過(guò)分類器之間的互補(bǔ)達(dá)到提升性能的作用。
多層堆疊模型的基模型融合不是簡(jiǎn)單使用投票機(jī)制,而是通過(guò)第二層的邏輯回歸分類器將基模型的結(jié)果作為新的特征向量,再一輪訓(xùn)練和預(yù)測(cè),最后輸出識(shí)別結(jié)果。經(jīng)過(guò)投票法與邏輯回歸模型融合的對(duì)比實(shí)驗(yàn),投票法的識(shí)別準(zhǔn)確率達(dá)99.46%,而邏輯回歸模型融合的識(shí)別準(zhǔn)確率為99.66%,明顯優(yōu)于投票法的結(jié)果。從圖8的實(shí)驗(yàn)結(jié)果可看出,多層堆疊模型與單獨(dú)使用一種分類器進(jìn)行分類相比,在模型性能上都優(yōu)于對(duì)比的單一分類器,尤其是少數(shù)類房性早搏的效果提升最為明顯。分類器的堆疊顯然會(huì)造成模型收斂時(shí)間變長(zhǎng);不過(guò),實(shí)際應(yīng)用多為離線學(xué)習(xí),訓(xùn)練的復(fù)雜度對(duì)模型應(yīng)用影響不大。
圖8 使用多層堆疊集成分類對(duì)比
表2 混淆矩陣
在分類任務(wù)中一般以分類的準(zhǔn)確率來(lái)衡量任務(wù)的成功程度,但在數(shù)據(jù)不平衡的情況下,僅以準(zhǔn)確率作為衡量指標(biāo)不夠全面。在機(jī)器學(xué)習(xí)領(lǐng)域,常利用混淆矩陣客觀評(píng)價(jià)分類性能,它是精度評(píng)價(jià)的一種標(biāo)準(zhǔn)格式,混淆矩陣具體見(jiàn)表2。
其中,TP表示正確分類的正類樣本數(shù)量,TN表示正確分類的錯(cuò)誤樣本數(shù)量,F(xiàn)P表示錯(cuò)誤分類的負(fù)類樣本數(shù)量,F(xiàn)N表示為被錯(cuò)誤分類的正類樣本數(shù)量?;诨煜仃?,目前有一些評(píng)估指標(biāo)專門用于評(píng)價(jià)不平衡的數(shù)據(jù)集。選擇F-value(Fvalue)以及G-mean(Gmean)作為評(píng)估分類器性能的指標(biāo),平均方法為宏平均(macro-average)。
(5)
(6)
(7)
Gmean=(PR)1/2,
(8)
其中,P表示查準(zhǔn)率,R表示查全率,β為查全率對(duì)查準(zhǔn)率的相對(duì)重要性。文中將β設(shè)置為1,代表查準(zhǔn)率和查全率的重要性相同。
表3 各分類器F-value和G-mean實(shí)驗(yàn)對(duì)比
在相同的數(shù)據(jù)集下,13層的卷積神經(jīng)網(wǎng)絡(luò)VGG13的準(zhǔn)確率達(dá)到98.7%,其中,學(xué)習(xí)率設(shè)為0.01,批尺寸設(shè)為256,epoch設(shè)為300;單層的LSTM網(wǎng)絡(luò)準(zhǔn)確率達(dá)到99.08%,其中,學(xué)習(xí)率取為0.01,批尺寸取為64,epoch取為300,這兩種深度網(wǎng)絡(luò)都不如文中識(shí)別方法效果好。和傳統(tǒng)機(jī)器學(xué)習(xí)相比,深度學(xué)習(xí)的訓(xùn)練需要更多的數(shù)據(jù)以及復(fù)雜的深度網(wǎng)絡(luò),在較淺的卷積神經(jīng)網(wǎng)絡(luò)或數(shù)據(jù)較少的情況下,傳統(tǒng)機(jī)器學(xué)習(xí)的表現(xiàn)更為突出。同樣針對(duì)MITBIH數(shù)據(jù)集,與表4總結(jié)的參考文獻(xiàn)給出的實(shí)驗(yàn)結(jié)果對(duì)比,文中提出的算法性能更優(yōu)。
表4 文中的識(shí)別方法與相關(guān)研究算法對(duì)比
針對(duì)心電圖信號(hào)識(shí)別性能不理想尤其是少數(shù)類房性早搏的心拍識(shí)別效果差的問(wèn)題,筆者提出了一種識(shí)別心律失常的方法。其中主要包括DB-SMOTE算法濾去少數(shù)類噪聲樣本,通過(guò)構(gòu)造數(shù)據(jù)緩解樣本的類別間失衡和類內(nèi)失衡,以小波變換壓縮心電圖信號(hào)以及多層堆疊模型組合分類器互補(bǔ)提升識(shí)別性能。該方法能夠充分利用心電圖信號(hào)中的信息,整體的分類準(zhǔn)確率達(dá)到99.66%,F(xiàn)-value的準(zhǔn)確率為99.43%,G-mean的準(zhǔn)確率為99.44%。心律失常識(shí)別方法提高了準(zhǔn)確率、F-value和G-mean,尤其是在少數(shù)類疾病的識(shí)別上有較大提升,也優(yōu)于VGG13和LSTM等深度學(xué)習(xí)網(wǎng)絡(luò),對(duì)未來(lái)應(yīng)用于臨床試驗(yàn)具有一定意義。