劉光達,王永祥,蔡靖,王偉,劉忠民
(吉林大學 儀器科學與電氣工程學院,長春 130061)
心臟性猝死(SCD)是指急性癥狀發作后1 h內發生的以意識突然喪失為特征的由心臟原因引起的自然死亡。每年全球有約300萬人因為心源性猝死而失去生命,其中我國的死亡人數最多,每年高達54.5萬人。平時無心臟病史或僅有輕微心臟病癥狀的人,也可能由于心率衰竭或機械性衰竭發生心臟驟停而突然死亡。
當患者發生心臟驟停時,應立即對患者進行心肺復蘇術,并將其盡快送到醫院搶救。但是心臟驟停發病前并無征兆,而且發病后幾分鐘內就會死亡,只有專業人員立即對其進行心肺復蘇術才有可能搶救成功,所以對心臟驟停的預測有很重要的意義。
近年來,隨著信號分析處理和計算機輔助智能診斷技術在醫療領域的迅速發展,促進了心臟驟停預測方法的相關研究。研究主要有兩個方向:(1)用信號分析的方法直接對心電圖進行分析,找到心電信號某些參數的差異來進行預測,例如,Rashed等人[1]運用快速傅里葉變換對正常人和有心臟驟停癥狀患者的QRS復合波進行分析,在頻域上對心臟驟停進行識別。由于心電信號屬于多組分非平穩信號,傅里葉變換并不十分適合,所以其預測準確率不高;(2)用信號分析的方法與機器學習分類算法相結合來預測心臟驟停,例如,Murukesan等人[2]通過分析正常人和有心臟驟停癥狀患者的心率變異性(HRV),并用支持向量機的方法進行分類來預測心臟驟停。由于特征向量的維度影響著分類精度,在不產生過擬合的情況下,特征向量的維度越高,分類精度越高,但是文獻[2]僅使用了HRV這一種特征參數。同時支持向量機分類算法對于非線性分類沒有一個通用的解決方案,必須謹慎選擇核函數來進行處理。
基于以上問題,本研究提出了基于小波變換和Adaboost算法的心臟驟停預測模型。Adaboost算法的弱分類器結構更加簡單,并且能達到很高的精度,同時本模型依據兩種特征參數進行分類,還討論了不同特征參數對預測精度的影響。本研究使用的數據來源于美國的Physionet數據庫中的心臟性猝死數據庫和正常竇性心律數據庫。
本研究提出的心臟驟停的預測方法主要包括四個步驟,具體過程見圖1。

圖1 心臟驟停預測模型框圖
心電圖是對人類心跳時產生的隨時間變化的生物電位的記錄。作為人類心血管方面的重要指證,心電信號主要由三部分組成,分別是P波、QRS波和T波。在一個正常的心動周期中,竇房結產生沖動后,心房內傳導形成P波,繼續向下傳遞到心室形成QRS波,這也是振幅最大的波形,隨著心電復極,形成低平的T波。通過研究心電信號的各個波形,可以對正常心電信號和有心臟驟停現象的心電信號進行分類并預測心臟驟停的發生。
研究認為只有心臟驟停發生的前30 min內的心電信號可以對預測提供有用信息[3],所以本研究選取心臟驟停發生的前30 min內的心電信號作為實驗樣本。由于一個心動周期所包含的信息并不具有代表性,所以,本研究選取的樣本時長都為一分鐘。圖2為心臟驟停發生的心電圖。

圖2 心臟驟停心電圖
對于一個分類算法,最重要的過程就是構建一個好的特征向量,保證分類算法有良好的預測精度和泛化性能。
要得到輸入分類算法的特征向量,首先要對ECG信號進行奇異點的定位。本研究使用Mallat算法、以二次樣條小波函數為基小波對ECG信號進行尺度分解并進行奇異點定位。樣條函數有著分頻能力強、光滑性高、頻率特性好、頻帶相干小等優點,因此,其非常適合對一維信號進行奇異點和過渡點的檢測[4]。
由于ECG信號中P波、QRS波、T波的頻率范圍不同,其中P波和T波頻率主要集中于0.7~10 Hz,QRS復合波的中心頻率大約為17 Hz,頻率分為為3~40 Hz,所以本研究將分解尺度定為j=4,在 23尺度上檢測QRS波,在24尺度上進行P波和T波的檢測[4]。分解后不同尺度上的小波系數見圖3。
具體檢測算法流程如下:
(1)對ECG信號利用二次樣條小波進行四尺度分解。
(2)在23尺度上設置閾值,定位模極大值對之間的過零點的位置即可找到R波位置。
(3)確定R波位置后,在21尺度上、在R波的位置點上,50 ms的時間窗向左并向右尋找極小值點,分別對應Q波波峰和S波波峰。
(4)在Q波波峰和S波波峰的位置分別以30 ms時間窗向左和向右搜尋最靠近基線的點,即可確定QRS復合波的起點和終點
(5)基于Q波起點位置,在24尺度上,以0.25倍的RR間隔的時間窗向左搜尋模極大值點,即可確定P波波峰。在P波波峰點左右兩側,分別尋找第一個基線交點和第一個波谷點,即可確定P波起點和終點。
(6)對T波特征點的檢測可以依照P波的檢測方法,時間窗寬度為0.4倍RR間隔[5]。

圖3心電信號及其在各尺度上的小波系數
Fig3Elecrocardiosignalstheirwaveletcoefficientondifferentlevels
通過小波變換對心電信號的P、T、QRS波形進行定位,我們可以得到心電信號的很多特征參數,即輸入心臟驟停分類預測算法的特征向量。文獻[6]列舉了許多對心臟驟停預測有幫助的特征參數,本研究從中選擇4種工程上容易實現并且差異性大的特征參數,分別是:
R波平均峰值:每個時間間隔內R波峰值的平均值。
R波平均間隔:每個時間間隔內R波間隔的平均值。
QT波平均持續時間:每個時間間隔內QT波持續時間的平均值。
T波平均持續時間:每個時間間隔內T波持續時間的平均值。
Adaboost是一種迭代算法,它從弱學習算法出發,反復學習,得到一系列弱分類器,然后組合這些弱分類器,構成一個強分類器。
其核心思想有兩點:(1)Adaboost算法會在每一輪迭代去改變訓練數據的權值分布,提高那些被前一輪弱分類器錯誤分類樣本的權值,同時降低那些被正確分類樣本的權值,這樣那些沒有得到正確分類的數據,由于其權值加大而受到后一輪的弱分類器的更大關注;(2)弱分類器的組合采取加權多數表決的方法,即加大分類誤差率小的弱分類器的權值,使其在表決中起較大的作用,減小分類誤差率大的弱分類器的權值,使其在表決中起較小的作用[7]。算法的具體描述如下:
(1)輸入訓練集D,確定基學習算法:
D={(x1,y1),(x2,y2),…,(xm,ym)}
其中xi∈X,yi∈Y,X是訓練樣本集,yi是分類類別標志,Y={-1,+1}。
(2)初始化權值:D1(x)=1/m。
(3)設置訓練輪數T:fort=1,2,…,T。
(4)將弱學習算法在權值Dt下訓練,得到預測函數ht:X→{-1,+1}。
(5)計算ht的錯誤率:

根據上述錯誤率更新權值:

(7)訓練完畢,最終輸出函數為:

泛化誤差和過擬合現象是衡量機器學習方法性能的兩個重要指標,Adaboost算法在這兩方面有著出色的表現。文獻[8]證明了即使Adaboost算法迭代次數很大時也不會出現過擬合現象,文獻[9]則指出其訓練迭代次數并不影響其泛化誤差。
本研究采用預測靈敏度、陽性率、精度這三個指標來評價Adaboost算法對心臟驟停的預測性能。



其中TP表示正確分類了心臟驟停事件,TN表示正確分類了正常竇性心律事件,FP表示錯誤分類了心臟驟停事件,FN表示錯誤分類了正常竇性心律事件。
為驗證本研究算法的有效性,本實驗使用的心電數據來源于美國權威的Physionet數據庫。實驗從正常竇性心律數據庫(NSR)選取18例患者的心電數據,其中13例女性患者(年齡20~45歲),5例男性患者(年齡在28~45歲之間),同時從心臟性猝死數據庫(SCD)選取23例患者的心電數據,其中9例女性患者(年齡30~89歲),14例男性患者(年齡17~82歲)。為了實驗分析,本實驗從18例正常竇性心律心電數據中隨機截取1 min時長的數據,并在心臟驟停發生前15 min之內隨機截取1 min時長的數據。
運用MATLAB提供的小波工具箱對數據進行小波分析,提取心電信號的P、QRS、T波。

圖4 (a)與(b)分別是小波變換后兩秒內的NSR信號和SCD信號,(c)和(d)分別是提取到的NSR信號和SCD信號的特征點
Fig4 (a)NSRsignalsin2secondsafterWT(b)SCDsignalsin2secondsafterWT(c)thefeaturepointsofNSRsignals(d)thefeaturepointsofSCDsignals
圖4顯示的是對NSR信號(從16265號數據中隨機截取1 min)和SCD信號(30號患者心臟驟停發生前2 min的信號)的特征波形的提取。從圖中可以清晰的觀察到:
(1)NSR信號的幅度范圍在-1.3~3.5 mv,SCD信號的幅度范圍在-0.35~0.8 mv之間,兩者幅值相差較大
(2)NSR信號在2 s的時間間隔內心跳跳動約3次,而SCD信號在2 s時間間隔內心跳跳動約2次
通過小波分析,根據已經定位的特征點,可以分別得到NSR信號和SCD信號的R波平均峰值、R波平均間隔、QT波平均持續時間和T波平均持續時間等參數。NSR信號和SCD信號的四種特征參數見表1。

表1 NSR信號和SCD信號特征參數
從表1中可以看出,NSR信號和SCD信號的四種特征參數差異性較大,與性別差異無關。將14例NSR信號和17例SCD信號的二維特征點作為訓練集,利用Adaboost算法進行訓練,剩余4例NSR和6例SCD信號的二維特征點作為測試集,測試Adaboost分類器的分類效果,并重復本實驗10次,統計平均分類情況。

圖5基于特征參數的分類:(a) R波平均峰值和R波平均間隔,(b)R波平均間隔和QT波平均持續時間,(c)QT波平均持續時間和T波平均持續時間,(d)R波平均間隔和T波平均持續時間
Fig5Basedonthecategoryoffeatureparameters:(a)averagepeakvalueandaverageintervalofWaveR,(b)averageintervalofWaveRandaveragedurationofWaveQT,(c)averagedurationofWaveQTandaveragedurationofWaveT,(d)averageintervalofWaveRandaveragedurationofWaveT
不同的特征參數對分類器的分類精度影響很大,不同類別其對應的特征參數差異越大,其分類效果越好。四種特征參數中,NSR信號和SCD信號的R波平均峰值這一特征參數差異最大,所以本研究將R波平均峰值和R波平均間隔做為特征向量并將其余三種特征參數兩兩組合輸入到Adaboost分類器,圖5顯示了分類結果。圖5中使用的是心臟驟停發生前5 min的SCD信號(時長1 min)。從圖5可以看到,a分類方法分類效果最好,只有一個SCD樣本被錯誤分類,c、d兩種分類方法效果一樣,有兩個SCD和NSR樣本被錯誤分類,b分類方法效果最差,有兩個SCD、三個NSR樣本被錯誤分類。圖5也驗證了特征參數差異越大,按其分類其效果越好。
表2分類評價:R波平均峰值和R波平均間隔

Table 2 Classified evaluation:average peak value and average interval of Wave R
表2、3顯示了10次獨立重復實驗,Adaboost分類器依據不同特征參數對NSR信號和SCD信號的分類性能的統計平均情況,并對不同的預測期進行了比較。其中弱分類器使用K最鄰近分類器。經驗證當訓練迭代次數為20次時,分類器的精度已經很高,并且訓練效率較高,所以,本實驗設定Adaboost分類器的迭代次數為20次。其他的心臟驟停預測方法及其預測精度見表4。

表3 分類評價:R波平均間隔和QT波平均持續時間

表4 心臟驟停預測方法總結
由表2可知,本研究提出的方法在5 min預測期的預測精度最高達到了97.56%,高于上述文獻的預測精度。上述文獻的預測方法只選擇了一種特征參數,而本研究對不同的特征參數對分類的效果進行了討論,并選擇了兩種分類效果很好的特征值來進行分類;同時上述文獻所使用的支持向量機和神經網絡這兩種分類器,有著各自的劣勢。其中支持向量機針對非線性分類必須自己選擇核函數,不同的核函數對分類結果影響較大,這無疑增加了分類成本和使用難度,而神經網絡分類器需要大量的樣本去訓練,否則其很容易出現欠擬合,而本研究使用的Adaboost分類器使用簡單,并有著很高的分類精度,所以和上述文獻的預測方法相比,本研究提出的方法預測精度更高。
本研究將小波變換和Adaboost算法結合適應了心電信號非平穩、多組分的特征,研究了多種特征參數對心臟驟停預測情況的影響,彌補了以前單一特征參數作為分類器輸入的不足,并運用了Adaboost這一簡單、高效、高精度的新分類器。通過分析和實驗驗證當Adaboost分類器以R波平均峰值和R波平均間隔作為輸入向量時,其預測精度最高,在心臟驟停發生前5 min,其預測精度高達97.56%,效果理想。
本研究可以在臨床上對心臟驟停癥狀提前預測,可以幫助SCD高危人群及時得到專業醫護人員的救治,降低死亡率。下一步工作是將心臟驟停的預測時間提前,并進一步提高預測精度。