王治忠,錢龍龍,韓 闖,師 麗
(1.鄭州大學電氣工程學院,鄭州450000;2.清華大學自動化系,北京100000)
心肌梗死是由于血液無法正常流向心肌的某些區域,造成心肌細胞缺血性壞死的結果[1]。心肌梗死因其突發性和高死亡率引起人們的關注。結合中國國情,我國心臟疾病患者眾多和有限的醫療資源之間的矛盾越來越激烈,隨著人工智能的發展,通過人工智能輔助醫生診斷成為了緩解矛盾的有效方法。心電圖(ElectroCardioGram,ECG)是心臟電活動在體表的反映,鑒于其非侵入性、低成本、方便獲取和能夠較為全面地反映心臟活動的特性,心電圖成為醫生進行心臟疾病診斷的一個重要工具。心肌細胞缺血性壞死程度和范圍的不同,在心電圖上的反映也不相同,因此心電圖對心肌梗死診斷具有很大的意義。心肌梗死在心電圖上的表現為:壞死區出現病理性Q 波,損傷區ST 段弓背向上抬高和缺血型T 波倒置[2]等。
目前很多研究團隊對心肌梗死的智能診斷進行了研究,通常步驟是信號預處理、特征提取和分類。針對信號預處理,數字濾波器和均值濾波去除噪聲[3-5]、基于小波變換進行心電信號的去噪處理[6-9]等方法較為常用。在特征點提取方面,PT(Pan-Tompkins)[5,10-12]算法、閾值法[13]和小波變換方法[14]通常被用于R 波峰值點檢測。在信號的分類方面,傳統的分類器有神經網絡[3,7,15]、K 最近鄰(K-Nearest Neighbors,KNN)[11,14]、高 斯 混 合 模 型[16]、支 持 向 量 機(Support Vector Machine,SVM)[5,13,15]和 閾 值 法 分 類[9]用 于 心 肌 梗 死(Myocardial Infarction,MI)的檢測,還有一些學者提出使用深度學習方法中的卷積神經網絡(Convolutional Neural Network,CNN)[3,17]。在特征提取方面,心電信號歸一化后所計算的多尺度小波能量特征和模式n 奇異值特征[5]、多尺度小波能量特征[8]、時域特征[14]、彈性分析小波變換系數和樣本熵特征[18]、相位特征[19]、擬合心電信號的多項式系數特征[4]、醫學特征[20]和多特征融合[21]等方式都曾被用于心肌梗死的輔助診斷。
現有研究中所用特征很少能夠反映心電信號的形態特征和波形的變化特點,且很少有研究關注病人間模式的心電信號識別,僅病人內模式很難用于臨床診斷。在心肌梗死輔助診斷的方法中有基于心拍識別和心電記錄的識別兩種方式。心拍識別和部分導聯記錄識別不能較為全面地反映心臟電活動,現有針對常規12 導聯心電信號記錄識別心肌梗死的研究很少。針對現有研究的不足,本文在特征提取方面采用常規12 導聯心電信號的統計特征和熵特征來分別反映心電信號的形態特征和波形變化特點,并在病人間和病人內兩種模式下驗證算法的有效性。本文研究工作流程如圖1所示。

圖1 心肌梗死檢測流程Fig.1 Flowchart of myocardial infarction detection
對于第一部分心電信號預處理是通過小波濾波濾除高頻干擾和基線漂移,通過R 波檢測實現數據增強。在第二部分的特征提取中,本文融合12 導聯的統計特征與熵特征,分別使用基于十折交叉驗證的隨機森林(Random Forest,RF)、反向傳播神經網絡(Back Propagation Neural Network,BPNN)和KNN 算法,在病人間和病人內兩種模式下進行心肌梗死的檢測。本文主要工作如下:
1)提出一種包含標準差、峰度系數、偏度系數的統計特征與包含香農熵、樣本熵、模糊熵、近似熵和排列熵的熵特征融合的方法表征12導聯心電信號信息。
2)基于隨機森林算法在病人內模式下進行分析和驗證,與已發表文獻中的方法進行對比的結果顯示,本文方法取得了較好的結果;同時在病人間模式下驗證了特征的有效性,具有臨床實用性。
3)通過12導聯心電記錄診斷心肌梗死,診斷過程更符合臨床診斷邏輯。
4)通過數據增強和十折交叉驗證避免過擬合的問題。
本次研究使用的是由德國國家計量署提供的PTB(Physikalisch-Technische Bundesanstalt)數據庫[22]。該數據庫中包含148 個心肌梗死病人的數據共346 條記錄,52 個健康人數據共80 條記錄。整個數據庫患者年齡在17 到87 歲之間,其中:男性209 名,平均年齡為55.5 歲;女性共81 名,平均年齡為61.6 歲。每個病人的數據中包含.dat(ECG 數據)、.hea(病人詳細信息)和.xyz(Frank 導聯數據)三種格式文件,采樣頻率為1 000 Hz,含有常規12 導聯數據和vx、vy、vz三個Frank導聯,共15個導聯。
心電信號的主要頻率分布在1~45 Hz,對于大于45 Hz 的部分主要為肌電干擾和其他信號干擾,小于1 Hz 的部分主要由電極滑動等原因造成的基線漂移。本文采用小波軟閾值法完成高頻去噪。鑒于信號的最高頻率是500 Hz,本文對信號進行9 層小波分解,將第9 層近似系數(0~0.98 Hz)置零完成濾除基線漂移。濾波前后的效果如圖2 和圖3 所示。圖2 和圖3分別為MI和正常(Healthy Control,HC)信號的濾波過程。

圖2 心肌梗死心電信號II導聯濾波前后對比Fig.2 Comparison of lead II MI ECG signal before and after filtering process
在PTB 數據庫中共有心肌梗死病人數據148 個,正常人心電數據52 個,為了增加心電樣本數量、增強分類器性能,要對數據進行增強。在數據截取時信號過長,造成數據維度過大,不僅產生數據冗余,而且造成后期計算復雜度過大,過短則不能較為完整地反映一定周期的心臟電活動。數據增強的形式如圖4所示。
圖4是利用I導聯作為數據擴充的示例,其他導聯在分別進行預處理、下采樣后在I導聯相同位置進行數據截取。

圖3 正常心電信號II導聯濾波前后對比Fig.3 Comparison of lead II HC ECG signal before and after filtering process

圖4 數據增強示意圖Fig.4 Schematic diagram of data enhancement
圖4 中,圖(a)為對原始數據進行預處理和下采樣后的數據,圖(b)是對心電信號采取PT 算法進行R 波峰值點標注結果,圖(c)~(e)是對心電信號截取的方式,非置零區域為截取的部分。在數據增強過程中通過截取心電信號的R波峰值點及向后的4.1 s 的12 導聯數據作為新的心電記錄。表1 為數據增強前后心電記錄總數。

表1 數據增強前后心電記錄數量Tab.1 Number of ECG recordings before and after data enhancement
每個病人數據增強后的數量為NUM:

其中:i為病人在數據增強前的第i條記錄,N 為數據增強前某病人的記錄數,mi為病人的第i 條記錄舍去最后4.1 s 的心拍數。
特征提取是心電信號識別中最關鍵的步驟之一,在本文中通過實驗發現融合12 導聯心電信號的統計特征和熵值特征,在最終心肌梗死檢測時具有很好的效果。本文研究使用的統計特征有標準差、峰度系數和偏度系數,使用的熵值特征有香農熵、樣本熵、模糊熵、近似熵和排列熵。
在本文中使用的統計特征包含標準差、峰度系數和偏度系數,主要反映心電信號的離散程度、波形的尖峭程度和分布的對稱程度。這些統計特征反映了信號的形態特征,對心肌梗死的智能診斷具有一定的意義。
標準差(σ)是方差的算術平方根,其意義在于心電信號數據間的離散程度。

其中:N 代表數據總數,xi代表第i 個數據,μ 表示N 個數據的均值。
峰度系數(Kurt)是用來反映心電信號頻數分布曲線頂端尖峭或扁平程度的指標,是隨機變量的四階中心矩與方差平方的比值。

其中:N 代表數據總數,xi代表第i 個數據,μ 表示N 個數據的均值。
偏度系數SK 是描述心電信號分布偏離對稱性程度的一個特征值:當偏度系數為0 時,該分布左右對稱;當偏度系數大于0時,該分布右偏;當偏度系數小于0時,該分布左偏。

其中:N 代表數據總數,xi代表第i 個數據,μ 表示N 個數據的均值。
本文使用信號的香農熵、樣本熵、模糊熵、近似熵和排列熵特征來反映信號的序列的時間與頻譜復雜性、新模式產生的概率、規律性和不可預測性以及檢測信號微小變化。本文研究使用的熵值特征能夠較為完備地反映了心電信號的動態變化,對心電信號的類別判定具有很大的意義。

其中:ai代表ECG信號的概率分布。
樣本熵通過度量ECG 信號中產生新模式的概率大小來衡量時間序列復雜性,新模式產生的概率越大,序列的復雜性就越大。樣本熵的值越低,序列自我相似性就越高;樣本熵的值越大,樣本序列就越復雜。

其中:r=0.2×std,std 為標準差;Am和Bm分別表示在容限r 下匹配m+1個和m個點的概率。

其中:相空間維數m取2,相似容度r為0.2*std。

其中:SL(k)代表信號模型L 的平均長度,SL+1(k)代表信號模型L+1的平均長度。
其中:嵌入維度m 取3,時間延時t 取2,K ≤m!,Pj指相空間j的下標符號序列概率。
對數據增強后的12 導聯心電信號,每個導聯(Di)分別獲取標準差、峰度系數、偏度系數、香農熵、樣本熵、模糊熵、近似熵和排列熵8個特征值。

其中:i代表不同導聯。
通過融合12 導聯的這8 個特征得到特征向量FN,一個心電記錄就由原來的12 導聯、每導聯821 維的矩陣簡化為最終用于檢測的96 維特征。特征融合得到的96 維特征反映了12導聯的心電信號較為全面的波形信息。圖5 和圖6 分別是心肌梗死和正常人12 導聯特征的glyph 圖。圖7 是心肌梗死和正常12導聯心電信號最終用于疾病檢測的96維特征圖。

其中:N代表不同的記錄,Di為導聯i的特征集合。

圖5 心肌梗死12導聯特征的glyph圖Fig.5 Glyph map of 12-lead features of MI subjects

圖6 正常人12導聯特征的glyph圖Fig.6 Glyph map of 12-lead features of HC subjects

圖7 心肌梗死和正常12導聯心電信號96維特征圖Fig.7 Ninety-six dimensional feature map of 12-lead MI and HC ECG signals
對于心電信號的最終檢測識別模型的穩定可靠性,本文分別采用了基于十折交叉驗證的BPNN、RF和KNN分類器。
BPNN 是一種模仿動物神經網絡行為特征進行分布式并行信息處理的算法數學模型。在神經網絡的應用中本文使用50層神經網絡,設置迭代步長為0.001,最小誤差為0.001。
隨機森林分類器是一種集成學習算法,它內部的弱分類器為決策樹,本文使用了50 棵決策樹,采用Bagging 算法集成。
決策樹是一種依靠信息增益決定根節點的分類器,在訓練過程中,計算屬性對樣本集進行劃分所獲得的信息增益,信息增益大的作為根節點,進而完成決策樹的構造。算法中還有防止過擬合的剪枝處理。
最鄰近算法的思想是,距離目標數據最近的K 個樣本大多數屬于某一類,那么這個目標數據很大可能屬于這一類。在本文實驗中K取50。
本文研究從病人內和病人間兩種模式進行分析,病人內模式指的是在訓練集和測試集中會出現相同病人不同記錄的心電信號,而病人間模式指在訓練集和測試集中不會出現相同病人的數據。
病人內的實驗數據如表2 所示,病人間實驗在進行十折交叉驗證時,將142 個心肌梗死病人的293 和294 號病人數據與剩余140 人的心電數據在十折交叉驗證時每次的訓練集聯合作為訓練集。52 個正常人的心電信號取其中任意12 個人的數據與剩余40 人的心電數據在十折交叉驗證時每次的訓練集聯合作為訓練集,聯合MI 和HC 的訓練集數據作為十折交叉驗證時的訓練集。

表2 病人內每折驗證數據集分布Tab.2 Distribution of validation datasets per fold in intra-patient mode
通過使用十折交叉驗證與分類器的結合完成了心肌梗死的檢測,為了評價模型的性能和分類特征的有效性,通過混淆矩陣計算測試準確率、敏感度、特異性和F1 值進行分析。混淆矩陣形式如表3所示。

表3 混淆矩陣Tab.3 Confusion matrix
在表3 中,真正例(True Positive,TP)代表心肌梗死信號被預測正確的部分,假反例(False Negative,FN)代表心梗信號被預測為正常的部分,假正例(False Positive,FP)代表正常信號預測為心梗的部分,真反例(True Negetive,TN)代表正常信號被預測正確的部分。
準確率(Accuracy,acc)計算公式為:

敏感度(Sensitivity,sen)計算公式為:

特異性(Specificity,spe)計算公式為:

F1值計算公式為:

其中N代表數據總量。
三類分類器在十折交叉驗證下每折的分類性能如表4 所示,在表4中:0代表心肌梗死,1代表正常;準確率、敏感度、特異性和F1值結果的上下兩行中上方的是病人內的結果,下方的是病人間的結果;黑色加粗部分結果是病人內和病人間分類最優結果。反向傳播神經網絡在病人內的準確率、敏感度、特異性和F1 值最高均為100%,病人間的準確率、敏感度、特異性和F1 值最高分別為98.42%、99.96%、80.93%和99.14%。隨機森林在病人內的準確率、敏感度、特異性和F1值最高均為100%,病人間的準確率、敏感度、特異性和F1 值最高分別為99.93%、100%、99.22%和99.96%。KNN 在病人內的準確率、敏感度、特異性和F1 值最高分別為99.63%、99.74%、99.09%和99.78%,病人間的準確率、敏感度、特異性和F1值最高分別為92.13%、100%、69.14%和94.98%。在病人內結果中,BPNN 和隨機森林有著同樣好的檢測效果,但是在病人間的結果中,隨機森林有著更好的檢測性能。

表4 性能分析Tab.4 Performance analysis

續表
表5 是三類分類器在十折交叉驗證條件下的平均性能。分析表5 可知,隨機森林分類器在病人內和病人間的相對檢測效果均優于其他分類器。但是在病人間的分類中,三種分類器的心肌梗死檢測特異性均較低,通過對實驗數據進行分析,發現心肌梗死和正常心電數據的數據量比為49 909:5 284,兩類數據差異很大因而特異性不高。本文研究最終的分類在使用主成分分析的方法進行降維進而完成分類操作時發現不能提高檢測效果。
本文方法與其他學者的研究方法的對比結果如表6所示。

表5 各分類器在十折交叉驗證下的平均性能Tab.5 Average performance of each classifier under ten-fold cross-validation
表6 中:QRS 為QRS 波群,LS-SVM 表示最小二乘支持向量機(Least Squares Support Vector Machine),MFB-CNN 表示多特征分支卷積神經網絡(Multiple-Feature-Branch Convolutional Neural Network)。表6 中所列的其他學者的研究均沒有使用十折交叉驗證,交叉驗證在防止過擬合方面有較為優異的性能。部分研究采用了單導聯或者部分導聯的心電信號實現心肌梗死的檢測,在臨床應用中采用部分導聯進行心臟疾病診斷不符合醫生診斷邏輯,診斷結果可信度不高。病人間診斷更具有臨床實用性且更符合臨床應用場景,但是很多學者都欠缺對病人間分類模式的驗證。本文采用12 導聯的熵值特征和統計特征進行檢測,病人內和病人間兩種模式下心梗檢測結果均相比其他學者的研究均有所提高。

表6 本文方法與不同文獻方法的結果對比Tab.6 Result comparison of the proposed method with different methods in references
本文應用了PTB 數據庫中的常規12 導聯數據進行算法檢驗。在心肌梗死檢測過程中,本文首先對12 導聯數據進行預處理,在這個過程里包含數據高頻濾波、去除基線漂移和數據增強。數據增強彌補了數據量過少的缺點。在特征提取方面,本文采取12 導聯的統計特征(標準差、峰度系數和偏度系數)和熵值特征(香農熵、樣本熵、模糊熵、近似熵和排列熵)融合的方法。在心電信號識別中,本文使用十折交叉驗證結合神經網絡算法、隨機森林算法和KNN 算法的方法,十折交叉驗證在防止模型過擬合方面有較好的效果。在病人內和病人間的實驗中,隨機森林分類器均取得了較好的檢測性能,在病人內的檢測中取得了準確率、敏感度、特異性和F1 值分別為99.98%、100%、99.85%和99.99%,在病人間檢測中取得了準確率、敏感度、特異性和F1 值分別為94.56%、98.75%、55.07%、97.05%。通過對比其他研究者的方法,本文面向臨床實際提出的基于病人間模式下的檢測方法能夠輔助診斷心肌梗死,具有較好的魯棒性,能夠輔助醫生提高診斷效率,且對心梗患者實施心電監護具有重要意義。進一步地,基于心電圖的心肌梗死輔助診斷技術的提升依賴于高質量且經醫生標注的心電數據和高效的特征提取方法,后續的工作將致力于搜集心電數據和構建基于深度神經網絡的輔助診斷模型。