李潤川,張行進,陳 剛,姚金良,于 婕,王宗敏
(1.鄭州大學 信息工程學院,河南 鄭州 450001;2.鄭州大學 互聯(lián)網(wǎng)醫(yī)療與健康服務河南省協(xié)同創(chuàng)新中心,河南 鄭州 450001)
心電圖(ECG)是一種非侵入性、廉價且成熟的診斷工具,是初步診斷心律失常的重要依據(jù)。大多數(shù)心律失常是無害的,但有些可能危及人的生命[1]。因此,心律失常的準確檢測在預防心血管疾病中發(fā)揮著至關重要的作用。
特征提取是心搏分類的關鍵環(huán)節(jié)。目前已有學者對心搏分類進行了研究,使用包括形態(tài)特征[2-3]、小波特征[4]、高階統(tǒng)計特征[5]、Hermite函數(shù)[6]、QRS振幅矢量[7]、QRS復合波面積[8]和間期特征[3]在內的各種特征進行心搏分類。常用的用于心搏分類的算法有:線性分類器[9]、決策樹[8]、支持向量機[2,10]、隨機森林[11]和KNN[12]等。Ayar等[8]基于遺傳算法提取特征,并使用C4.5算法進行分類。Zhu等[2]將支持向量機應用于形態(tài)特征提取并給出自動診斷結果。Qin等[4]將SVM應用于低維ECG特征以實現(xiàn)對心搏的分類。Barhatte等[7]提出了一種基于小波能量直方圖和支持向量機的心電信號分析與分類方法。Mondéjar-guerra等[10]基于集成支持向量機進行心律失常分類。盡管以上方法可以很好地區(qū)分不同類型的心搏,但受不平衡數(shù)據(jù)的影響較大,且不適用于大樣本。Lu 等[11]提取單個心搏的2D-CNN特征和傳統(tǒng)特征,并應用隨機森林分類器進行分類。Saini 等[12]提出了一種通過六級小波變換提取ECG信號特征并使用KNN分類器進行分類的方法,準確度高,對異常值不敏感。Bouaziz 等[13]使用離散的小波變換對心電圖進行分割、提取特征,并采用KNN算法進行心搏分類,分類效果好、準確度高。Yuwono等[14]在小樣本的數(shù)據(jù)集下采用改進的K-近鄰分類器,根據(jù)RR間期、QRS間期等特征進行心電圖數(shù)值評估的預定義,改進的K-近鄰分類器再利用該預定義的數(shù)值進行分類。Zaorálek等[3]基于ECG形態(tài)特征和RR間期提出了一種梯度推進模型的分類方法。以上研究能較好地識別不同類型的心搏,但部分方法的分類性能有待提高。
本文選取具有重要臨床意義的波形形態(tài)、間期和幅值作為心搏分類的特征參數(shù),分析了不同特征組合對分類結果的影響,提出了一種新的心搏分類方法。
心搏的識別和分類包括:信號預處理、心搏分割、特征提取、心搏分類。本文的主要工作為特征提取及心搏分類兩個部分。
ECG信號可以從體表無損傷地檢測到,但具有不穩(wěn)定性、非線性和微弱性等特點,振幅一般只有0.05~5 mV,頻率集中在0.05~100 Hz,且信號采集極易受到外界干擾,不利于后期的特征提取,因此需要對信號進行去噪處理。主要噪聲有基線漂移、工頻干擾和肌電干擾。
基線漂移由呼吸引起,頻率小于5 Hz,類似于正弦曲線,本文采用多項式曲線擬合法去除基線漂移。工頻干擾由供電網(wǎng)絡產(chǎn)生,頻率為50或60 Hz,本文采用陷波濾波器去除工頻干擾,效果好、速度快。肌電干擾由人體肌肉收縮產(chǎn)生,本文采用切比雪夫數(shù)字低通濾波器去除肌電干擾。去噪預處理前后的心電波形圖如圖1所示。
圖1 去噪預處理前后心電波形圖Figure 1 ECG waveforms before and after denoising
一個正常心搏的波形如圖2所示,通常把ECG信號分成3個主要部分:代表心房肌去極化的P波、心室肌去極化期間出現(xiàn)的QRS復合波、代表心室肌復極化的T波。由于U波僅出現(xiàn)在某些導聯(lián)中,故未在圖2中繪制。本文選取單個心搏形態(tài)特征,以P波、QRS間期、T波、PR間期、QT間期、ST段、RR間期和R波幅值作為心搏分類的特征參數(shù),采樣率(SR)取360 Hz。
圖2 正常心搏波形Figure 2 Normal heart beat waveform
(1)235單心搏:根據(jù)文獻[15]中確定的R峰位置,從心電圖記錄中提取R峰前后的235個點作為單心搏形態(tài)特征。
(2)P波:反映左右心房除極過程中電位的變化,竇房結所觸發(fā)的心房除極產(chǎn)生P波。
P波時長的計算式為
(1)
(3)QRS波群:P波后出現(xiàn)的一組變化復雜且波幅較大的綜合波群,代表心室除極的電位變化。
QRS間期時長的計算式為
(2)
(4)T波:QRS波群后的一個波幅較大、持續(xù)時間較長的波。
T波時長的計算式為
(3)
(5)RR間期:RR間期是指相鄰2個R波波峰之間的時長,為0.6~1.0 s。
(6)PR間期:從P波起始點至QRS波群起始的時間。代表心房開始除極到心室開始除極的時間。
PR間期時長的計算式為
(4)
(7)ST段:從QRS波群結束點到T波起點之間的線段,正常的ST段光滑且與波前枝融合,與基線平齊,間距一般不超過0.05 mV。
ST段時長的計算式為
(5)
(8)QT間期:QRS波群起點和T波終點之間的時長,表示心室去極化和復極化的總時間。
QT間期時長的計算式為
(6)
(9)R波幅值:R波波形高且尖,其幅值是所有波里面振幅最大的一個。
本文將特征劃分為7個集合:集合A={235單心搏形態(tài)特征};集合B={P波,QRS波,T波};集合C={PR間期};集合D={QT間期};集合E={ST段};集合F={RR間期};集合G={R波幅值}。
特征融合(feature fusion,FF)是將提取的不同特征通過某種方法生成新的特征,使新特征對分類更加有效[16]。特征融合方法可以綜合利用多種不同的特征,實現(xiàn)多特征的優(yōu)勢互補,從而獲得更加有效的新特征。
由于心電圖心搏結構復雜多樣,單一的特征很難完全反映心搏的類型,因此在對心搏進行分類時,使用多特征融合往往可以取得更佳的分類效果。心電分析中通常提取的特征包括P波、QRS波群、T波、PR間期、QT間期、ST段、RR間期、R波幅值等。另外,本文選取235個采樣點作為單個心搏的形態(tài)特征。對這些特征進行不同方式的組合,并將組合后的特征送入分類器中便可以使分類更加準確。本文選取了具有心電圖醫(yī)學意義的波形形態(tài)、間期和幅值作為特征融合的參數(shù),這樣使得融合后的特征對心搏分類更有效。
本文提出了基于KNN在心電圖分類診斷中的應用,構造了基于KNN的心電圖分類器。KNN作為一種高度靈活、通用性強的分類算法,具有廣闊的應用前景。其精度高,對異常值不敏感,無須數(shù)據(jù)輸入假定,對各種各樣的樣本分布都能進行分類,并且對小樣本數(shù)據(jù)也有很好的分類能力。由于KNN算法主要靠周圍的臨近樣本的類別進行分類,并不靠判別類域的方法來確定其所屬類別,因此對于心搏分類這樣的問題,KNN算法較其他方法更為合適。其計算式為
(7)
KNN算法的輸入為訓練數(shù)據(jù)集T={(x1,y1),(x2,y2),…,(xm,ym)},其中,xi為x的特征向量,yi∈Y={c1,c2,…,cK}為實例的類別;然后根據(jù)給定的距離度量方式在訓練集T中找出與測試樣例x最近鄰的k個點,得到這k個點的真實類別;最后根據(jù)式(7)中的多數(shù)投票原則確定實例x的所屬類別y。
KNN算法是一種典型的惰性學習方法,其分類效果關鍵因素之一就是距離的度量,通常采用的距離度量方式有歐式距離和曼哈頓距離。歐式距離是解析幾何里最常用的一種計算方法,在歐幾里德空間中進行距離度量非常有用,但是歐式距離在計算時對于樣本不同特征之間的差別等同看待,因此對于心搏中提取到的幅值、間期等特征并不能很好地將它們之間的差別區(qū)分開來。而曼哈頓距離則反映的是不同特征在對應的軸上產(chǎn)生投影的距離總和,可以很好地滿足在計算距離時區(qū)別對待心搏不同特征的需求,因此本文使用曼哈頓距離計算測試集和訓練樣本之間的距離,定義為
D(x,y)=|xi-xj|+|yi-yj|。
(8)
實驗數(shù)據(jù)統(tǒng)計如表1所示。實驗在i7-7 700 K處理器和32 GB RAM的PC工作站下進行。算法在Python3.7和MATLAB@R2014b軟件平臺上運行。MIT-BIH心律失常數(shù)據(jù)庫是研究人員用于評估心律失常檢測器和分類器的常用標準測試集。該數(shù)據(jù)庫包含48個雙導聯(lián)記錄,每條記錄包括0.5 h的雙導聯(lián)動態(tài)心電圖,采樣率為360 Hz。根據(jù)ANSI/AAMI EC57∶1998標準,MIT-BIH心律失常數(shù)據(jù)庫的心搏被分為5個類別,即N(正?;蚴鲗ё铚?、S(室上性異位搏動)、V(心室異位搏動)、F(融合搏動)和Q(未指定搏動)[15]。本文實驗基于MIT-BIH心律失常數(shù)據(jù)庫中100 640個心搏進行分類,包括90 355個N類別的心搏、3 120個S類別的心搏和7 165個V類別的心搏。本文實驗數(shù)據(jù)從數(shù)據(jù)集中隨機選取心搏數(shù)據(jù)的90%作為訓練集,剩余的10%作為測試集。
表1 實驗數(shù)據(jù)統(tǒng)計Table 1 Statistics of experimental data
為評估心搏分類模型的性能,本文將測試結果分為4種:真陰性(TN),預測為陰性,實際上也是陰性的數(shù)量;假陰性(FN),把陽性歸類為陰性的數(shù)量;真陽性(TP),預測為陽性,實際上也是陽性的數(shù)量;假陽性(FP),把陰性歸類為陽性的數(shù)量。
本文使用準確率、靈敏度、特異性和陽性預測值評估心搏分類的性能。準確率(Acc)是分類器正確分類的數(shù)量占總樣本數(shù)的比率,反映了測試結果與實際結果之間的一致性。靈敏度(Se)是指被判斷為陽性的樣本占實際為陽性的樣本的比例。靈敏度越高,正確預測的比例越大。特異性(Sp)是指被判斷為陰性的樣本占實際為陰性的樣本的比例。陽性預測值(Ppv)在文獻中也稱為精確度。上述4個評價指標的計算式分別為
Se=TP/(TP+FN);
(9)
Sp=TN/(TN+FP);
(10)
Ppv=TP/(TP+FP);
(11)
(12)
為更好地比較不同特征組合對心搏分類的影響,本文基于集合A~G與KNN模型進行了5組實驗,實驗結果見表2。
表2 基于不同集合與KNN模型的分類結果Table 2 Classification results based on different sets and KNN models
第1組實驗基于集合A與KNN模型進行心搏分類。實驗結果表明,基于235單心搏形態(tài)特征與KNN模型的平均分類準確率為99.1%,但僅使用單心搏形態(tài)特征不夠全面,S類的靈敏度也不高。
第2組實驗基于集合B、C、D、E、F與KNN模型進行了實驗。實驗結果表明,基于P-QRS-T波、PR間期、QT間期、ST段、RR間期與KNN模型的平均分類準確度為96.0%。該實驗的不足是間期特征具有局部性,不能全面描述心搏信息。
第3組實驗基于集合G與KNN模型進行了實驗。實驗結果表明,基于R波幅值與KNN模型的平均分類準確率為91.0%,但不足之處在于單一幅值特征不能全面描述心搏特點。
第4組實驗基于集合A、B、C、D、E、F與KNN模型進行心搏分類。實驗結果表明,基于235單心搏形態(tài)特征、P-QRS-T波、PR間期、QT間期、ST段、RR間期與KNN模型的平均分類準確率為99.1%,但單心搏形態(tài)和間期對室性早搏等疾病的判斷具有一定的局限性。
第5組實驗基于集合A、B、C、D、E、F、G與KNN模型進行心搏分類。實驗結果表明,基于235單心搏形態(tài)特征、P-QRS-T波、PR間期、QT間期、ST段、RR間期和R幅值的KNN模型的平均分類準確率為99.2%。其中,S類心搏的靈敏度為87.8%,陽性預測值為95.1%;V類心搏的靈敏度為96.6%,陽性預測值為98.2%。
表3對比了本文方法與其他文獻方法的分類性能,其他文獻實驗數(shù)據(jù)也都來自于MIT-BIH心律失常數(shù)據(jù)庫。從心搏類型來看,本文提出的方法使得3種類型的心搏都獲得了最高的陽性預測值。與文獻[2-3,10]相比,基于本文提出的方法,3種類型心搏的各項指標都達到了最高,平均分類準確率為99.2%。文獻[13-14]使用的分類算法同為KNN算法,結果表明,本文方法除S類的靈敏度與精確度略低于文獻[13]的,其他的各項指標均具有明顯的優(yōu)勢。
表3 和其他文獻的對比Table 3 Comparison with other literatures
本文提出的分類方法融合了心搏形態(tài)特征和多個具有醫(yī)學意義的幅值間期特征,能更好地辨識出不同類型的心搏。而且KNN算法更加適用于心搏分類,因此本文算法能在心搏分類問題上有更好的分類效果。
本文提出了一種基于多特征融合與KNN模型的心搏智能分類方法,該方法根據(jù)心電圖醫(yī)學意義提取相關心搏特征,對比分析了心搏特征的不同組合對心搏分類的影響,選取最佳特征組合,并在MIT-BIH心律失常數(shù)據(jù)庫上進行了測試,取得了較好的效果。結果表明,本文提取的特征在心搏分類中具有較高的準確率,能區(qū)分N、S和V這3種類型的心搏并針對識別結果可進行解釋性分析,但該方法在S類心搏的靈敏度方面還有待提高。在將來的工作中,將會針對性收集更多的S類心搏數(shù)據(jù)進行預訓練,以期獲得更精準的心電圖智能判讀結果。為了確保算法的實用性及實時性能,未來的研究將側重于云計算和并行編程技術,使該算法有效地應用于心電智能監(jiān)測云平臺。