心律失常是一種極其常見的心電活動異常癥狀,基于心電圖(ECG)的心拍分類對心律失常的臨床診斷具有十分重要的意義。本文提出一種基于流形學習的特征提取方法——近鄰保持嵌入(NPE)算法,實現心律失常心拍的自動分類。分類系統利用NPE算法獲取高維心電節拍信號的低維流形結構特征,然后將特征向量輸入支持向量機(SVM)分類器進行心拍的分類診斷。實驗基于 MIT-BIH 心律失常數據庫提供的 ECG 數據,對 14 種類型的心律失常心拍進行分類,總體分類準確率高達 98.51%。實驗結果表明,所提方法是一種有效的心律失常心拍分類方法。
引用本文: 高興姣, 李智, 陳珊珊, 李健. 基于近鄰保持嵌入算法的心律失常心拍分類. 生物醫學工程學雜志, 2017, 34(1): 1-6. doi: 10.7507/1001-5515.201605045 復制
引言
心律失常是心臟電活動的頻率、節律、起源部位、傳導速度或激動次序的異常所引發的疾病,是人群中的常見現象[1]。嚴重的心律失常會危及患者生命,所以及時檢測心律失常對預防心臟疾病和心臟性猝死的發生有著非常重要的意義。心電圖(electrocardiogram,ECG)信號是能夠反映心臟活動的周期性電信號,其中每個周期對應一次心跳,稱為一個心拍,心拍類別是診斷心血管疾病的重要依據[2]。心律失常種類較多,ECG 波形千變萬化,將計算機引入心拍的自動分類,能夠很大程度上減少醫生的工作量,提高心律失常的診斷效率。
通過提取 ECG 信號的波形特征可產生用于分類的特征集[3-6],包括 P 波、QRS 波、T 波特征和 RR 間期特征等,這種方法與醫生對 ECG 心拍進行判定的思想相似。Korürek 等[4]提取 ECG 信號的 RR 間期、QRS 波和小波系數特征,對 5 類心律失常心拍進行分類,實現 92% 的分類靈敏度。可是波形特征的有效性依賴于特征點 P、Q、R、S、T 的準確檢測,對信號噪聲比較敏感。
有的學者將 ECG 信號從高維空間映射到低維子空間,使用降低維數的方法提取可用于分類的特征子集。其中,主成分分析(principal component analysis,PCA)[7]、獨立成分分析(independent component analysis,ICA)[8-9]為 ECG 心拍分類中較常使用的降維方法。Zhang等[7]采用 PCA 將 ECG 心拍映射到低維空間,對 4 種類型心律失常心拍進行分類,準確率達到 99.17%。但 PCA 僅僅能夠發現全局的歐氏結構,高維空間的數據點位于或者近似位于外部空間的一個子流形上[10],所以 ECG 信號可能位于一個非線性的子流形上。有關學者提出采用核方法,包括核主成分分析(kernel principal component analysis,KPCA)[11-12]、核獨立成分分析(kernel independent component analysis,KICA)[13-14],來發現高維 ECG 信號的非線性結構。但是核方法計算代價昂貴,而且沒有考慮數據所在的流形結構。
流形學習方法自 2000 年在《Science》雜志上首次提出以來,成為了信息科學領域的研究熱點。主要包括等距映射(isometric feature mapping,Isomap)[15]、局部線性嵌入(locally linear embedding,LLE)[16]和拉普拉斯特征映射(Laplacian eigenmap)[17]等流形學習算法,能夠學習到數據的非線性流形結構。目前流形學習方法在 ECG 信號識別領域中的應用還非常少,Lashgari等[18]使用流形學習的拉普拉斯特征映射算法提取 ECG 心拍特征,用于識別心律失常中的室性早搏心拍,識別準確率為 98.85%。Vemulapati[19]在加州科學博覽會 2015 年項目總結里,總結了采用 LLE 等流形學習算法對 ECG 心拍進行分類。
然而,流形學習方法 Isomap、LLE、拉普拉斯特征映射存在一個共同的問題,即缺乏明顯的投影矩陣,無法對新加入的樣本進行特征提取,稱為樣本外點(out-of-sample)問題。為了克服樣本外點問題,He 等[20]提出了近鄰保持嵌入(neighborhood preserving embedding,NPE)的流形學習方法,并將其成功應用到人臉識別領域。本文研究 NPE 算法在心律失常心拍分類中的應用,提取 ECG 信號的非線性流形結構特征。
1 實驗數據
MIT-BIH 心律失常(MIT-BIH Arrhythmia,MIT-BIH-AR)數據庫[21]包含大量經過專業心電醫師注釋過的心電數據,是研究心律失常分類中權威的 ECG 數據庫。數據庫包含來自 47 例受試者的 48 條兩導聯心電信號記錄,包括 MLII導聯、V1導聯、V2導聯、V5 導聯。每個心電信號長度為 30 min,信號采樣頻率為 360 Hz。每條記錄由頭文件(擴展名為.hea)、數據文件(擴展名為.dat)、注釋文件(擴展名為.atr)三個文件組成。注釋文件是心電專家對信號分析的結果,包括心電節拍的位置、節律的類型以及信號質量等。本文選用 MIT-BIH-AR 數據庫中含有 MLII 導聯的 46 條心電記錄數據,對 MLII 單導聯 ECG 心拍進行心律失常分類。
2 心拍分類
ECG 心拍的自動分類步驟主要包括 3 部分:預處理、特征提取和分類。如圖 1 所示為本文實現心拍診斷的系統流程圖,首先對采集到的 ECG 信號進行預處理,去除高頻噪聲和基線漂移,分割單拍心搏;然后基于 NPE 算法提取表征 ECG 狀態的特征向量;最后將提取的特征向量輸入支持向量機(support vector machine, SVM)分類器進行分類,判斷心拍屬于哪一類心律失常。

2.1 預處理
ECG 信號中存在各種干擾噪聲,為了獲得較為準確的心臟活動電信號,將小波分解與重構方法用于消除 ECG 信號的基線漂移與高頻噪聲[2]。ECG 的每個心拍對應一個心跳,心拍的分割需要準確檢測 ECG 每個心跳波形 R 點,以 R 點為基準點進行分割。目前 ECG 的 R 點檢測方法已經很多,準確率可超過 99%[22-23]。本文研究的重點是心拍的分類,所以,直接使用了 MIT-BIH-AR 數據庫標注的 R 點進行心拍分割。一段心拍波形應包含一個完整周期的心跳,因此,選用 R 波前的 100 個點和 R 波后的 200 個點,總計 300 個采樣點的波形片段作為該 R 波對應的心拍。表 1 中列出了從 MIT-BIH-AR 數據庫整理的 14 類心律失常心拍類別名稱和對應的心拍總數量,將其中隨機抽取一半數量的心拍作為訓練集,剩余的心拍作為測試集。圖 2 展示了 14 類心律失常心拍的波形,其中每類圖中包含隨機抽取的 10 個心拍。


2.2 NPE 算法
NPE 算法[20]是 2005 年提出的一種新的降維技術,NPE 本質上說是 LLE 的線性逼近,其目的是在降維的同時,依然保持數據集固有的局部鄰域流形結構不變。設數據集 ,其中 。NPE 尋找一個最優的映射變換矩陣 ,將 空間的數據嵌入映射到一個相對低維的空間 中。數據點 在 中表示為 ,且 。
NPE算法具體步驟如下:
(1)選擇近鄰:令 G 為一個有m 個節點的鄰接圖,每個數據 作為圖的一個節點,如果 與xj 鄰近,則將它們用一條邊連接上。確定鄰近點的方法主要有兩種: 近鄰法和 K 近鄰法。 近鄰法中,若 和 滿足
${\left| {{x_i}{\rm{ - }}{x_j}} \right|^2} < \varepsilon $ |
就認為兩點是相近鄰的,則為它們連接一條邊,其中 。K 近鄰法中,如果點 是點 的 K 近鄰,同時 也是 的 K 近鄰,則為它們連接一條邊。在實際計算中選擇一個合適的 是比較困難的,所以本文 NPE 算法使用 K 近鄰方法構造鄰近圖 G。
(2)計算權值:用 W 代表鄰近圖 G 的權值矩陣, 表示節點i 到節點j 的有向邊的權值。則優化目標函數如下:
$\min {\sum\limits_i {\left\| {{x_i} - } \right.\sum\limits_j {{{{W}}_{ij}}\left. {{x_j}} \right\|} } ^{\rm{2}}}$ |
其約束條件為 ,通過求解最優化問題,可得到每條邊的權值。
(3)計算投影矩陣:計算下式的特征值和特征向量
$ {{XM}}{{{X}}^T}a = {{{λ}} }{{{XX}}^T}a $ |
其中 , , I 為單位矩陣。設 為對應于式(3)最大的d 個特征值的特征向量,則投影矩陣 ,高維空間數據點 和其低維空間投影 有如下關系:
${y_i} = {{{A}}^{\rm T}}{x_i}$ |
其中 是一個D 維的列向量, 是一個d 維的列向量, A 是一個D*d維的矩陣。
2.3 SVM 分類器
SVM 是建立在統計學習理論的 VC(Vapnik-Chervonenkis)維理論和結構風險最小化原理基礎上的一種機器學習方法[24]。SVM 經過核函數將輸入空間映射到高維空間,在高維空間構造最優分類超平面,高維特征空間中的超平面對應于低維空間中的超曲面。SVM 起初是解決二分類問題的,在二分類問題中,對于n 個m 維線性不可分樣本:
$({x_1},{y_1}), \cdot \! \cdot \! \cdot ,({x_n},{y_n}) \in {{\rm{R}}^m} \times \{ - 1,1\} $ |
其中 表示第i 個樣本的m 維特征向量, 表示兩種—1、1類別。使用訓練集的特征向量與類別標注構建一個構造決策函數 ,使構建的決策函數以后可根據輸入的特征向量實現輸入樣本的分類。求解決策函數的問題轉化為最優化問題,最終的決策函數如下:
$f(x) = {\mathop{\rm sgn}} [\sum\limits_{i = 1}^l {{\alpha _i}} {y_i}K(x,{x_i}) + b]$ |
式中 是將輸入空間映射到高維特征空間的核函數, 是每個訓練樣本的拉格朗日乘子。通常只有少部分 是非零的,對應 非零的訓練樣本就是支持向量,最后的決策函數 實際上僅由這幾個支持向量決定。將 SVM 拓展到實現多分類問題,可以使用標準算法、一對一方法、層(樹)分類方法等[25]。
2.4 評估指標
分類準確率是最常用的分類評價指標,準確率表示被正確分類的心拍在總心拍中所占的比例。為了更準確地評估分類方法在心拍識別上的效果,引入了靈敏度 Se 和陽性檢測率 +P 兩個指標。分類靈敏度表征該類別被正確分類個數占該類別所有樣本的比率;陽性檢測率表征該類別被正確分類個數占被預測為該類別的所有個數的比率。
具體定義式如下:
$靈敏度 = \frac{{{\rm{TP}}}}{{{\rm{TP}} + {\rm{FN}}}} \times {\rm{100}}\% $ |
$陽性檢測率 = \frac{{{\rm{TP}}}}{{{\rm{TP}} + {\rm{FP}}}} \times {\rm{100}}\% $ |
式中,TP 表示該類被正確分類的樣本數,FN 表示該類被錯分為其他類的樣本數,FP 表示不屬于該類卻被分類器分為該類的心拍個數。
3 實驗分析
3.1 分類的實現
本文心拍分類實驗的基本思路是采用 NPE 算法提取心拍的特征向量,結合 MIT-BIH-AR 數據庫中心電醫師注釋的心拍類型,將訓練集心拍的特征向量與心拍標注輸入 SVM 分類器訓練全局分類器。然后將測試集心拍的特征向量輸入已經訓練好的分類器,對測試集心拍進行分類,把得到的分類結果與數據庫提供的類型標注進行對照分析。
具體步驟如下:
(1)計算投影矩陣 A :訓練集數據量較大,所以從訓練集中隨機抽取如表 1 所示總數 6 890 個心拍的子樣本集,基于子樣本集數據進行 NPE 投影矩陣 A 的計算。子樣本集心拍投影后,低維空間 的前 30 維,即 就能夠表示心拍高維空間 99% 的信息,于是選取前 30 個特征向量組成投影矩陣 ,即投影矩陣 A 是一個 300*30 的矩陣。由于 NPE 算法使用 K 近鄰方法構造鄰近圖 G,選取不同的K 值,將會得到不同的投影矩陣,對最后的分類結果也會產生不同的影響。實驗中將選取不同K 值進行投影矩陣的計算,具體K 值如表 2所示。
(2)特征提取:將訓練集和測試集心拍根據式(4)進行低維空間投影,提取其特征向量 。圖 3是對應于圖 2 的14類心律失常心拍投影后的30維數據 Y 的波形。
(3)分類:SVM 分類器的實現是使用林志仁開發的LIBSVM工具箱[26],分類器核函數采用徑向基核(radial basis kernel, RBF)。基于訓練集的特征向量和類型標簽訓練 SVM 分類器模型,最后將測試集特征向量輸入訓練好的 SVM 分類器,對測試集心拍進行分類識別。

3.2 實驗結果分析
表 2 列出了 NPE 算法中取不同K 值時,對應得到的測試集心拍總體分類準確率。可以發現K 值的變化,對最后的分類效果影響并不明顯。且取K=60 時,分類準確率最高,其中測試集 52 766 個的心拍樣本,被正確分類 51 981 個,總體分類準確率為 98.51%。

表 3 統計了取K=60 時,測試集每一類心拍的分類靈敏度和陽性檢測率。可以發現,14 類心律失常心拍的靈敏度和陽性檢測率都比較高,陽性檢測率都達到 82% 以上,尤其是左束支阻滯心拍的靈敏度和陽性檢測率更是均超過 99%。結果表明該分類方法對 14 類心律失常中每一類型心拍的識別都有效。

將本文分類方法同其他文獻的心律失常分類方法進行對比,表 4 總結了各文獻的具體分類方法和分類準確率,各文獻的 ECG 數據均使用 MIT-BIH-AR 數據庫。可以發現,本文基于 NPE 算法的特征提取方法,在 14 類心律失常心拍分類中,獲得了較高分類準確率,存在明顯優勢,實現了心律失常心拍的準確診斷。

4 結論
計算機自動分析和診斷心律失常心拍具有很大的研究價值。本文重點研究心律失常心拍識別中的特征提取部分,提出了一種新的特征提取方法——流形學習中的 NPE 算法。NPE 算法通過尋找心拍空間中的局部流形結構,實現心拍高維到低維空間的非線性投影。目前流形學習還處于理論的階段,研究 NPE 算法在心律失常心拍識別領域的應用是一次十分有意義的嘗試。實驗使用 MIT-BIH-AR 數據庫提供的 ECG 數據和心拍標注,對 14 類心律失常心拍進行分類,總體分類準確率高達 98.51%,獲得了很好的分類效果。實驗結果表明,NPE 算法在心律失常心拍自動診斷中具有可行性,能夠提高分類性能。
引言
心律失常是心臟電活動的頻率、節律、起源部位、傳導速度或激動次序的異常所引發的疾病,是人群中的常見現象[1]。嚴重的心律失常會危及患者生命,所以及時檢測心律失常對預防心臟疾病和心臟性猝死的發生有著非常重要的意義。心電圖(electrocardiogram,ECG)信號是能夠反映心臟活動的周期性電信號,其中每個周期對應一次心跳,稱為一個心拍,心拍類別是診斷心血管疾病的重要依據[2]。心律失常種類較多,ECG 波形千變萬化,將計算機引入心拍的自動分類,能夠很大程度上減少醫生的工作量,提高心律失常的診斷效率。
通過提取 ECG 信號的波形特征可產生用于分類的特征集[3-6],包括 P 波、QRS 波、T 波特征和 RR 間期特征等,這種方法與醫生對 ECG 心拍進行判定的思想相似。Korürek 等[4]提取 ECG 信號的 RR 間期、QRS 波和小波系數特征,對 5 類心律失常心拍進行分類,實現 92% 的分類靈敏度。可是波形特征的有效性依賴于特征點 P、Q、R、S、T 的準確檢測,對信號噪聲比較敏感。
有的學者將 ECG 信號從高維空間映射到低維子空間,使用降低維數的方法提取可用于分類的特征子集。其中,主成分分析(principal component analysis,PCA)[7]、獨立成分分析(independent component analysis,ICA)[8-9]為 ECG 心拍分類中較常使用的降維方法。Zhang等[7]采用 PCA 將 ECG 心拍映射到低維空間,對 4 種類型心律失常心拍進行分類,準確率達到 99.17%。但 PCA 僅僅能夠發現全局的歐氏結構,高維空間的數據點位于或者近似位于外部空間的一個子流形上[10],所以 ECG 信號可能位于一個非線性的子流形上。有關學者提出采用核方法,包括核主成分分析(kernel principal component analysis,KPCA)[11-12]、核獨立成分分析(kernel independent component analysis,KICA)[13-14],來發現高維 ECG 信號的非線性結構。但是核方法計算代價昂貴,而且沒有考慮數據所在的流形結構。
流形學習方法自 2000 年在《Science》雜志上首次提出以來,成為了信息科學領域的研究熱點。主要包括等距映射(isometric feature mapping,Isomap)[15]、局部線性嵌入(locally linear embedding,LLE)[16]和拉普拉斯特征映射(Laplacian eigenmap)[17]等流形學習算法,能夠學習到數據的非線性流形結構。目前流形學習方法在 ECG 信號識別領域中的應用還非常少,Lashgari等[18]使用流形學習的拉普拉斯特征映射算法提取 ECG 心拍特征,用于識別心律失常中的室性早搏心拍,識別準確率為 98.85%。Vemulapati[19]在加州科學博覽會 2015 年項目總結里,總結了采用 LLE 等流形學習算法對 ECG 心拍進行分類。
然而,流形學習方法 Isomap、LLE、拉普拉斯特征映射存在一個共同的問題,即缺乏明顯的投影矩陣,無法對新加入的樣本進行特征提取,稱為樣本外點(out-of-sample)問題。為了克服樣本外點問題,He 等[20]提出了近鄰保持嵌入(neighborhood preserving embedding,NPE)的流形學習方法,并將其成功應用到人臉識別領域。本文研究 NPE 算法在心律失常心拍分類中的應用,提取 ECG 信號的非線性流形結構特征。
1 實驗數據
MIT-BIH 心律失常(MIT-BIH Arrhythmia,MIT-BIH-AR)數據庫[21]包含大量經過專業心電醫師注釋過的心電數據,是研究心律失常分類中權威的 ECG 數據庫。數據庫包含來自 47 例受試者的 48 條兩導聯心電信號記錄,包括 MLII導聯、V1導聯、V2導聯、V5 導聯。每個心電信號長度為 30 min,信號采樣頻率為 360 Hz。每條記錄由頭文件(擴展名為.hea)、數據文件(擴展名為.dat)、注釋文件(擴展名為.atr)三個文件組成。注釋文件是心電專家對信號分析的結果,包括心電節拍的位置、節律的類型以及信號質量等。本文選用 MIT-BIH-AR 數據庫中含有 MLII 導聯的 46 條心電記錄數據,對 MLII 單導聯 ECG 心拍進行心律失常分類。
2 心拍分類
ECG 心拍的自動分類步驟主要包括 3 部分:預處理、特征提取和分類。如圖 1 所示為本文實現心拍診斷的系統流程圖,首先對采集到的 ECG 信號進行預處理,去除高頻噪聲和基線漂移,分割單拍心搏;然后基于 NPE 算法提取表征 ECG 狀態的特征向量;最后將提取的特征向量輸入支持向量機(support vector machine, SVM)分類器進行分類,判斷心拍屬于哪一類心律失常。

2.1 預處理
ECG 信號中存在各種干擾噪聲,為了獲得較為準確的心臟活動電信號,將小波分解與重構方法用于消除 ECG 信號的基線漂移與高頻噪聲[2]。ECG 的每個心拍對應一個心跳,心拍的分割需要準確檢測 ECG 每個心跳波形 R 點,以 R 點為基準點進行分割。目前 ECG 的 R 點檢測方法已經很多,準確率可超過 99%[22-23]。本文研究的重點是心拍的分類,所以,直接使用了 MIT-BIH-AR 數據庫標注的 R 點進行心拍分割。一段心拍波形應包含一個完整周期的心跳,因此,選用 R 波前的 100 個點和 R 波后的 200 個點,總計 300 個采樣點的波形片段作為該 R 波對應的心拍。表 1 中列出了從 MIT-BIH-AR 數據庫整理的 14 類心律失常心拍類別名稱和對應的心拍總數量,將其中隨機抽取一半數量的心拍作為訓練集,剩余的心拍作為測試集。圖 2 展示了 14 類心律失常心拍的波形,其中每類圖中包含隨機抽取的 10 個心拍。


2.2 NPE 算法
NPE 算法[20]是 2005 年提出的一種新的降維技術,NPE 本質上說是 LLE 的線性逼近,其目的是在降維的同時,依然保持數據集固有的局部鄰域流形結構不變。設數據集 ,其中 。NPE 尋找一個最優的映射變換矩陣 ,將 空間的數據嵌入映射到一個相對低維的空間 中。數據點 在 中表示為 ,且 。
NPE算法具體步驟如下:
(1)選擇近鄰:令 G 為一個有m 個節點的鄰接圖,每個數據 作為圖的一個節點,如果 與xj 鄰近,則將它們用一條邊連接上。確定鄰近點的方法主要有兩種: 近鄰法和 K 近鄰法。 近鄰法中,若 和 滿足
${\left| {{x_i}{\rm{ - }}{x_j}} \right|^2} < \varepsilon $ |
就認為兩點是相近鄰的,則為它們連接一條邊,其中 。K 近鄰法中,如果點 是點 的 K 近鄰,同時 也是 的 K 近鄰,則為它們連接一條邊。在實際計算中選擇一個合適的 是比較困難的,所以本文 NPE 算法使用 K 近鄰方法構造鄰近圖 G。
(2)計算權值:用 W 代表鄰近圖 G 的權值矩陣, 表示節點i 到節點j 的有向邊的權值。則優化目標函數如下:
$\min {\sum\limits_i {\left\| {{x_i} - } \right.\sum\limits_j {{{{W}}_{ij}}\left. {{x_j}} \right\|} } ^{\rm{2}}}$ |
其約束條件為 ,通過求解最優化問題,可得到每條邊的權值。
(3)計算投影矩陣:計算下式的特征值和特征向量
$ {{XM}}{{{X}}^T}a = {{{λ}} }{{{XX}}^T}a $ |
其中 , , I 為單位矩陣。設 為對應于式(3)最大的d 個特征值的特征向量,則投影矩陣 ,高維空間數據點 和其低維空間投影 有如下關系:
${y_i} = {{{A}}^{\rm T}}{x_i}$ |
其中 是一個D 維的列向量, 是一個d 維的列向量, A 是一個D*d維的矩陣。
2.3 SVM 分類器
SVM 是建立在統計學習理論的 VC(Vapnik-Chervonenkis)維理論和結構風險最小化原理基礎上的一種機器學習方法[24]。SVM 經過核函數將輸入空間映射到高維空間,在高維空間構造最優分類超平面,高維特征空間中的超平面對應于低維空間中的超曲面。SVM 起初是解決二分類問題的,在二分類問題中,對于n 個m 維線性不可分樣本:
$({x_1},{y_1}), \cdot \! \cdot \! \cdot ,({x_n},{y_n}) \in {{\rm{R}}^m} \times \{ - 1,1\} $ |
其中 表示第i 個樣本的m 維特征向量, 表示兩種—1、1類別。使用訓練集的特征向量與類別標注構建一個構造決策函數 ,使構建的決策函數以后可根據輸入的特征向量實現輸入樣本的分類。求解決策函數的問題轉化為最優化問題,最終的決策函數如下:
$f(x) = {\mathop{\rm sgn}} [\sum\limits_{i = 1}^l {{\alpha _i}} {y_i}K(x,{x_i}) + b]$ |
式中 是將輸入空間映射到高維特征空間的核函數, 是每個訓練樣本的拉格朗日乘子。通常只有少部分 是非零的,對應 非零的訓練樣本就是支持向量,最后的決策函數 實際上僅由這幾個支持向量決定。將 SVM 拓展到實現多分類問題,可以使用標準算法、一對一方法、層(樹)分類方法等[25]。
2.4 評估指標
分類準確率是最常用的分類評價指標,準確率表示被正確分類的心拍在總心拍中所占的比例。為了更準確地評估分類方法在心拍識別上的效果,引入了靈敏度 Se 和陽性檢測率 +P 兩個指標。分類靈敏度表征該類別被正確分類個數占該類別所有樣本的比率;陽性檢測率表征該類別被正確分類個數占被預測為該類別的所有個數的比率。
具體定義式如下:
$靈敏度 = \frac{{{\rm{TP}}}}{{{\rm{TP}} + {\rm{FN}}}} \times {\rm{100}}\% $ |
$陽性檢測率 = \frac{{{\rm{TP}}}}{{{\rm{TP}} + {\rm{FP}}}} \times {\rm{100}}\% $ |
式中,TP 表示該類被正確分類的樣本數,FN 表示該類被錯分為其他類的樣本數,FP 表示不屬于該類卻被分類器分為該類的心拍個數。
3 實驗分析
3.1 分類的實現
本文心拍分類實驗的基本思路是采用 NPE 算法提取心拍的特征向量,結合 MIT-BIH-AR 數據庫中心電醫師注釋的心拍類型,將訓練集心拍的特征向量與心拍標注輸入 SVM 分類器訓練全局分類器。然后將測試集心拍的特征向量輸入已經訓練好的分類器,對測試集心拍進行分類,把得到的分類結果與數據庫提供的類型標注進行對照分析。
具體步驟如下:
(1)計算投影矩陣 A :訓練集數據量較大,所以從訓練集中隨機抽取如表 1 所示總數 6 890 個心拍的子樣本集,基于子樣本集數據進行 NPE 投影矩陣 A 的計算。子樣本集心拍投影后,低維空間 的前 30 維,即 就能夠表示心拍高維空間 99% 的信息,于是選取前 30 個特征向量組成投影矩陣 ,即投影矩陣 A 是一個 300*30 的矩陣。由于 NPE 算法使用 K 近鄰方法構造鄰近圖 G,選取不同的K 值,將會得到不同的投影矩陣,對最后的分類結果也會產生不同的影響。實驗中將選取不同K 值進行投影矩陣的計算,具體K 值如表 2所示。
(2)特征提取:將訓練集和測試集心拍根據式(4)進行低維空間投影,提取其特征向量 。圖 3是對應于圖 2 的14類心律失常心拍投影后的30維數據 Y 的波形。
(3)分類:SVM 分類器的實現是使用林志仁開發的LIBSVM工具箱[26],分類器核函數采用徑向基核(radial basis kernel, RBF)。基于訓練集的特征向量和類型標簽訓練 SVM 分類器模型,最后將測試集特征向量輸入訓練好的 SVM 分類器,對測試集心拍進行分類識別。

3.2 實驗結果分析
表 2 列出了 NPE 算法中取不同K 值時,對應得到的測試集心拍總體分類準確率。可以發現K 值的變化,對最后的分類效果影響并不明顯。且取K=60 時,分類準確率最高,其中測試集 52 766 個的心拍樣本,被正確分類 51 981 個,總體分類準確率為 98.51%。

表 3 統計了取K=60 時,測試集每一類心拍的分類靈敏度和陽性檢測率。可以發現,14 類心律失常心拍的靈敏度和陽性檢測率都比較高,陽性檢測率都達到 82% 以上,尤其是左束支阻滯心拍的靈敏度和陽性檢測率更是均超過 99%。結果表明該分類方法對 14 類心律失常中每一類型心拍的識別都有效。

將本文分類方法同其他文獻的心律失常分類方法進行對比,表 4 總結了各文獻的具體分類方法和分類準確率,各文獻的 ECG 數據均使用 MIT-BIH-AR 數據庫。可以發現,本文基于 NPE 算法的特征提取方法,在 14 類心律失常心拍分類中,獲得了較高分類準確率,存在明顯優勢,實現了心律失常心拍的準確診斷。

4 結論
計算機自動分析和診斷心律失常心拍具有很大的研究價值。本文重點研究心律失常心拍識別中的特征提取部分,提出了一種新的特征提取方法——流形學習中的 NPE 算法。NPE 算法通過尋找心拍空間中的局部流形結構,實現心拍高維到低維空間的非線性投影。目前流形學習還處于理論的階段,研究 NPE 算法在心律失常心拍識別領域的應用是一次十分有意義的嘗試。實驗使用 MIT-BIH-AR 數據庫提供的 ECG 數據和心拍標注,對 14 類心律失常心拍進行分類,總體分類準確率高達 98.51%,獲得了很好的分類效果。實驗結果表明,NPE 算法在心律失常心拍自動診斷中具有可行性,能夠提高分類性能。