基于語音數據實現帕金森病診斷近年來已被證明是一種有效方式。但是,目前相關研究在樣本預處理和集成學習方面還考慮不足,從而造成樣本對分類器誤導、分類準確率和穩定性還不令人滿意等問題。本文提出了一種結合樣本重復剪輯算法和隨機森林的帕金森病診斷新算法,并基于最新公共數據集進行了對比實驗。實驗結果表明,本文算法實現了對語音樣本和受試者的分類診斷,針對受試者的平均分類準確率達到了100%,比原數據提供者最高改善了29.44%。本文基于樣本優選實現了一種新的語音帕金森病診斷算法;與同類算法相比,具有較高的準確率和穩定性。
引用本文: 李勇明, 楊劉洋, 劉玉川, 王品, 邱明國, 謝文賓, 張小恒. 基于語音樣本重復剪輯和隨機森林的帕金森病診斷算法研究. 生物醫學工程學雜志, 2016, 33(6): 1053-1059. doi: 10.7507/1001-5515.20160169 復制
引言
帕金森病(Parkinson’s disease,PD)是常見的神經退行性疾病之一,65歲以上人群患病率為1%,而且隨著人預期壽命的延長,患者也在急劇增加,危害極大[1]。研究表明,帕金森病的早期診斷可以提高其治療效果,而其新型診斷方法基本上都是以帕金森病的典型癥狀為依據進行診斷。帕金森病臨床上常表現為靜止性震顫、運動遲緩、肌強直和姿勢步態障礙,同時也進一步影響到患者的認知,導致語言障礙和發音困難[2-3]。語言障礙是早期帕金森病的典型癥狀之一,隨著病情的加深其癥狀逐漸惡化。研究指出有超過90%的帕金森病患者出現聲帶損傷[4]。研究還表明,語音信號處理是檢測語言障礙的有效方式,通過提取語音參數并進行模式分類,可以有效鑒別是否出現語言障礙并且能夠對其進行分級[5]。因此,檢測語言障礙將有助于實現高準確性的帕金森病早期診斷。
目前基于語音的帕金森病診斷的主流研究方法是:先提取語音特征,然后采用機器學習方法對其進行分析,實現分類。這些特征類型是通過語言病理學家先驗知識獲取的,其中包括了聲帶振動的基音頻率、絕對聲壓級、峰值變化特征、諧波信噪比等。Little等[6]通過提取非線性特征來檢測語言障礙,分析患者疾病的發展階段。他們采用持續發固定元音“a”的方法對31個受試對象(其中23例患者,8例健康者)進行試驗。Sakar等[7]設計了計算機輔助的數據收集系統,通過對受試者提供的各類型發音的錄音樣本,提取相關特征參數,并且設計了試驗,分析了特征參數中對帕金森病分類起較大作用信息的特征。大部分國內外從事基于語音特征的帕金森病診斷的學者,其研究數據都來源于以上兩位學者。目前,在針對特征參數提取與壓縮的研究領域,主要方法有:主成分分析(principal component analysis,PCA)[8],啟發式特征選擇[8],窮舉法[8],基于局部學習的特征選擇法[8]等;在分類器方面有:后向傳播(back propagation,BP)神經網絡[9],貝葉斯網絡[10],最小均方誤差回歸[11],支持向量機(support vector machine,SVM)[6, 12-14],K最近鄰(k-nearest neighbor,KNN)[7],線性判別式分析(linear discriminant analysis,LDA)[15],概率性神經網絡[8]等。上述這些研究取得了一定的分類診斷效果,但普遍對訓練樣本缺乏優選,無法避免誤差嚴重的樣本對分類器的誤導。
樣本重復剪輯算法是一種對訓練樣本進行優選的有效方法,可以有效去除對分類器誤導可能性大的樣本,從而有助于提高分類器的泛化能力[16]。集成分類器具有較強的泛化能力和準確性,通過與該剪輯算法相結合,其分類準確性將有望顯著提高[17]。基于以上分析,本文提出一種結合樣本重復剪輯和隨機森林(random forest)的帕金森病診斷算法,該方法首先采用樣本重復剪輯算法對訓練樣本進行優選,然后采用隨機森林對優選的樣本進行訓練和分類,并基于最新語音數據集進行了帕金森病診斷的測試。
1 方法研究
1.1 方法總體簡述
本文算法流程簡圖見圖 1。首先,針對語音訓練樣本數據,用重復剪輯近鄰算法(multi-edit nearest neighbour algorithm,MENN)進行樣本修剪,去除噪聲大的樣本;然后將剪切后的樣本送入隨機森林進行訓練,得到一個隨機森林模型;最后用這個模型對測試樣本進行分類。

1.2 樣本重復剪輯近鄰算法
當不同類別的樣本在分布上有交疊部分時,分類中易錯分的樣本主要來自交疊區部分。剪輯近鄰算法作為一種原型選擇算法,其主要思想是:將不同類別交界處的樣本以適當方式進行篩選,可去除樣本噪聲和混合區域中分類性質不明確等影響,以獲得能夠較好地反映數據集分布以及分類特性的訓練樣本集,從而提高算法執行效率以及分類精度性能[18]。
在采用兩分剪輯近鄰法時,主要將過程分成剪輯和分類兩步。首先,將原始樣本集隨機劃分成訓練集和驗證集,剪輯只針對驗證集中的樣本,將驗證集中分類錯誤的樣本刪除。通常在樣本數足夠的情況下,為了能夠進一步剔除樣本中受到噪聲污染的異常樣本,則采用重復剪輯近鄰算法,該算法的主要流程如下:
步驟1:將原始樣本X={xi=(xi1,xi2,…,xid)|i=1,2,…,N}隨機分成s個子集,分別為X1,X2,…,Xs,其中s≥3,分別含有M1,M2,…,Ms個樣本。 d為樣本維數,N為樣本個數。
步驟2:執行剪輯過程。以Xi+1作為訓練集,采用K近鄰法對驗證集Xi中的所有樣本進行分類決策,刪除Xi中被錯誤劃分的樣本。依次進行循環,i=1,2,…,s-1,當i=s時,以X1作為訓練集。
步驟3:將步驟2中經過剪輯后留下的樣本組合成新的總樣本集Xnew。
步驟4:k=2,3,…,循環步驟1至步驟3,反復迭代剪輯,直到再沒有被錯誤劃分的樣本為止。
圖 2給出了具有不同均值和協方差矩陣的兩類正態分布的隨機樣本集,在經過重復剪輯近鄰算法前后的分布圖。可見,經過剪輯后,各類別內部和邊界噪聲樣本消失,出現了明顯的分界面。

由文獻[19]對剪輯近鄰錯誤率的分析可知,在樣本數量較大的情況下,經過重復剪輯近鄰(包括KNN和K近鄰)算法,其錯誤率接近貝葉斯錯誤率P*。對于二分類來說,經過M次剪輯樣本對原始樣本進行最近鄰分類的漸進條件誤識率為:
${{P}_{M}}\left( e/x \right)=1-\frac{\sum\limits_{i=1}^{2}{p{{({{\omega }_{i}}/x)}^{{{2}^{M+1}}}}}}{\sum\limits_{i=1}^{2}{p{{({{\omega }_{i}}/x)}^{{{2}^{M}}}}}}$ |
當M→+∞時,則$\underset{T\to \infty }{\mathop{\lim }}\,{{P}_{M}}\left( e/x \right)\text{=}\min \left[ p({{\omega }_{1}}/x),p({{\omega }_{2}}/x) \right]\text{=}{{P}^{*}}\left( e/x \right)$。
1.3 隨機森林
本文分類器選用隨機森林算法,按照以下流程進行訓練:
① 利用Bootstrap方法重采樣,隨機產生T個訓練集S1,S2,…,ST。
② 利用每個訓練集,生成對應的決策樹C1,C2,…,CT;從M個屬性中隨機抽取m個屬性作為當前節點分裂屬性集,并以這m個屬性中最好的分裂方式對該節點進行分裂。
③ 每棵樹都完整成長,而不進行剪枝。
④ 對于測試集樣本X,利用每個決策樹進行測試,得到對應的類別C1(X),C2(X),…,CT(X)。
⑤ 采用投票的方法,將T個決策樹中輸出最多的類別作為測試集樣本X所屬的類別。
2 實驗結果與分析
2.1 實驗條件
Little等[6]和Sakar等[7]各自提供了一個帕金森病語音數據集,為了全面測試本文提出的算法在帕金森病診斷上的性能,這里采用Sakar等[7]于2013年創建的較新的帕金森病數據集。選擇Sakar教授提供的數據集作為本文實驗對象的主要原因如下:① 相關研究表明,后者的數據集難度更大,前者相關研究的準確率目前已經能達到95%以上,我們對其測試結果的準確率也已達到100%。因此,基于該數據集實驗無法較好地顯示本文算法的改進效果。② 后者數據集樣本較多,這更能檢驗一個算法的統計效果,更有說服力。③ 后者建立的時間較晚。④ 基于后者數據集的研究目前較少,不充分。相關研究文獻主要見于文獻[7, 13, 15],而后面兩篇文獻只給出了基于驗證集的準確率,即最大可能準確率,沒有給出測試樣本的分類準確率,因此不作為本文算法的比較對象。
Sakar教授提供的數據集包括Training_Data和Test_Data兩個數據集。Training_Data中有40例受試者,包括20例帕金森病患者(6例女性,14例男性),20例健康者(10例女性,10例男性),每例受試者分別采集到26個語音樣本片段,每個語音片段采集到多種發音內容,包括連續元音字母發音、數字發音、單詞發音和短語句發音。然后針對每個語音樣本提取出26維的線性與非線性特征參數,構成特征向量。Test_Data中包括28例受試者,均為帕金森病患者,每個受試者分別采集6例語音片段(連續元音“a”的發音與連續元音“o”的發音各三遍),每個片段仍提取到和Training_Data相同的26維特征向量。
本文基于Training_Data中的1 040個訓練樣本(每個樣本由26維特征參數構成特征向量)進行留一法(leave-one-out,LOO)交叉驗證。另一方面,由于Training_Data中的數據來自40例受試者,針對屬于同一例受試者的樣本測試結果進行統計,如果這些結果中的大多數屬于帕金森病患者,則將該受試者判斷為帕金森病患者,反之判斷為健康者,此類驗證方法稱之為基于受試者的留一法(leave-one-subject-out,LOSO)。LOSO的目的是為了減少由于受試者的不同語音樣本之間的差異所帶來的影響,其依據是并非帕金森病患者的所有語音樣本都能夠很好地反映出語言障礙這一癥狀。為了便于算法比較,本文也采用了文獻[7]所采用的LOSO進行算法性能測試。
2.2 性能評估準則
為了驗證本文算法的有效性,我們使用分類準確率(accuracy)、靈敏度(sensitivity)、特異度(specificity)作為算法的評價標準。準確率是指判斷準確的樣本數占總樣本數的百分率;靈敏度也叫真陽性率,是指實際患病而被正確診斷者所占百分率;特異度也稱真陰性率,是指實際無病而被正確診斷為無病的百分率。具體公式如下:
$\begin{align} & 準確率=\frac{\text{TP}+\text{TN}}{\text{TP}+\text{FP}+\text{TN}+\text{FN}} \\ & 靈敏度=\frac{\text{TP}}{\text{TP}+\text{FN}} \\ & 特異度=\frac{\text{TN}}{\text{TN}+\text{FP}} \\ \end{align}$ |
其中TP為真陽性例數,TN為真陰性例數,FP為假陽性例數,FN為假陰性例數。
2.3 語音樣本優選效果與分析
根據2.1節對數據的描述,本文訓練數據集共有20名患者和20名健康者,每個受試者26個語音樣本,共1 040個語音樣本。采用LOO方式進行測試時,訓練樣本為1 039個。表 1為某一次實驗中采用本文語音樣本重復剪輯近鄰算法優選樣本數的效果對比。

從表 1可以看出,經過優選后,總訓練樣本數減少了308個,健康者訓練樣本數減少了155個,患者訓練樣本數減少了153個。經過優選后,總受試者、健康者、患者人數均不發生變化。優化后的數目完全可以滿足后續機器學習所需的樣本數。
表 2和表 3分別顯示了針對訓練集Training_Data和測試集Test_Data樣本,采用樣本重復剪輯近鄰算法對訓練樣本優選前后隨機森林的分類結果對比。表 2為針對訓練數據集采用LOO和LOSO兩種方式進行測試。表 3為針對測試數據集,基于樣本和受試者分別統計的平均測試準確率。

根據平均測試準確率、敏感度和特異度可見,采用了樣本重復剪輯近鄰算法對訓練樣本進行篩選后,第一種方式下,平均準確率提高了3.54%,平均敏感度提高了1.65%,平均特異度提高了6.10%;第二種方式下,平均準確率提高了3.25%,平均敏感度提高了7.00%,平均特異度降低了1.00%。
由于測試數據集(Test_Data)中語音樣本均來自帕金森病患者,無健康者,因此直接作為測試樣本進行測試。根據表 3中樣本的分類準確率可以看出,采用了樣本重復剪輯近鄰算法對訓練樣本進行篩選后,平均準確率提高了43.03%;根據受試者的分類準確率可以看出,采用了樣本重復剪輯近鄰算法對訓練樣本進行篩選后,平均準確率提高了45.72%。

此外,由于重復剪輯的次數對后續的分類結果有直接影響。次數過小,重復剪輯不充分,一些奇異樣本還會被保留,對分類器造成不應有的誤導;次數過大,時間代價較大,且容易造成過擬合。經過統計實驗發現,次數在15次左右時對本文數據較為合適,且分類準確率最高。再針對多組樣本進行反復測試發現,次數為15次時的分類準確率較高且較穩定。因此,本文算法所獲得的分類準確率(表 1~7)均設置次數為15。




2.4 本文算法分類結果與分析
本文采用了樣本剪輯算法結合隨機森林進行分類實驗,并用SVM算法和數據原作者算法[7]進行了比較。SVM使用的是libsvm工具箱,核函數分別使用了線性核函數(linear kernel)以及徑向基(radial basis function,RBF)核函數。表 4為基于Training_Data樣本集的分類結果。表 5為基于Test_Data樣本集的分類結果。
本文算法分別基于LOO和LOSO,進行十次實驗的結果統計如表 4、5所示。從表 4中,我們發現以下現象:① 我們觀察到使用LOSO的結果均要好于LOO的結果,LOSO有效地克服了不同語音樣本間存在的差異,減少了一定的分類誤差。② 樣本篩選作用比較明顯,基于樣本篩選后的隨機森林分類準確率均顯著高于SVM和文獻[7]的分類準確率。特別是本文算法針對Training_Data樣本集,在LOSO下的最高準確率與平均準確率都有不錯的結果,文獻[7]中在LOSO情況下的較好的實驗結果,也明顯低于本文算法。另外,本文算法的敏感度和特異度均遠遠高于文獻[7]的結果。由表 5可以發現,在針對樣本時,本文算法測試均值接近100%,十次測試最佳準確率達到100%。特別在針對受試者時,本文算法的分類準確率達到了100%,比文獻[7]中的結果提高了25%,效果十分顯著。因此,在經過剪輯近鄰算法對樣本處理后,再結合集成隨機森林進行分類識別,能夠有效提高帕金森病的早期診斷準確率。此外,本文算法具有較高的敏感度,這有利于降低患者漏檢概率,符合醫療診斷的臨床要求。
2.5 分類平穩性比較分析
為了比較本文算法的平穩性,分別統計了本文算法與SVM(線性核函數)、SVM(徑向基核函數),在Training_Data樣本集及Test_Data樣本集下,針對語音樣本的十次分類結果,分別如圖 3、4所示。


圖 3給出了基于Training_Data的十次實驗結果,整體上可以發現,本文算法的分類準確率明顯優于SVM,但是結果波形有一定的幅度變化,這可能是因為對于不同次實驗,樣本重復剪輯所得到的訓練樣本不盡相同,因此建模有所差別。根據Training_Data樣本集建立模型,并針對Test_Data樣本進行了十次測試,統計分類結果見圖 4。本文算法的分類準確率接近100%,明顯優于文獻[7]的SVM,這是由于本文通過樣本重復剪輯優選了樣本,并且隨機森林具有較好的泛化能力,因而本文提出的算法能夠取得較好的分類效果,且結果也相對平穩。
2.6 分類算法的顯著性差異分析
為了表明本文算法與被比較的SVM算法的差異,本文計算了不同算法各十次分類結果間的P值。基于兩個數據集的結果分別見于表 6和7。
由表 6結果可見,本文算法與兩種核函數SVM分類結果的差異具有統計學意義,由于文獻[7]的方法也是基于這兩種核函數SVM,因此可以認為,基于Training_Data樣本集,本文算法顯著優于文獻[7]的方法。
表 7進一步驗證了表 6的主要結論。此外,可以發現,對于Test_Data數據集來說,經過樣本篩選的隨機森林與兩種核函數的SVM的結果有明顯的差異。由于文獻[7]的方法也是基于含這兩種核函數的SVM,因此可以認為,基于Test_Data樣本集,本文算法也顯著優于文獻[7]的方法。
3 結論
基于語音數據實現帕金森病診斷近年來已被證明是一種有效方式。目前相關研究雖然取得了令人鼓舞的成果,但也存在一些問題急需解決,如樣本優選缺乏考慮等問題。本文通過樣本重復剪輯算法實現了語音樣本的優選;通過引入隨機森林實現了對樣本的集成學習。兩者結合實現了較好的分類準確性。本文實驗基于目前最新的語音數據集,進行了分類比較。實驗結果表明,本文提出的算法對兩個樣本集均取得了明顯的改進效果,尤其是對于獨立測試集Test_Data取得了100%的準確率。關于下一步研究工作,可考慮結合語音特征壓縮,以期得到更好的分類效果。
引言
帕金森病(Parkinson’s disease,PD)是常見的神經退行性疾病之一,65歲以上人群患病率為1%,而且隨著人預期壽命的延長,患者也在急劇增加,危害極大[1]。研究表明,帕金森病的早期診斷可以提高其治療效果,而其新型診斷方法基本上都是以帕金森病的典型癥狀為依據進行診斷。帕金森病臨床上常表現為靜止性震顫、運動遲緩、肌強直和姿勢步態障礙,同時也進一步影響到患者的認知,導致語言障礙和發音困難[2-3]。語言障礙是早期帕金森病的典型癥狀之一,隨著病情的加深其癥狀逐漸惡化。研究指出有超過90%的帕金森病患者出現聲帶損傷[4]。研究還表明,語音信號處理是檢測語言障礙的有效方式,通過提取語音參數并進行模式分類,可以有效鑒別是否出現語言障礙并且能夠對其進行分級[5]。因此,檢測語言障礙將有助于實現高準確性的帕金森病早期診斷。
目前基于語音的帕金森病診斷的主流研究方法是:先提取語音特征,然后采用機器學習方法對其進行分析,實現分類。這些特征類型是通過語言病理學家先驗知識獲取的,其中包括了聲帶振動的基音頻率、絕對聲壓級、峰值變化特征、諧波信噪比等。Little等[6]通過提取非線性特征來檢測語言障礙,分析患者疾病的發展階段。他們采用持續發固定元音“a”的方法對31個受試對象(其中23例患者,8例健康者)進行試驗。Sakar等[7]設計了計算機輔助的數據收集系統,通過對受試者提供的各類型發音的錄音樣本,提取相關特征參數,并且設計了試驗,分析了特征參數中對帕金森病分類起較大作用信息的特征。大部分國內外從事基于語音特征的帕金森病診斷的學者,其研究數據都來源于以上兩位學者。目前,在針對特征參數提取與壓縮的研究領域,主要方法有:主成分分析(principal component analysis,PCA)[8],啟發式特征選擇[8],窮舉法[8],基于局部學習的特征選擇法[8]等;在分類器方面有:后向傳播(back propagation,BP)神經網絡[9],貝葉斯網絡[10],最小均方誤差回歸[11],支持向量機(support vector machine,SVM)[6, 12-14],K最近鄰(k-nearest neighbor,KNN)[7],線性判別式分析(linear discriminant analysis,LDA)[15],概率性神經網絡[8]等。上述這些研究取得了一定的分類診斷效果,但普遍對訓練樣本缺乏優選,無法避免誤差嚴重的樣本對分類器的誤導。
樣本重復剪輯算法是一種對訓練樣本進行優選的有效方法,可以有效去除對分類器誤導可能性大的樣本,從而有助于提高分類器的泛化能力[16]。集成分類器具有較強的泛化能力和準確性,通過與該剪輯算法相結合,其分類準確性將有望顯著提高[17]。基于以上分析,本文提出一種結合樣本重復剪輯和隨機森林(random forest)的帕金森病診斷算法,該方法首先采用樣本重復剪輯算法對訓練樣本進行優選,然后采用隨機森林對優選的樣本進行訓練和分類,并基于最新語音數據集進行了帕金森病診斷的測試。
1 方法研究
1.1 方法總體簡述
本文算法流程簡圖見圖 1。首先,針對語音訓練樣本數據,用重復剪輯近鄰算法(multi-edit nearest neighbour algorithm,MENN)進行樣本修剪,去除噪聲大的樣本;然后將剪切后的樣本送入隨機森林進行訓練,得到一個隨機森林模型;最后用這個模型對測試樣本進行分類。

1.2 樣本重復剪輯近鄰算法
當不同類別的樣本在分布上有交疊部分時,分類中易錯分的樣本主要來自交疊區部分。剪輯近鄰算法作為一種原型選擇算法,其主要思想是:將不同類別交界處的樣本以適當方式進行篩選,可去除樣本噪聲和混合區域中分類性質不明確等影響,以獲得能夠較好地反映數據集分布以及分類特性的訓練樣本集,從而提高算法執行效率以及分類精度性能[18]。
在采用兩分剪輯近鄰法時,主要將過程分成剪輯和分類兩步。首先,將原始樣本集隨機劃分成訓練集和驗證集,剪輯只針對驗證集中的樣本,將驗證集中分類錯誤的樣本刪除。通常在樣本數足夠的情況下,為了能夠進一步剔除樣本中受到噪聲污染的異常樣本,則采用重復剪輯近鄰算法,該算法的主要流程如下:
步驟1:將原始樣本X={xi=(xi1,xi2,…,xid)|i=1,2,…,N}隨機分成s個子集,分別為X1,X2,…,Xs,其中s≥3,分別含有M1,M2,…,Ms個樣本。 d為樣本維數,N為樣本個數。
步驟2:執行剪輯過程。以Xi+1作為訓練集,采用K近鄰法對驗證集Xi中的所有樣本進行分類決策,刪除Xi中被錯誤劃分的樣本。依次進行循環,i=1,2,…,s-1,當i=s時,以X1作為訓練集。
步驟3:將步驟2中經過剪輯后留下的樣本組合成新的總樣本集Xnew。
步驟4:k=2,3,…,循環步驟1至步驟3,反復迭代剪輯,直到再沒有被錯誤劃分的樣本為止。
圖 2給出了具有不同均值和協方差矩陣的兩類正態分布的隨機樣本集,在經過重復剪輯近鄰算法前后的分布圖。可見,經過剪輯后,各類別內部和邊界噪聲樣本消失,出現了明顯的分界面。

由文獻[19]對剪輯近鄰錯誤率的分析可知,在樣本數量較大的情況下,經過重復剪輯近鄰(包括KNN和K近鄰)算法,其錯誤率接近貝葉斯錯誤率P*。對于二分類來說,經過M次剪輯樣本對原始樣本進行最近鄰分類的漸進條件誤識率為:
${{P}_{M}}\left( e/x \right)=1-\frac{\sum\limits_{i=1}^{2}{p{{({{\omega }_{i}}/x)}^{{{2}^{M+1}}}}}}{\sum\limits_{i=1}^{2}{p{{({{\omega }_{i}}/x)}^{{{2}^{M}}}}}}$ |
當M→+∞時,則$\underset{T\to \infty }{\mathop{\lim }}\,{{P}_{M}}\left( e/x \right)\text{=}\min \left[ p({{\omega }_{1}}/x),p({{\omega }_{2}}/x) \right]\text{=}{{P}^{*}}\left( e/x \right)$。
1.3 隨機森林
本文分類器選用隨機森林算法,按照以下流程進行訓練:
① 利用Bootstrap方法重采樣,隨機產生T個訓練集S1,S2,…,ST。
② 利用每個訓練集,生成對應的決策樹C1,C2,…,CT;從M個屬性中隨機抽取m個屬性作為當前節點分裂屬性集,并以這m個屬性中最好的分裂方式對該節點進行分裂。
③ 每棵樹都完整成長,而不進行剪枝。
④ 對于測試集樣本X,利用每個決策樹進行測試,得到對應的類別C1(X),C2(X),…,CT(X)。
⑤ 采用投票的方法,將T個決策樹中輸出最多的類別作為測試集樣本X所屬的類別。
2 實驗結果與分析
2.1 實驗條件
Little等[6]和Sakar等[7]各自提供了一個帕金森病語音數據集,為了全面測試本文提出的算法在帕金森病診斷上的性能,這里采用Sakar等[7]于2013年創建的較新的帕金森病數據集。選擇Sakar教授提供的數據集作為本文實驗對象的主要原因如下:① 相關研究表明,后者的數據集難度更大,前者相關研究的準確率目前已經能達到95%以上,我們對其測試結果的準確率也已達到100%。因此,基于該數據集實驗無法較好地顯示本文算法的改進效果。② 后者數據集樣本較多,這更能檢驗一個算法的統計效果,更有說服力。③ 后者建立的時間較晚。④ 基于后者數據集的研究目前較少,不充分。相關研究文獻主要見于文獻[7, 13, 15],而后面兩篇文獻只給出了基于驗證集的準確率,即最大可能準確率,沒有給出測試樣本的分類準確率,因此不作為本文算法的比較對象。
Sakar教授提供的數據集包括Training_Data和Test_Data兩個數據集。Training_Data中有40例受試者,包括20例帕金森病患者(6例女性,14例男性),20例健康者(10例女性,10例男性),每例受試者分別采集到26個語音樣本片段,每個語音片段采集到多種發音內容,包括連續元音字母發音、數字發音、單詞發音和短語句發音。然后針對每個語音樣本提取出26維的線性與非線性特征參數,構成特征向量。Test_Data中包括28例受試者,均為帕金森病患者,每個受試者分別采集6例語音片段(連續元音“a”的發音與連續元音“o”的發音各三遍),每個片段仍提取到和Training_Data相同的26維特征向量。
本文基于Training_Data中的1 040個訓練樣本(每個樣本由26維特征參數構成特征向量)進行留一法(leave-one-out,LOO)交叉驗證。另一方面,由于Training_Data中的數據來自40例受試者,針對屬于同一例受試者的樣本測試結果進行統計,如果這些結果中的大多數屬于帕金森病患者,則將該受試者判斷為帕金森病患者,反之判斷為健康者,此類驗證方法稱之為基于受試者的留一法(leave-one-subject-out,LOSO)。LOSO的目的是為了減少由于受試者的不同語音樣本之間的差異所帶來的影響,其依據是并非帕金森病患者的所有語音樣本都能夠很好地反映出語言障礙這一癥狀。為了便于算法比較,本文也采用了文獻[7]所采用的LOSO進行算法性能測試。
2.2 性能評估準則
為了驗證本文算法的有效性,我們使用分類準確率(accuracy)、靈敏度(sensitivity)、特異度(specificity)作為算法的評價標準。準確率是指判斷準確的樣本數占總樣本數的百分率;靈敏度也叫真陽性率,是指實際患病而被正確診斷者所占百分率;特異度也稱真陰性率,是指實際無病而被正確診斷為無病的百分率。具體公式如下:
$\begin{align} & 準確率=\frac{\text{TP}+\text{TN}}{\text{TP}+\text{FP}+\text{TN}+\text{FN}} \\ & 靈敏度=\frac{\text{TP}}{\text{TP}+\text{FN}} \\ & 特異度=\frac{\text{TN}}{\text{TN}+\text{FP}} \\ \end{align}$ |
其中TP為真陽性例數,TN為真陰性例數,FP為假陽性例數,FN為假陰性例數。
2.3 語音樣本優選效果與分析
根據2.1節對數據的描述,本文訓練數據集共有20名患者和20名健康者,每個受試者26個語音樣本,共1 040個語音樣本。采用LOO方式進行測試時,訓練樣本為1 039個。表 1為某一次實驗中采用本文語音樣本重復剪輯近鄰算法優選樣本數的效果對比。

從表 1可以看出,經過優選后,總訓練樣本數減少了308個,健康者訓練樣本數減少了155個,患者訓練樣本數減少了153個。經過優選后,總受試者、健康者、患者人數均不發生變化。優化后的數目完全可以滿足后續機器學習所需的樣本數。
表 2和表 3分別顯示了針對訓練集Training_Data和測試集Test_Data樣本,采用樣本重復剪輯近鄰算法對訓練樣本優選前后隨機森林的分類結果對比。表 2為針對訓練數據集采用LOO和LOSO兩種方式進行測試。表 3為針對測試數據集,基于樣本和受試者分別統計的平均測試準確率。

根據平均測試準確率、敏感度和特異度可見,采用了樣本重復剪輯近鄰算法對訓練樣本進行篩選后,第一種方式下,平均準確率提高了3.54%,平均敏感度提高了1.65%,平均特異度提高了6.10%;第二種方式下,平均準確率提高了3.25%,平均敏感度提高了7.00%,平均特異度降低了1.00%。
由于測試數據集(Test_Data)中語音樣本均來自帕金森病患者,無健康者,因此直接作為測試樣本進行測試。根據表 3中樣本的分類準確率可以看出,采用了樣本重復剪輯近鄰算法對訓練樣本進行篩選后,平均準確率提高了43.03%;根據受試者的分類準確率可以看出,采用了樣本重復剪輯近鄰算法對訓練樣本進行篩選后,平均準確率提高了45.72%。

此外,由于重復剪輯的次數對后續的分類結果有直接影響。次數過小,重復剪輯不充分,一些奇異樣本還會被保留,對分類器造成不應有的誤導;次數過大,時間代價較大,且容易造成過擬合。經過統計實驗發現,次數在15次左右時對本文數據較為合適,且分類準確率最高。再針對多組樣本進行反復測試發現,次數為15次時的分類準確率較高且較穩定。因此,本文算法所獲得的分類準確率(表 1~7)均設置次數為15。




2.4 本文算法分類結果與分析
本文采用了樣本剪輯算法結合隨機森林進行分類實驗,并用SVM算法和數據原作者算法[7]進行了比較。SVM使用的是libsvm工具箱,核函數分別使用了線性核函數(linear kernel)以及徑向基(radial basis function,RBF)核函數。表 4為基于Training_Data樣本集的分類結果。表 5為基于Test_Data樣本集的分類結果。
本文算法分別基于LOO和LOSO,進行十次實驗的結果統計如表 4、5所示。從表 4中,我們發現以下現象:① 我們觀察到使用LOSO的結果均要好于LOO的結果,LOSO有效地克服了不同語音樣本間存在的差異,減少了一定的分類誤差。② 樣本篩選作用比較明顯,基于樣本篩選后的隨機森林分類準確率均顯著高于SVM和文獻[7]的分類準確率。特別是本文算法針對Training_Data樣本集,在LOSO下的最高準確率與平均準確率都有不錯的結果,文獻[7]中在LOSO情況下的較好的實驗結果,也明顯低于本文算法。另外,本文算法的敏感度和特異度均遠遠高于文獻[7]的結果。由表 5可以發現,在針對樣本時,本文算法測試均值接近100%,十次測試最佳準確率達到100%。特別在針對受試者時,本文算法的分類準確率達到了100%,比文獻[7]中的結果提高了25%,效果十分顯著。因此,在經過剪輯近鄰算法對樣本處理后,再結合集成隨機森林進行分類識別,能夠有效提高帕金森病的早期診斷準確率。此外,本文算法具有較高的敏感度,這有利于降低患者漏檢概率,符合醫療診斷的臨床要求。
2.5 分類平穩性比較分析
為了比較本文算法的平穩性,分別統計了本文算法與SVM(線性核函數)、SVM(徑向基核函數),在Training_Data樣本集及Test_Data樣本集下,針對語音樣本的十次分類結果,分別如圖 3、4所示。


圖 3給出了基于Training_Data的十次實驗結果,整體上可以發現,本文算法的分類準確率明顯優于SVM,但是結果波形有一定的幅度變化,這可能是因為對于不同次實驗,樣本重復剪輯所得到的訓練樣本不盡相同,因此建模有所差別。根據Training_Data樣本集建立模型,并針對Test_Data樣本進行了十次測試,統計分類結果見圖 4。本文算法的分類準確率接近100%,明顯優于文獻[7]的SVM,這是由于本文通過樣本重復剪輯優選了樣本,并且隨機森林具有較好的泛化能力,因而本文提出的算法能夠取得較好的分類效果,且結果也相對平穩。
2.6 分類算法的顯著性差異分析
為了表明本文算法與被比較的SVM算法的差異,本文計算了不同算法各十次分類結果間的P值。基于兩個數據集的結果分別見于表 6和7。
由表 6結果可見,本文算法與兩種核函數SVM分類結果的差異具有統計學意義,由于文獻[7]的方法也是基于這兩種核函數SVM,因此可以認為,基于Training_Data樣本集,本文算法顯著優于文獻[7]的方法。
表 7進一步驗證了表 6的主要結論。此外,可以發現,對于Test_Data數據集來說,經過樣本篩選的隨機森林與兩種核函數的SVM的結果有明顯的差異。由于文獻[7]的方法也是基于含這兩種核函數的SVM,因此可以認為,基于Test_Data樣本集,本文算法也顯著優于文獻[7]的方法。
3 結論
基于語音數據實現帕金森病診斷近年來已被證明是一種有效方式。目前相關研究雖然取得了令人鼓舞的成果,但也存在一些問題急需解決,如樣本優選缺乏考慮等問題。本文通過樣本重復剪輯算法實現了語音樣本的優選;通過引入隨機森林實現了對樣本的集成學習。兩者結合實現了較好的分類準確性。本文實驗基于目前最新的語音數據集,進行了分類比較。實驗結果表明,本文提出的算法對兩個樣本集均取得了明顯的改進效果,尤其是對于獨立測試集Test_Data取得了100%的準確率。關于下一步研究工作,可考慮結合語音特征壓縮,以期得到更好的分類效果。