基于语音数据实现帕金森病诊断近年来已被证明是一种有效方式。但是,目前相关研究在样本预处理和集成学习方面还考虑不足,从而造成样本对分类器误导、分类准确率和稳定性还不令人满意等问题。本文提出了一种结合样本重复剪辑算法和随机森林的帕金森病诊断新算法,并基于最新公共数据集进行了对比实验。实验结果表明,本文算法实现了对语音样本和受试者的分类诊断,针对受试者的平均分类准确率达到了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%的准确率。关于下一步研究工作,可考虑结合语音特征压缩,以期得到更好的分类效果。