基于語音數據挖掘實現帕金森病診斷的方法近年來已被證明有效。然而,受數據采集對象患病程度以及采集設備和環境等因素影響,所獲取數據集的樣本空間中存在不同類別樣本混疊現象。混疊區域的樣本難以有效識別,嚴重影響了算法的分類準確度。為了解決這一問題,本文提出了分包融合集成算法,通過設計類心距離比值來衡量樣本的混疊程度并將訓練集劃分成多個子集,再利用錯誤分類樣本傳遞式訓練的方法調整子集劃分結果,最后通過優化子分類權重對各個子分類器的測試結果進行加權融合。實驗結果表明,本文方法分類準確度在兩個公共數據集上都得到明顯提高,平均準確度最大提高可達25.44%。該方法不僅有效提高了帕金森病語音數據集分類準確度,還增加了樣本利用率,為帕金森病語音診斷提供了一種新思路。
引用本文: 李勇明, 張成, 王品, 謝廷杰, 曾孝平, 張艷玲, 承歐梅, 顏芳. 面向帕金森病語音數據挖掘的分包融合集成算法. 生物醫學工程學雜志, 2019, 36(4): 548-556. doi: 10.7507/1001-5515.201803061 復制
引言
帕金森病(Parkinson’s disease,PD)是一種不可逆的神經退行性疾病,對 PD 患者身心健康有嚴重危害,且目前尚缺乏治療 PD 的有效方法[1-6]。由于 PD 發病緩慢且隱蔽,PD 患者的病情會隨時間推移逐漸加重,因此研究一種高效、便捷且客觀的診斷方法就顯得非常重要。語音障礙是 PD 患者除運動障礙之外的另一常見臨床表現,研究發現 PD 患者發音與正常人發音相比,聲音較為嘶啞、模糊、粗糙、有顫抖且音量低,這些發現使得基于語音來診斷受試者是否患有 PD 成為一種可行方法[2-3,7-8]。隨著 PD 患者的語音障礙病理特點和發音特點被逐步挖掘,聲學分析技術日趨成熟,以及機器學習技術在醫療領域廣泛應用,基于語音病理特征利用機器學習技術進行 PD 無痛無損傷的客觀輔助診斷成為了當前一大研究熱點[9-12]。然而,現有基于 PD 語音診斷的研究主要側重于聲學病理分析、特征學習、分類模型選擇等方面,沒有很好地考慮樣本學習[2-3,13-17]。
由于 PD 發病具有漸進性特點,語音障礙的嚴重程度難以估計,早期 PD 患者的語音障礙所表現出的癥狀會隨著病情發展而惡化[18-21],Adler 等[22]更是發現早期的 PD 患者診斷準確率僅有 26%。由于語音采集對象患 PD 嚴重程度不一致,早期 PD 患者的語音樣本與正常人的語音樣本難以有效區分,導致在樣本空間中形成混疊區域(這一區域不同類別的樣本交織在一起)。此外,在語音樣本采集過程中,受采集設備、操作、噪聲等因素影響,語音樣本不可避免地會發生扭曲失真,產生部分“異常樣本”,從而進一步加重混疊區域的形成。上述重疊區域的樣本在一定程度上會誤導分類器模型。由于建立分類模型時樣本混疊程度難以定量分析,而且樣本空間中不同分布的樣本在建模決策時的貢獻度也難以確定,現有分類算法對混疊區域樣本不作處理或者僅簡單剔除,沒有很好地利用這些樣本來建立合適的分類模型。
為了解決樣本空間中的樣本混疊問題,本文提出了一種分包融合集成學習(partition bagging ensemble learning,PBEL)算法,用于對樣本空間的學習,弱化重疊區域樣本對分類模型的負面影響,從而提升分類準確度。該算法主要包括三部分:樣本子空間劃分模塊(subspace partitioning,SP)、子空間之間錯誤分類樣本傳遞式訓練模塊(transfer sample training,TST)和多空間加權集成學習模塊(multi-space weighted ensemble learning,MWEL)。SP 模塊采用樣本類心距離比值衡量樣本混疊程度并根據混疊程度將訓練集劃分成多個子集,以此來弱化混疊區域樣本在訓練分類器模型時對其他樣本的負面影響。TST 模塊對每個子集中錯誤分類樣本進行增強,并傳遞至下一個子集中再次參與訓練子分類器,以此實現對錯誤分類樣本的充分利用,增加樣本利用率,調整子空間劃分結果。MWEL 模塊對所有子分類器的預測結果進行加權集成,從而進一步弱化混疊區域樣本對分類器模型的負面影響,提高分類準確度。
1 分包融合集成學習分類算法
1.1 方法總體介紹
本文提出的 PBEL 算法包括三個模塊:SP 模塊、TST 模塊和 MWEL 模塊。算法流程如圖 1 所示,主要步驟如下:首先,采用受試者留一交叉驗證(leave one subject out,LOSO)將歸一化后的數據集分為訓練集和測試集[23]。其次,在 SP 模塊中計算訓練集中每個樣本的權重,然后按照降序對訓練集樣本進行排序,并將排序后的訓練集劃分為若干子集。第三,在 TST 模塊中,在訓練子分類器模型前,每個子集都會通過樣本留一交叉驗證(leave one out,LOO)進行自測[23],并獲得子集的權重因子 ,而當前子集自測時錯誤分類的樣本被增強且傳遞至下一個子集中。第四,使用測試集來驗證由每個子集訓練的分類器模型以獲得多組預測標簽。第五,在 MWEL 模塊中利用每個子集的樣本權重計算出相應子集的權重因子
,并與
相結合對每個子集的預測標簽進行加權,從而得到最終的預測結果。

1.2 子空間劃分模塊
距離度量一直是機器學習中數據挖掘的常用方法[24-25]。本文利用樣本到各類樣本中心點距離的比值作為評價準則來衡量樣本與異類樣本的混疊程度,這個比值被稱為類心距離度量比值。
如圖 2 所示,在 中,有 AD = DB =
,角
,角
。樣本 C 到同類樣本的中心點 B 與到異類樣本中心點 A 的距離分別被表示為
和
,則有樣本 C 的類心距離比值為:

![]() |
其中 為訓練集,
為樣本
同類樣本的中心點,而
為異類樣本的中心點。
也被視為樣本權值。
從幾何角度來說,由于三角形中 ,
,因此線段
和線段
的長度(即
和
的大小)與角
和
的大小息息相關。可知:
![]() |
當 、
時,樣本 C 更靠近同類樣本中心點,樣本混疊程度小,有利于正確分類;當
、
時,到同類樣本點和異類樣本點的距離相等,樣本混疊程度一般;當
、
時,樣本 C 更靠近異類樣本中心點,樣本混疊程度大,不利于正確分類。由此可見,
的大小可以在一定程度上反映樣本與異類樣本的混疊程度,
越小,表示樣本越靠近同類樣本的類中心點,與異類樣本混疊的可能性越小;而
越大,越遠離同類樣本的中心點,與異類樣本混疊的可能性越大。
SP 模塊利用式(1)計算訓練集中每個樣本的類心距離比值,并根據比值從大到小對訓練樣本進行排序,再將訓練集等比劃分成多個子集,以此減小混疊區域樣本對其他樣本的影響。以兩類分類為例,假設訓練集分為三個子集。隨著子集劃分,樣本空間中子集的分布如圖 3 所示。

在圖 3 中,T1 或 T3 中兩類樣本幾乎沒有混疊,而 T2 有大量混疊樣本,這意味著 T1 與 T3 可以很好地建立正確的分類決策面,而 T2 卻難以找到可以將兩類樣本正確劃分的分界面。因此,在將訓練集劃分為 K 個子集之后,隨著子集序數的增加,各個子集樣本的混疊程度應該表現為近似凸狀的曲線。子集混疊程度越大,訓練后的子分類器的性能越差,整個模型中子分類器的權重應該更小。
1.3 子空間樣本傳遞式訓練模塊
在 PBEL 算法中,利用類心距離比值將訓練集劃分成多個子集后,每個子集需要訓練一個模型。為了驗證每個子集的性能,在訓練模型的同時對子集進行自測檢驗,并將錯誤分類的樣本傳遞到下一個子集中。通過這種傳遞式訓練,每個子集都訓練出一個模型,且錯分樣本得到再利用,即在一定程度上增加了樣本的利用率。錯分樣本傳遞式訓練機制參考了 AdaBoost 算法中樣本增強的思想以及子分類器權重計算的思想。假設子集 Ti 的樣本數為m,以樣本的類心距離比值作為樣本權重,則對應的樣本權重集合為 。在 AdaBoost 算法中第 i 個子分類器的權重是根據對應子集的錯誤率計算得到,為了確保最終計算得到的子集自測錯誤率不大于 1,計算錯誤率時使用的樣本權重需要進行歸一化預處理,歸一化方式為:
![]() |
而錯誤率計算公式為:
![]() |
其中 與
分別為當前子集中的第 j 個樣本和歸一化后的樣本權重,
表示樣本的真實類別標簽,
為該子集訓練得到的子分類器。
使用歸一化后的樣本權重計算出子集 Ti 經過 LOO 交叉驗證的錯誤率,進而可以計算子集 Ti 訓練得到的子分類器的權重因子 ,其表達式為:
![]() |
為了充分利用有限的樣本,本文算法在 TST 模塊中將當前子集的錯誤分類的樣本傳遞到下一個子集中。因為子集樣本權重是從大到小順序排列,若存在較大權重的樣本多次被分錯,則這部分樣本會對后續子分類器的權重因子有較大影響。因此,在錯分樣本傳遞的過程中需要調整錯分樣本的權重,使其盡量減小對模型的干擾。樣本增強的表達式為:
![]() |
其中 表示第 k 個錯分樣本的權重,n 為當前子集的錯分樣本數,
為更新后的樣本權重。因為
總是滿足
,所以有
始終成立。式(6)可以很好地減小錯分樣本的權重,實現樣本增強,而且
是一個單調遞增的函數,
越大,錯分樣本更新后的權重越小,對下一個子集
參數的影響就越小。
TST 模塊中錯誤分類樣本的傳遞可以增加樣本利用率,而樣本增強則可以防止權重過大的錯分樣本對后續子集的參數產生過大的影響。本文算法中 TST 模塊錯誤分類的樣本傳遞式訓練過程如圖 4 所示。

如圖 4 所示,每個子集都訓練出子分類器模型,且在 LOO 的條件下獲得子分類器的一個權重因子 ,而錯誤分類的樣本在增強后傳遞至下一個子集中再次參與建模,這樣就增加了樣本的利用率,還在一定程度上調整了子集劃分結果。
1.4 多空間加權集成學習模塊
通過劃分出的多個子集可以獲得多個子分類器模型,在集成學習中,有像 Bagging 算法那樣對多個子分類器的預測結果進行投票獲取測試樣本的分類結果,也有如 AdaBoost 算法那樣利用子集的相關參數計算子模型權重,從而進行加權集成獲得最終預測結果。本文算法采用加權集成的方式對多個子分類器的預測結果進行加權,以此獲得測試樣本最終的預測結果,通過加權的方式進一步弱化混疊區域樣本對分類器模型的影響。與 AdaBoost 算法不同的是,本文算法中子分類器并不是由完整的訓練集訓練獲取,而是由分布不同的子集訓練得到的。因此,式(5)不能完全表示最終模型中每個子分類器的權重,為了提高模型對測試集的魯棒性,本文在 MWEL 模塊中使用另一個權重因子 來對權重因子
進行補充。
的值由各個子集的樣本權重決定,其表達式為:
![]() |
而在本文算法中加權集成學習所使用的子分類器權重計算方式為:
![]() |
假設在本文算法模型中 代表第 i 個子分類器的權重,為了保證加權權重和為 1,還需要對
的值進行歸一化處理,歸一化方式為:
![]() |
而最終分類器模型的輸出結果為:
![]() |
其中 為第i個子分類器預測標簽,
為該子分類器權重,K 為子分類器個數。
1.5 算法偽代碼
PBEL 算法主體部分的步驟如下。
步驟 1:輸入的數據集進行歸一化,并劃分為訓練集與測試集;
步驟 2:利用式(1)計算訓練集中每個樣本權重;
步驟 3:將訓練集樣本按樣本權重從大到小排序,并將排序后訓練集劃分為 K 個子集;
步驟 4:計算每個訓練子集 LOO 之后的錯誤率,并按式(5)計算每個子集的權重因子 ;
步驟 5:利用式(6)對錯誤分類樣本進行增強并將增強后的樣本傳遞至下一個子集中;
步驟 6:利用式(7)計算每個子集的權重因子 ;
步驟 7:訓練每個子集的分類器模型;
步驟 8:用測試樣本在每個子分類器模型上進行測試并獲取相應的預測標簽;
步驟 9:利用式(8)將每個子分類器的權重因子 和
相融合得到各個子分類器的權重;
步驟 10:利用式(10)對各個子分類器的預測標簽進行加權集成,獲得最終預測結果并統計測試集的分類準確度、靈敏度、特異度。
2 實驗結果與分析
2.1 實驗條件
目前國際上有代表性的 PD 語音公共數據集有兩個:① 由 Sakar 等[3]提供的數據集包含 40 例受試者的信息,其中患有 0~6 年 PD 的患者 20 例(14 例男性,6 例女性),正常人 20 例(10 例男性,10 例女性)。每例受試者有 26 個不同發音任務的語音樣本,每個樣本有 26 個特征。② 由 Little 團隊[2]提供的數據集包括 31 例受試者,其中 23 例 PD 患者(16 例男性,7 例女性),8 例正常人(3 例男性,5 例女性)。每例受試者有 6 個或者 7 個發音任務的樣本,每個樣本 22 個特征。
在實驗中使用 LOSO 方法來驗證算法性能,并且在 TST 模塊中使用 LOO 方法。為了驗證本文所提出算法的性能,在實驗中使用了線性函數核和徑向基核函數(radial basis function,RBF)核的支持向量機(support vector machine,SVM)。所使用的硬件設備是 64 位計算機,其操作系統是 Windows 10,軟件是 Matlab2016(b)。實驗評估標準可以在作者前期工作[26]中看到。
2.2 性能驗證
由于不同數據集樣本空間中樣本分布情況不同,因此需要針對數據集確定劃分子集的最佳個數。這里以 Sakar 數據集進行算法驗證,通過實驗以分包個數在 3~15 之間遍歷獲得最佳分包個數為 7。在分包數目為 7 的基礎上進行分 RBF 核函數的 SVM 參數尋優,尋優結果為懲罰參數 c 為 0.3,gamma 參數為 0.9。以下算法驗證實驗皆以此參數進行。
為了驗證 TST 模塊中錯誤分類樣本傳遞和增強這兩個操作的意義,本文設計了無錯誤分類樣本傳遞、錯誤分類樣本傳遞但不增強、錯誤分類樣本傳遞且增強三組對比實驗,實驗結果如圖 5 所示。

從圖 5 可以看出,在錯誤分類樣本未傳遞時分類的準確度為 52.5%,靈敏度為 25.0%,特異度為 80.0%。將錯誤分類樣本進行傳遞但不增強后,分類準確度提升了 7.5%,同時靈敏度提升了 10.0%,而特異度提升了 5.0%。對傳遞到下一個子集的錯誤分類的樣本進行增強,模型的分類精度進一步提升,其中分類準確度從 60.0% 提升到 77.5%,靈敏度的提升更為明顯,從 35.0% 提升為 70.0%,特異度依然為 85.0%。對比三組實驗的分類結果可知,本文方法在訓練子分類器時采用錯誤分類樣本傳遞且增強的方式是有意義的,錯誤分類樣本的傳遞在一定程度上提高了模型的分類能力,而采用樣本增強則進一步優化了模型性能,提升了分類準確度。
實驗過程中,為了驗證 TST 模塊樣本傳遞和樣本增強的效果,考慮以下三種情況:無錯誤分類樣本傳遞,錯誤分類樣本傳遞但未增強,以及錯誤分類樣本傳遞且增強。記錄實驗某次迭代時三種情況下各個子集的權重,對比如圖 6 所示。

隨著子集序號的增加,靠近中間序號的子集中樣本混疊程度較為嚴重,所訓練的子分類器可靠性不強,理論上需要賦予較小的權重才能削弱混疊區域樣本對整個算法模型的影響。從圖 6 可以看出,各組實驗中子分類器權重的確是趨近于一個凹狀曲線,符合混疊程度嚴重的子集所對應的子分類器在決策層具有較小影響力的要求。與無錯誤分類樣本傳遞方式相比,錯誤分類樣本傳遞但未增強的方法中,第五個子集和第六個子集的分類器權重明顯降低,而其他子集的權重變化不大,形成的權重折線更趨近于一個凹狀曲線。錯誤分類樣本在傳遞過程中進行增強所獲得的子分類器權重折線與未進行增強的權重折線相比較,可見部分子分類器的權重又進一步降低,而第七個子分類器的權重卻又極大提升,使權重折線更趨近于凹狀,即子分類器的權重分配更符合理論要求。
由此可見,錯誤分類樣本的傳遞和增強不僅可以增加樣本的利用率,還可以較好地優化子集權重,弱化混疊程度嚴重的樣本對算法模型分類精度的影響,從而實現模型分類性能的提升。
本文方法在 MWEL 模塊中使用了兩個權重因子相結合的方式實現預測結果的加權融合,為了研究不同權重因子加權集成學習的作用,本文設計了多個子分類器預測結果的等權重集成學習(投票決策)、僅使用權重因子 的加權集成學習、僅使用權重因子
的加權集成學習以及本文方法四組實驗進行比較。因為對比試驗的區別在最終決策層的集成學習權重不同,所以四組實驗的分包數目以及 RBF 核函數的 SVM 參數設置保持一致。實驗對比結果如表 1 所示。

表 1 展現了不同集成方式的分類結果對比,使用等權重集成學習時分類準確度僅為 50.00%,而靈敏度為 0.00%,特異度為 100.00%,此時算法模型具有極大的偏向性,明顯不可取。使用權重因子 μ 進行加權集成學習時,分類器準確度達到 52.50%,靈敏度為 75.00%,而特異度僅有 30.00%。當僅使用權重因子 λ 進行加權集成學習時分類的準確度可以達到 70.00%,靈敏度為 55.00%,而特異度為 85.00%。比較單獨使用兩個權重因子時的分類結果,不難發現單獨使用權重因 子 時的分類準確度要遠大于單獨使用權重因子
的分類準確度,可見
比
在加權融合中占有更重要的作用。比較靈敏度與特異度則可以發現使用權重因子
作為唯一加權指標有利于正類樣本的分類識別,而用權重因子
作為唯一加權指標則偏向于負類樣本的正確識別。在本文方法中,將兩個權重因子相結合的加權集成學習的方式取得的分類準確度為 77.50%,靈敏度為 70.00%,特異度為 85.00%,該結果比單獨使用任何一個權重因子的分類精度都要好,更遠遠優于等權重融合的集成方式。在決策時,
比
的決策性更大,
的大小取決于各個子集中樣本的混疊程度,而
的大小則由各個子集樣本的權重決定。
與
相結合則較好地彌補了各子分類器由
決定權重大小的不足,使算法的分類性能得到很好的提升,平衡了各類樣本分類識別的準確度,優化了子分類器在最終決策時的權重,使樣本混疊情況嚴重的子集所對應的子分類器具有較低權重,而樣本可分性好的子集所對應的子分類器具有較大權重。
2.3 性能比較
基于 Sakar 數據集,本文方法與以下三個方法進行比較。方法 1 為使用 Bagging 算法來對數據集進行分類預測,基分類器為線性核函數的 SVM 時懲罰參數 c 的值為 0.9,訓練子集最佳數目為 5;基分類器為 RBF 核函數的 SVM 時懲罰參數 c 的值為 10、gamma 參數 g 的值為 10.5,而此時訓練子集數目最佳個數為 16。方法 2 為基于決策樹的 AdaBoost 算法,弱分類器個數為 30。方法 3 為本文方法簡化版(使用等權重投票方法代替 MWEL 模塊),實現對數據集的分類預測,該方法被稱之為分包投票集成學習算法(partition bagging voting ensemble learning,PBVEL)。其分包數目為 7 個,使用 SVM 線性核函數時懲罰系數 c 值為 0.9;使用 SVM 的 RBF 核函數時懲罰系數 c 值為 0.3,gamma 系數 g 的值為 0.9。本文方法參數設置與方法 3 保持一致。實驗過程中的所有對比方法均重復 20 次,取分類準確度的平均值和標準差來衡量算法的分類能力及其穩定性,實驗結果對比如表 2 所示。



如表 2 所示,本文方法基于 SVM 線性核函數算法的分類準確度為 72.50%,而使用 RBF 核函數的 SVM 算法的分類準確度為 77.50%,比 PBVEL 算法均高出 10.00%。基于 Bagging 算法與 AdaBoost 算法的預測準確度的標準差均不為 0,可見這兩種算法的預測結果存在一定波動性。本文方法的預測結果較 Bagging 算法而言,使用線性核函數的 SVM 時平均準確度提升了 20.12%,使用 RBF 核函數的 SVM 時則提升了 14.50%。從穩定性的角度來看,本文方法的結果較 Bagging 算法更為穩定,這是因為本文方法無隨機過程,且使用 LOSO 交叉驗證方式,20 次實驗的預測結果沒有變化。與 AdaBoost 算法相比較,在 Sakar 數據集上本文方法的預測平均準確度提升最大可達 15.00%。
本文方法針對兩個數據集的處理結果如表 3 所示。傳統方法是直接使用 RBF 核函數的 SVM 算法對數據集進行分類,文獻[3]是構造 Sakar 數據集的原提供者設計的分類方法,文獻[2]是 Max Little 數據集的原提供者設計的分類方法,文獻[27]是一種比較新穎且與本文方法比較相近的加權集成算法。這三種分類方法都沒有較好地考慮處理重疊樣本學習的問題。通過與它們的性能比較,可以驗證本文算法的有效性。



從表 3 中結果可以看出,基于 Sakar 數據集,本文方法的平均準確度為 77.50%,結果穩定,比傳統方法高出 7.50%,比文獻[3]方法的結果高出 25.44%,而文獻[27]方法的準確度、靈敏度、特異度均只有 60.00%,遠不及本文方法的結果。基于 Max Little 數據集,本文方法的平均準確度達到了 87.50%;文獻[2]方法的平均準確度僅為 81.70%;文獻[27]方法獲得的平均準確度為 84.38%,雖然靈敏度高達 100%,特異度卻僅僅 37.50%,可見在 Max Little 數據集的分類過程中負類樣本預測準確率不高,該方法的預測具有極大的偏向性,整體分類性能低于本文方法。比較兩個數據集的結果可知,本文方法的預測結果均比對比方法好,且穩定性比文獻[27]中最新的集成方法更好。
3 結論
現有的 PD 語音數據分類方法大都沒有考慮充分利用重疊區域樣本以提高分類準確度。本文提出了一種分包融合集合學習算法來有效解決這一問題。本文算法在 SP 模塊中利用樣本的類心距離比值來衡量樣本與異類樣本的混疊程度,并根據樣本的混疊程度(也是分布情況)將訓練集劃分成多個子集,利用 TST 模塊對每個子集都訓練子分類器模型并將當前子集自測的錯誤分類的樣本在增強后傳遞到下一個子集中再次參與建模,最后在 MWEL 模塊中對測試樣本的預測結果進行加權集成學習,從而得到最終的預測結果。基于 Sakar 數據集的驗證實驗結果表明,本文方法中的子集劃分可以很好地減小混疊區域樣本對模型的影響,錯分樣本的傳遞與增強不僅可以增加樣本的利用率,還可以優化分包的結果,最后對子分類器的預測結果進行加權融合則進一步減小了混疊區域樣本對模型的影響,使不同分布的樣本在模型決策時具有相對合理的權重,從而達到提高 PD 語音分類準確率的目的。可見,本文算法的主要創新部分是有效的。從預測結果的獲取方式上來說,本文方法是一種集成學習算法,基于 Sakar 數據集的不同集成方法的實驗結果表明,本文方法的分類效果要明顯優于 Bagging、AdaBoost 這兩種傳統的集成學習方法,且算法的穩定性比 Bagging 算法更好。將本文方法與其他參考文獻中的方法在兩個具有代表性的 PD 語音數據集上進行實驗比較,從結果中可以發現本文方法顯著提高了分類準確度,其中在 Sakar 數據集上本文方法較數據集提供者的方法而言預測結果改進幅度高達 25.44%。對比實驗結果表明,本章所提出的 PBEL 算法是有效的,它在一定程度上提升了 PD 語音診斷的分類準確率,為 PD 語音檢測的臨床應用打下了較好的理論基礎。
利益沖突聲明:本文全體作者均聲明不存在利益沖突。
引言
帕金森病(Parkinson’s disease,PD)是一種不可逆的神經退行性疾病,對 PD 患者身心健康有嚴重危害,且目前尚缺乏治療 PD 的有效方法[1-6]。由于 PD 發病緩慢且隱蔽,PD 患者的病情會隨時間推移逐漸加重,因此研究一種高效、便捷且客觀的診斷方法就顯得非常重要。語音障礙是 PD 患者除運動障礙之外的另一常見臨床表現,研究發現 PD 患者發音與正常人發音相比,聲音較為嘶啞、模糊、粗糙、有顫抖且音量低,這些發現使得基于語音來診斷受試者是否患有 PD 成為一種可行方法[2-3,7-8]。隨著 PD 患者的語音障礙病理特點和發音特點被逐步挖掘,聲學分析技術日趨成熟,以及機器學習技術在醫療領域廣泛應用,基于語音病理特征利用機器學習技術進行 PD 無痛無損傷的客觀輔助診斷成為了當前一大研究熱點[9-12]。然而,現有基于 PD 語音診斷的研究主要側重于聲學病理分析、特征學習、分類模型選擇等方面,沒有很好地考慮樣本學習[2-3,13-17]。
由于 PD 發病具有漸進性特點,語音障礙的嚴重程度難以估計,早期 PD 患者的語音障礙所表現出的癥狀會隨著病情發展而惡化[18-21],Adler 等[22]更是發現早期的 PD 患者診斷準確率僅有 26%。由于語音采集對象患 PD 嚴重程度不一致,早期 PD 患者的語音樣本與正常人的語音樣本難以有效區分,導致在樣本空間中形成混疊區域(這一區域不同類別的樣本交織在一起)。此外,在語音樣本采集過程中,受采集設備、操作、噪聲等因素影響,語音樣本不可避免地會發生扭曲失真,產生部分“異常樣本”,從而進一步加重混疊區域的形成。上述重疊區域的樣本在一定程度上會誤導分類器模型。由于建立分類模型時樣本混疊程度難以定量分析,而且樣本空間中不同分布的樣本在建模決策時的貢獻度也難以確定,現有分類算法對混疊區域樣本不作處理或者僅簡單剔除,沒有很好地利用這些樣本來建立合適的分類模型。
為了解決樣本空間中的樣本混疊問題,本文提出了一種分包融合集成學習(partition bagging ensemble learning,PBEL)算法,用于對樣本空間的學習,弱化重疊區域樣本對分類模型的負面影響,從而提升分類準確度。該算法主要包括三部分:樣本子空間劃分模塊(subspace partitioning,SP)、子空間之間錯誤分類樣本傳遞式訓練模塊(transfer sample training,TST)和多空間加權集成學習模塊(multi-space weighted ensemble learning,MWEL)。SP 模塊采用樣本類心距離比值衡量樣本混疊程度并根據混疊程度將訓練集劃分成多個子集,以此來弱化混疊區域樣本在訓練分類器模型時對其他樣本的負面影響。TST 模塊對每個子集中錯誤分類樣本進行增強,并傳遞至下一個子集中再次參與訓練子分類器,以此實現對錯誤分類樣本的充分利用,增加樣本利用率,調整子空間劃分結果。MWEL 模塊對所有子分類器的預測結果進行加權集成,從而進一步弱化混疊區域樣本對分類器模型的負面影響,提高分類準確度。
1 分包融合集成學習分類算法
1.1 方法總體介紹
本文提出的 PBEL 算法包括三個模塊:SP 模塊、TST 模塊和 MWEL 模塊。算法流程如圖 1 所示,主要步驟如下:首先,采用受試者留一交叉驗證(leave one subject out,LOSO)將歸一化后的數據集分為訓練集和測試集[23]。其次,在 SP 模塊中計算訓練集中每個樣本的權重,然后按照降序對訓練集樣本進行排序,并將排序后的訓練集劃分為若干子集。第三,在 TST 模塊中,在訓練子分類器模型前,每個子集都會通過樣本留一交叉驗證(leave one out,LOO)進行自測[23],并獲得子集的權重因子 ,而當前子集自測時錯誤分類的樣本被增強且傳遞至下一個子集中。第四,使用測試集來驗證由每個子集訓練的分類器模型以獲得多組預測標簽。第五,在 MWEL 模塊中利用每個子集的樣本權重計算出相應子集的權重因子
,并與
相結合對每個子集的預測標簽進行加權,從而得到最終的預測結果。

1.2 子空間劃分模塊
距離度量一直是機器學習中數據挖掘的常用方法[24-25]。本文利用樣本到各類樣本中心點距離的比值作為評價準則來衡量樣本與異類樣本的混疊程度,這個比值被稱為類心距離度量比值。
如圖 2 所示,在 中,有 AD = DB =
,角
,角
。樣本 C 到同類樣本的中心點 B 與到異類樣本中心點 A 的距離分別被表示為
和
,則有樣本 C 的類心距離比值為:

![]() |
其中 為訓練集,
為樣本
同類樣本的中心點,而
為異類樣本的中心點。
也被視為樣本權值。
從幾何角度來說,由于三角形中 ,
,因此線段
和線段
的長度(即
和
的大小)與角
和
的大小息息相關。可知:
![]() |
當 、
時,樣本 C 更靠近同類樣本中心點,樣本混疊程度小,有利于正確分類;當
、
時,到同類樣本點和異類樣本點的距離相等,樣本混疊程度一般;當
、
時,樣本 C 更靠近異類樣本中心點,樣本混疊程度大,不利于正確分類。由此可見,
的大小可以在一定程度上反映樣本與異類樣本的混疊程度,
越小,表示樣本越靠近同類樣本的類中心點,與異類樣本混疊的可能性越小;而
越大,越遠離同類樣本的中心點,與異類樣本混疊的可能性越大。
SP 模塊利用式(1)計算訓練集中每個樣本的類心距離比值,并根據比值從大到小對訓練樣本進行排序,再將訓練集等比劃分成多個子集,以此減小混疊區域樣本對其他樣本的影響。以兩類分類為例,假設訓練集分為三個子集。隨著子集劃分,樣本空間中子集的分布如圖 3 所示。

在圖 3 中,T1 或 T3 中兩類樣本幾乎沒有混疊,而 T2 有大量混疊樣本,這意味著 T1 與 T3 可以很好地建立正確的分類決策面,而 T2 卻難以找到可以將兩類樣本正確劃分的分界面。因此,在將訓練集劃分為 K 個子集之后,隨著子集序數的增加,各個子集樣本的混疊程度應該表現為近似凸狀的曲線。子集混疊程度越大,訓練后的子分類器的性能越差,整個模型中子分類器的權重應該更小。
1.3 子空間樣本傳遞式訓練模塊
在 PBEL 算法中,利用類心距離比值將訓練集劃分成多個子集后,每個子集需要訓練一個模型。為了驗證每個子集的性能,在訓練模型的同時對子集進行自測檢驗,并將錯誤分類的樣本傳遞到下一個子集中。通過這種傳遞式訓練,每個子集都訓練出一個模型,且錯分樣本得到再利用,即在一定程度上增加了樣本的利用率。錯分樣本傳遞式訓練機制參考了 AdaBoost 算法中樣本增強的思想以及子分類器權重計算的思想。假設子集 Ti 的樣本數為m,以樣本的類心距離比值作為樣本權重,則對應的樣本權重集合為 。在 AdaBoost 算法中第 i 個子分類器的權重是根據對應子集的錯誤率計算得到,為了確保最終計算得到的子集自測錯誤率不大于 1,計算錯誤率時使用的樣本權重需要進行歸一化預處理,歸一化方式為:
![]() |
而錯誤率計算公式為:
![]() |
其中 與
分別為當前子集中的第 j 個樣本和歸一化后的樣本權重,
表示樣本的真實類別標簽,
為該子集訓練得到的子分類器。
使用歸一化后的樣本權重計算出子集 Ti 經過 LOO 交叉驗證的錯誤率,進而可以計算子集 Ti 訓練得到的子分類器的權重因子 ,其表達式為:
![]() |
為了充分利用有限的樣本,本文算法在 TST 模塊中將當前子集的錯誤分類的樣本傳遞到下一個子集中。因為子集樣本權重是從大到小順序排列,若存在較大權重的樣本多次被分錯,則這部分樣本會對后續子分類器的權重因子有較大影響。因此,在錯分樣本傳遞的過程中需要調整錯分樣本的權重,使其盡量減小對模型的干擾。樣本增強的表達式為:
![]() |
其中 表示第 k 個錯分樣本的權重,n 為當前子集的錯分樣本數,
為更新后的樣本權重。因為
總是滿足
,所以有
始終成立。式(6)可以很好地減小錯分樣本的權重,實現樣本增強,而且
是一個單調遞增的函數,
越大,錯分樣本更新后的權重越小,對下一個子集
參數的影響就越小。
TST 模塊中錯誤分類樣本的傳遞可以增加樣本利用率,而樣本增強則可以防止權重過大的錯分樣本對后續子集的參數產生過大的影響。本文算法中 TST 模塊錯誤分類的樣本傳遞式訓練過程如圖 4 所示。

如圖 4 所示,每個子集都訓練出子分類器模型,且在 LOO 的條件下獲得子分類器的一個權重因子 ,而錯誤分類的樣本在增強后傳遞至下一個子集中再次參與建模,這樣就增加了樣本的利用率,還在一定程度上調整了子集劃分結果。
1.4 多空間加權集成學習模塊
通過劃分出的多個子集可以獲得多個子分類器模型,在集成學習中,有像 Bagging 算法那樣對多個子分類器的預測結果進行投票獲取測試樣本的分類結果,也有如 AdaBoost 算法那樣利用子集的相關參數計算子模型權重,從而進行加權集成獲得最終預測結果。本文算法采用加權集成的方式對多個子分類器的預測結果進行加權,以此獲得測試樣本最終的預測結果,通過加權的方式進一步弱化混疊區域樣本對分類器模型的影響。與 AdaBoost 算法不同的是,本文算法中子分類器并不是由完整的訓練集訓練獲取,而是由分布不同的子集訓練得到的。因此,式(5)不能完全表示最終模型中每個子分類器的權重,為了提高模型對測試集的魯棒性,本文在 MWEL 模塊中使用另一個權重因子 來對權重因子
進行補充。
的值由各個子集的樣本權重決定,其表達式為:
![]() |
而在本文算法中加權集成學習所使用的子分類器權重計算方式為:
![]() |
假設在本文算法模型中 代表第 i 個子分類器的權重,為了保證加權權重和為 1,還需要對
的值進行歸一化處理,歸一化方式為:
![]() |
而最終分類器模型的輸出結果為:
![]() |
其中 為第i個子分類器預測標簽,
為該子分類器權重,K 為子分類器個數。
1.5 算法偽代碼
PBEL 算法主體部分的步驟如下。
步驟 1:輸入的數據集進行歸一化,并劃分為訓練集與測試集;
步驟 2:利用式(1)計算訓練集中每個樣本權重;
步驟 3:將訓練集樣本按樣本權重從大到小排序,并將排序后訓練集劃分為 K 個子集;
步驟 4:計算每個訓練子集 LOO 之后的錯誤率,并按式(5)計算每個子集的權重因子 ;
步驟 5:利用式(6)對錯誤分類樣本進行增強并將增強后的樣本傳遞至下一個子集中;
步驟 6:利用式(7)計算每個子集的權重因子 ;
步驟 7:訓練每個子集的分類器模型;
步驟 8:用測試樣本在每個子分類器模型上進行測試并獲取相應的預測標簽;
步驟 9:利用式(8)將每個子分類器的權重因子 和
相融合得到各個子分類器的權重;
步驟 10:利用式(10)對各個子分類器的預測標簽進行加權集成,獲得最終預測結果并統計測試集的分類準確度、靈敏度、特異度。
2 實驗結果與分析
2.1 實驗條件
目前國際上有代表性的 PD 語音公共數據集有兩個:① 由 Sakar 等[3]提供的數據集包含 40 例受試者的信息,其中患有 0~6 年 PD 的患者 20 例(14 例男性,6 例女性),正常人 20 例(10 例男性,10 例女性)。每例受試者有 26 個不同發音任務的語音樣本,每個樣本有 26 個特征。② 由 Little 團隊[2]提供的數據集包括 31 例受試者,其中 23 例 PD 患者(16 例男性,7 例女性),8 例正常人(3 例男性,5 例女性)。每例受試者有 6 個或者 7 個發音任務的樣本,每個樣本 22 個特征。
在實驗中使用 LOSO 方法來驗證算法性能,并且在 TST 模塊中使用 LOO 方法。為了驗證本文所提出算法的性能,在實驗中使用了線性函數核和徑向基核函數(radial basis function,RBF)核的支持向量機(support vector machine,SVM)。所使用的硬件設備是 64 位計算機,其操作系統是 Windows 10,軟件是 Matlab2016(b)。實驗評估標準可以在作者前期工作[26]中看到。
2.2 性能驗證
由于不同數據集樣本空間中樣本分布情況不同,因此需要針對數據集確定劃分子集的最佳個數。這里以 Sakar 數據集進行算法驗證,通過實驗以分包個數在 3~15 之間遍歷獲得最佳分包個數為 7。在分包數目為 7 的基礎上進行分 RBF 核函數的 SVM 參數尋優,尋優結果為懲罰參數 c 為 0.3,gamma 參數為 0.9。以下算法驗證實驗皆以此參數進行。
為了驗證 TST 模塊中錯誤分類樣本傳遞和增強這兩個操作的意義,本文設計了無錯誤分類樣本傳遞、錯誤分類樣本傳遞但不增強、錯誤分類樣本傳遞且增強三組對比實驗,實驗結果如圖 5 所示。

從圖 5 可以看出,在錯誤分類樣本未傳遞時分類的準確度為 52.5%,靈敏度為 25.0%,特異度為 80.0%。將錯誤分類樣本進行傳遞但不增強后,分類準確度提升了 7.5%,同時靈敏度提升了 10.0%,而特異度提升了 5.0%。對傳遞到下一個子集的錯誤分類的樣本進行增強,模型的分類精度進一步提升,其中分類準確度從 60.0% 提升到 77.5%,靈敏度的提升更為明顯,從 35.0% 提升為 70.0%,特異度依然為 85.0%。對比三組實驗的分類結果可知,本文方法在訓練子分類器時采用錯誤分類樣本傳遞且增強的方式是有意義的,錯誤分類樣本的傳遞在一定程度上提高了模型的分類能力,而采用樣本增強則進一步優化了模型性能,提升了分類準確度。
實驗過程中,為了驗證 TST 模塊樣本傳遞和樣本增強的效果,考慮以下三種情況:無錯誤分類樣本傳遞,錯誤分類樣本傳遞但未增強,以及錯誤分類樣本傳遞且增強。記錄實驗某次迭代時三種情況下各個子集的權重,對比如圖 6 所示。

隨著子集序號的增加,靠近中間序號的子集中樣本混疊程度較為嚴重,所訓練的子分類器可靠性不強,理論上需要賦予較小的權重才能削弱混疊區域樣本對整個算法模型的影響。從圖 6 可以看出,各組實驗中子分類器權重的確是趨近于一個凹狀曲線,符合混疊程度嚴重的子集所對應的子分類器在決策層具有較小影響力的要求。與無錯誤分類樣本傳遞方式相比,錯誤分類樣本傳遞但未增強的方法中,第五個子集和第六個子集的分類器權重明顯降低,而其他子集的權重變化不大,形成的權重折線更趨近于一個凹狀曲線。錯誤分類樣本在傳遞過程中進行增強所獲得的子分類器權重折線與未進行增強的權重折線相比較,可見部分子分類器的權重又進一步降低,而第七個子分類器的權重卻又極大提升,使權重折線更趨近于凹狀,即子分類器的權重分配更符合理論要求。
由此可見,錯誤分類樣本的傳遞和增強不僅可以增加樣本的利用率,還可以較好地優化子集權重,弱化混疊程度嚴重的樣本對算法模型分類精度的影響,從而實現模型分類性能的提升。
本文方法在 MWEL 模塊中使用了兩個權重因子相結合的方式實現預測結果的加權融合,為了研究不同權重因子加權集成學習的作用,本文設計了多個子分類器預測結果的等權重集成學習(投票決策)、僅使用權重因子 的加權集成學習、僅使用權重因子
的加權集成學習以及本文方法四組實驗進行比較。因為對比試驗的區別在最終決策層的集成學習權重不同,所以四組實驗的分包數目以及 RBF 核函數的 SVM 參數設置保持一致。實驗對比結果如表 1 所示。

表 1 展現了不同集成方式的分類結果對比,使用等權重集成學習時分類準確度僅為 50.00%,而靈敏度為 0.00%,特異度為 100.00%,此時算法模型具有極大的偏向性,明顯不可取。使用權重因子 μ 進行加權集成學習時,分類器準確度達到 52.50%,靈敏度為 75.00%,而特異度僅有 30.00%。當僅使用權重因子 λ 進行加權集成學習時分類的準確度可以達到 70.00%,靈敏度為 55.00%,而特異度為 85.00%。比較單獨使用兩個權重因子時的分類結果,不難發現單獨使用權重因 子 時的分類準確度要遠大于單獨使用權重因子
的分類準確度,可見
比
在加權融合中占有更重要的作用。比較靈敏度與特異度則可以發現使用權重因子
作為唯一加權指標有利于正類樣本的分類識別,而用權重因子
作為唯一加權指標則偏向于負類樣本的正確識別。在本文方法中,將兩個權重因子相結合的加權集成學習的方式取得的分類準確度為 77.50%,靈敏度為 70.00%,特異度為 85.00%,該結果比單獨使用任何一個權重因子的分類精度都要好,更遠遠優于等權重融合的集成方式。在決策時,
比
的決策性更大,
的大小取決于各個子集中樣本的混疊程度,而
的大小則由各個子集樣本的權重決定。
與
相結合則較好地彌補了各子分類器由
決定權重大小的不足,使算法的分類性能得到很好的提升,平衡了各類樣本分類識別的準確度,優化了子分類器在最終決策時的權重,使樣本混疊情況嚴重的子集所對應的子分類器具有較低權重,而樣本可分性好的子集所對應的子分類器具有較大權重。
2.3 性能比較
基于 Sakar 數據集,本文方法與以下三個方法進行比較。方法 1 為使用 Bagging 算法來對數據集進行分類預測,基分類器為線性核函數的 SVM 時懲罰參數 c 的值為 0.9,訓練子集最佳數目為 5;基分類器為 RBF 核函數的 SVM 時懲罰參數 c 的值為 10、gamma 參數 g 的值為 10.5,而此時訓練子集數目最佳個數為 16。方法 2 為基于決策樹的 AdaBoost 算法,弱分類器個數為 30。方法 3 為本文方法簡化版(使用等權重投票方法代替 MWEL 模塊),實現對數據集的分類預測,該方法被稱之為分包投票集成學習算法(partition bagging voting ensemble learning,PBVEL)。其分包數目為 7 個,使用 SVM 線性核函數時懲罰系數 c 值為 0.9;使用 SVM 的 RBF 核函數時懲罰系數 c 值為 0.3,gamma 系數 g 的值為 0.9。本文方法參數設置與方法 3 保持一致。實驗過程中的所有對比方法均重復 20 次,取分類準確度的平均值和標準差來衡量算法的分類能力及其穩定性,實驗結果對比如表 2 所示。



如表 2 所示,本文方法基于 SVM 線性核函數算法的分類準確度為 72.50%,而使用 RBF 核函數的 SVM 算法的分類準確度為 77.50%,比 PBVEL 算法均高出 10.00%。基于 Bagging 算法與 AdaBoost 算法的預測準確度的標準差均不為 0,可見這兩種算法的預測結果存在一定波動性。本文方法的預測結果較 Bagging 算法而言,使用線性核函數的 SVM 時平均準確度提升了 20.12%,使用 RBF 核函數的 SVM 時則提升了 14.50%。從穩定性的角度來看,本文方法的結果較 Bagging 算法更為穩定,這是因為本文方法無隨機過程,且使用 LOSO 交叉驗證方式,20 次實驗的預測結果沒有變化。與 AdaBoost 算法相比較,在 Sakar 數據集上本文方法的預測平均準確度提升最大可達 15.00%。
本文方法針對兩個數據集的處理結果如表 3 所示。傳統方法是直接使用 RBF 核函數的 SVM 算法對數據集進行分類,文獻[3]是構造 Sakar 數據集的原提供者設計的分類方法,文獻[2]是 Max Little 數據集的原提供者設計的分類方法,文獻[27]是一種比較新穎且與本文方法比較相近的加權集成算法。這三種分類方法都沒有較好地考慮處理重疊樣本學習的問題。通過與它們的性能比較,可以驗證本文算法的有效性。



從表 3 中結果可以看出,基于 Sakar 數據集,本文方法的平均準確度為 77.50%,結果穩定,比傳統方法高出 7.50%,比文獻[3]方法的結果高出 25.44%,而文獻[27]方法的準確度、靈敏度、特異度均只有 60.00%,遠不及本文方法的結果。基于 Max Little 數據集,本文方法的平均準確度達到了 87.50%;文獻[2]方法的平均準確度僅為 81.70%;文獻[27]方法獲得的平均準確度為 84.38%,雖然靈敏度高達 100%,特異度卻僅僅 37.50%,可見在 Max Little 數據集的分類過程中負類樣本預測準確率不高,該方法的預測具有極大的偏向性,整體分類性能低于本文方法。比較兩個數據集的結果可知,本文方法的預測結果均比對比方法好,且穩定性比文獻[27]中最新的集成方法更好。
3 結論
現有的 PD 語音數據分類方法大都沒有考慮充分利用重疊區域樣本以提高分類準確度。本文提出了一種分包融合集合學習算法來有效解決這一問題。本文算法在 SP 模塊中利用樣本的類心距離比值來衡量樣本與異類樣本的混疊程度,并根據樣本的混疊程度(也是分布情況)將訓練集劃分成多個子集,利用 TST 模塊對每個子集都訓練子分類器模型并將當前子集自測的錯誤分類的樣本在增強后傳遞到下一個子集中再次參與建模,最后在 MWEL 模塊中對測試樣本的預測結果進行加權集成學習,從而得到最終的預測結果。基于 Sakar 數據集的驗證實驗結果表明,本文方法中的子集劃分可以很好地減小混疊區域樣本對模型的影響,錯分樣本的傳遞與增強不僅可以增加樣本的利用率,還可以優化分包的結果,最后對子分類器的預測結果進行加權融合則進一步減小了混疊區域樣本對模型的影響,使不同分布的樣本在模型決策時具有相對合理的權重,從而達到提高 PD 語音分類準確率的目的。可見,本文算法的主要創新部分是有效的。從預測結果的獲取方式上來說,本文方法是一種集成學習算法,基于 Sakar 數據集的不同集成方法的實驗結果表明,本文方法的分類效果要明顯優于 Bagging、AdaBoost 這兩種傳統的集成學習方法,且算法的穩定性比 Bagging 算法更好。將本文方法與其他參考文獻中的方法在兩個具有代表性的 PD 語音數據集上進行實驗比較,從結果中可以發現本文方法顯著提高了分類準確度,其中在 Sakar 數據集上本文方法較數據集提供者的方法而言預測結果改進幅度高達 25.44%。對比實驗結果表明,本章所提出的 PBEL 算法是有效的,它在一定程度上提升了 PD 語音診斷的分類準確率,為 PD 語音檢測的臨床應用打下了較好的理論基礎。
利益沖突聲明:本文全體作者均聲明不存在利益沖突。