李海霞 朱慧博 張施琴 毛凌鋒
(1.宿遷學院 宿遷 223800)(2.北京科技大學 北京 100083)
心臟病是嚴重威脅人類健康和生命的主要疾病之一。心音信號是人體重要的生理信號之一,蘊含了人體大量的心臟原始病理信息。它來自于人體內部的信號,不容易被模仿或復制[1]。目前,國內外有許多針對心音的檢測和識別方法,這些方法都需要準確提取心音的各項特征參數。Taikang Ning等通過能量和頻率等特征,實現對心音的快速分類[2]。李天生通過使用經驗模態分解、希伯特-黃變換等方法,從多個角度提取了多種心音特征信號,進而完成心音的識別[3]。
為了提高識別率,人們采用了很多方法。王建衛等[4]利用圖像處理技術進行心音信號的識別;李戰明等[5]利用S 變換提取心音信號特征,用于不同類型心音信號識別;Olmez 等[6]利用小波變換提取心音信號的時、頻域特征參數,對7 種不同心音信號進行分類識別,識別率達99%,但ANNs 的頻域計算繁瑣,計算量大,識別過程運算時間過長;成謝鋒等[7]將一維心音信號轉換成二維心音圖,采用圖像處理技術提取心音的圖像特征,但需要將一維信號變為二維,增加了計算量。Rios-Gutierrez等[8]采用離散小波變換及短時時頻變換方法提取心音信號特征參數,再借助矢量化(Vector Quanti-zation,VQ)模型對4 種常見心雜音分類識別,但識別率僅有67.05%。
本文選擇了郭興明等[9]使用的小波包分解和周靜等[10]使用的功率譜估計這兩種方法,計算得到心音參數,依據特征選擇對兩種不同方法得到的多個參數進行篩選和驗證,從而找出能較好反映心音本質特征且具有差異性的參數。然后,再將特征選擇得到的參數進行進一步降維處理,用于節約計算成本。整個實驗過程既剔除了無關參數對心音識別的干擾,又減少了投入訓練和識別的參數個數,使得在大規模樣本數據處理時能夠更高效,還進一步提高了心音信號的識別率。本文研究成果表明,基于特征選擇后降維處理的心音識別具有高效性和可行性,擁有一定的推廣應用前景。
本文采用層級式的信號識別流程,先對心音信號進行特征提取,然后對多維心音特征進行篩選,通過心音識別率驗證不同方法在心音分類中的效率。在特征選擇層中,本文選擇了3 種特征選擇方法,同時設置了1 組隨機選擇作為對照組,以最后的識別結果成功率作為驗證方法,逐個觀察幾種特征選擇方法對心音特征的篩選效果。將特征選擇效果最好的一組結果作為降維的輸入。在降維層,同樣設置主成分分析法和線性判別分析法互為對照,通過結果驗證得到最優方法。具體步驟如圖1所示。

圖1 整體實驗流程
本文對10 種不同心音信號在已獲得心音周期的前提下對其提取特征值[11~12],其中,通過小波包分解提取參數16 個,分別是3 次小波包分解后的8個頻帶分量所占的百分比和8 個頻帶能量占比;通過功率譜估計得出的最低頻段、次低頻段、次高頻段、最高頻段在信號中的占比、信號的平均分貝及信號在最高分貝處的赫茲。
2.1.1 小波包特征提取
小波變換是從短時傅里葉變換中發展而來,可以實現對信號內任意頻段的聚焦。圖2 為小波包分解模型,每層都將上層的頻帶再次細分為低頻分量A 和高頻分量D 兩個頻段。因為小波包可以將信號連續分成多個等寬頻帶,使其對沒有被細分的高頻部分得到再次分解,從而克服了高頻段其頻率分辨率較差,在低頻段時間分辨率較差的問題,在處理復雜的心音信號時,能較為詳盡地描述心音的細節變化,具有一定的優勢。

圖2 小波包分解示意圖
小波包分解的迭代算法為

式 中,di,j,m為 第j 層 第m 個節點的第i個小波包系數;h(k)和g(k)分別為多分辨率分析中正交鏡像濾波器的低通和高通濾波器系數。
功率譜是表示頻帶內信號功率隨頻率的分布情況,而功率譜估計是根據有限數據在頻域內提取被淹沒在噪聲中的有用信號。對于平穩隨機信號,難以通過數學關系來描述信號的具體狀態,只能根據有限的數據大致估算出它的功率譜密度。
圖3 為一例正常心音周期波形和一例二尖瓣關閉不全心音周期求得的功率譜估計結果,根據此結果可以對不同頻率段的功率量占比進行劃分,從而求得功率譜相關的特征值。

圖3 心音波形及其功率譜估計結果
2.1.2 驗證方法
概率神經網絡具有較好的魯棒性和容錯性,能在一定的范圍內允許同一特征點的特征值存在誤差[13]。它基于貝葉斯最優分類決策理論和概率密度估計算法,學習過程簡單,能夠通過概率競爭得出唯一結果。與BP 神經網絡相比,不會陷入局部極小值,被廣泛應用于模式識別和模式分類領域。對心音的分類需要具體的結果,所以通過概率神經網絡對特征參數進行識別,逐一驗證不同的特征選擇和降維方法對心音信號的特征參數的分析結果。每種心音類型選取3 例作為訓練樣本,訓練得到神經網絡后對所有樣本進行識別,以此獲得識別率。
根據不同選擇形式,特征選擇大體可分為3 種類型:過濾法(Filter)、包裝法(Wrappe)、嵌入法(Embedded),本文將分別使用3 個不同的模型,對心音特征進行選擇。在選擇過程中,同驗證方法一樣,每種心音信號選取3 例進行特征選擇。這三種模型使用的算法分別如下。
1)互信息法
互信息(mutual information)是用來評價一個事件的出現對于另一個事件的出現所貢獻的信息量。在特征選擇中,需要每個特征所蘊含的信息相對獨立,盡量少的與其他特征相互重合。通過特征間互信息計算進行升序排序,篩選出互信息量低,能較好描述心音信號特征的參數。
2)遞歸特征消除法
遞歸特征消除法是一種尋找最優特征子集的貪心算法。本文選擇了基于邏輯回歸(Logistic Regression)的遞歸特征消除法,其作用是反復構建邏輯回歸模型,然后根據系數篩除相對較差的參數類別,然后再在篩除后的特征集上重復這個過程,從而保留最好的特征參數。
3)基于樹模型的特征選擇
本文選擇了迭代決策樹[14~15](Gradient Boosting Decision Tree,GBDT)模型來實現心音特征的選擇,它是一種機器學習模型,其優勢在于通過多棵樹來共同決策,從而輸出特征權重較為突出的參數類型。
降維與特征選擇的不同點在于,特征選擇只篩選出能夠反映樣本特征,更具有差異化的參數,而不改變參數的值;降維的本質是將參數由高維度空間映射到低維度空間,在盡量保存原有參數特性的情況下,減少參數數量,因此參數的值將不再是原本的特征值。
主成分分析法(Principal Component Analysis)是一種無監督的降維方法,它使得樣本特征具有較大的發散性,使得樣本特征能夠適應更多的實例,而線性判別分析法(Linear Discriminant Analysis)是一種監督式的降維方法,在映射后,特征樣本一定程度地損失了發散性但具有最佳的分類性能[16~17]。
主成分分析流程圖如圖4所示。

圖4 主成分分析流程圖
表1 是10 種心音計算得到部分特征參數的樣本均值,其中AAA3 頻帶分量和DDD3 頻帶分量由小波包計算得到。功率譜最低頻段占比、功率譜最高頻段占比、功率譜信號平均功率由Welch 譜估計方法得到。
在表1 中,可以看出室間隔缺損的識別成功率明顯低于其他心音信號的成功率,并且大幅降低了整個心音樣本的識別率。在識別錯誤的17 個樣本中,有7個被誤識別為二尖瓣關閉不全,有6個被認為是主動脈回流,4 個被誤識別為動脈導管未閉。而從表中數據可知,室間隔缺損的DDD3 頻帶分量明顯高于二尖瓣關閉不全和主動脈回流,其功率譜最高頻段占比也明顯區分于動脈導管未閉,識別率低的原因是由于其他特征混淆。因此,對多維特征的心音樣本進行特征選擇是必要的。

表1 不同種心音的部分特征參數(樣本均值)及其原始數據識別成功率
根據對心音特征樣本多次的實驗,選取不同特征個數作為識別驗證的訓練集和識別集,最終選取參數數量及識別成功率結果如表2所示。

表2 不同特征選擇方法的驗證結果
由表2 可以看出,在22 個特征選擇中,直接選擇其中5 個參數,篩選了大量有效心音信息,而使得識別率不可靠。基于樹模型的特征選擇利用遞歸模型自動選擇了9 個心音參數,但并未明顯提高識別率。而在篩選出11 個參數中,遞歸特征消除法實現的心音識別率最高,且較原始數據有明顯提升。
這一結果表明其選擇結果有效地剔除了干擾項參數對結果的影響,選擇出更能表現出心音特征的心音參數。
將在3.2遞歸特征消除法中得到的參數分別用主成分分析法和線性判別分析法進行降維處理,將11個參數降為5個,其識別成功率如表3所示。

表3 不同降維方法的驗證結果
降維的目的是進一步減少參數個數,當樣本數據過大時,能有效降低計算量,簡化訓練和識別的過程。表3 的數據顯示,本次實驗中,兩種降維方法都在減少了參數數量的同時,一定程度上提高了心音識別的成功率,且主成分分析法的識別成功率達到92.9%。
本文提出的對心音信號先特征選擇再降維的的識別模型,通過對210 例樣本的試驗分析,結論如下。
1)在對22 個心音特征參數的選擇中,利用遞歸特征消除法選擇11 種參數達到了較好的結果,與原始數據相比,識別率上升明顯,可以以此進行數據降維。
2)在對數據降維的過程中,主成分分析法和線性判別分析法均得到較好的識別率。可見,在多維心音識別中,進行數據選擇和降維是必要和有效的。
3)本文所提心音識別方法能有效提高心音分類識別準確率,可以結合更多特征參數及時域特征進行分析,對進一步實現心臟疾病診斷具有重要參考價值。