王文剑,刘峰,郁磊,任璐,关博,李阳
(1.山西大学 计算机与信息技术学院,山西 太原 030006;2.山西大学 计算智能与中文信息处理教育部重点实验室,山西 太原 030006;3.山西大学 复杂系统研究所,山西 太原 030006;4.山西大学 疾病防控的数学技术与大数据分析山西省重点实验室,山西 太原 030006;5.山西医科大学 第一临床医学院,山西 太原 030001;6.山西医科大学 第一医院神经内科,山西 太原 030001)
帕金森病(Parkinson’s disease,PD)又称为震颤麻痹,是一种影响患者活动能力的中枢神经系统[1]慢性疾病。随着社会老龄化,PD的发病率及致残率[2]均呈现增高的趋势。PD的主要症状是以运动障碍[3-4]为特征,如运动迟缓[5]、僵硬[6]、步态冻结[7-8]和震颤[9]等。震颤被定义为身体部分不自主的节律性振动,而手部[10]是患者震颤最明显的地方,对手部灵活性进行评估也是早期发现症状最简单可行的途径。准确评估PD患者的手部灵活性可以帮助临床医生制定适当的治疗处方,以减轻震颤的症状。目前对于PD患者的评估主要采用的是统一帕金森病评定量表(Unified Parkinson's Disease Rating Scale,UPDRS)[11-12],医生根据患者完成量表规定动作的表现给出0-4级的评分,评分越高,症状越严重[13],根据评分结果有针对性地给患者制定康复计划。但是基于UPDRS 的评估[14]存在以下局限:(1)医生用于诊断患者的交流时间长[15];(2)评分主要依赖患者的主观描述和医生的肉眼观察,有可能出现因主观性导致的偏差。
随着可穿戴设备的发展[16],国内外研究者将电磁运动跟踪器、肌电图[17]、触摸传感器等应用于PD的辅助诊断,但是这些设备使用价格昂贵[18],操作不方便[19],使用不普遍。因此,利用使用价格低、微型化、低功耗、操作简单的可穿戴设备辅助医生进行患者手部灵活性诊断具有重要的现实意义。本文利用自行设计开发的带有三轴加速度计[20]的可穿戴式传感器采集患者做食指拇指拍打动作的手部数据,通过数据处理和分析建立基于机器学习模型的PD患者手部灵活性定量评估模型,以辅助医生对患者的手部灵活性进行评分。
本文使用的可穿戴设备带有两个小型传感器,采样率为148 Hz,尺寸为27 mm×37 mm×13 mm,通过蓝牙将数据实时传送到笔记本电脑上。实验前,工作人员按照UPDRS量表上所设计的食指拇指拍打动作将可穿戴设备固定在受试者拇指和食指的中间指骨上,其中,1号传感器佩戴于拇指,2号传感器佩戴于食指,实验过程如图1所示。
图1 采集数据的实验过程Fig.1 Experimental process of collecting data
通过可穿戴设备采集的信号可能存在噪声问题,因此本文首先对采集的数据进行滤波,然后通过三种机器学习模型对滤波后的数据进行评分分类。
对于采集的信号
其中i为样本个数,xi为带有6维特征的样本,yi为xi对应的标签,采用以下方法进行滤波:
式中X(z)和Y(z)表示滤波器输入信号X(n)的z变换和输出信号Y(n)的z变换;bk和ak表示输入项与输出项的加权系数;M和N表示输入项与输出项的阶数。根据逆z变换,可以得到滤波器的时域差分方程为:
假设滤波后的数据的初始速度V0=0,根据
可得每一时刻传感器在不同维度上的速度,再根据
可得每一时刻传感器在不同维度上的振幅,其中t为采样的时间。
采集到的信号经过滤波之后变为离散数据,对于样本的标签yi∈ {0,1,2,3,4}其本质上就是多分类问题。目前关于多分类问题已经有很多机器学习模型,支持向量机(Support Vector Machine,SVM)是最基础、应用最广的分类器,K最近邻分类算法(K-Nearest Neighbor,KNN)适用于多分类问题,决策树(Decision Tree,DT)理论成熟且易转化为分类规则,因此本文主要选择上述三种机器学习模型对患者的手部灵活性进行评估。
2.2.1 SVM模型
SVM是定义在特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化。对于线性不可分情况,SVM通过核函数将低维输入空间线性不可分的样本转化为高维特征空间使其线性可分。其分类思想简单、分类效果较好,在解决小样本中表现出许多特有的优势。
2.2.2 KNN模型
KNN算法是机器学习中的一个经典的距离分类器算法,每个样本类别的判断由距离最近的k个样本投票来决定。KNN算法自身操作简单,有效,理论成熟,适合于多分类问题。
2.2.3 DT模型
DT模型是一种描述对实例进行分类的树形结构,由结点和有向边组成,结点有两种类型:内部结点和叶结点,内部结点表示一个特征或属性,叶结点表示一个类。DT模型计算量相对较小,易于理解和实现,容易转化成分类规则。
实验环境配置为 Intel(R)Core(TM)i7-7700 3.60 GHz处理器,windows 10操作系统,内存为16.0 GB,Python 3.7版本以及PyCharm 2019。
患者被要求抬高他们的肘部,以确保手臂没有支撑点,然后以尽可能快的速度做食指、拇指拍打动作,采集数据的时长为30 s。休息1 min后,另一只手重复食指拇指拍打动作。因为可穿戴设备足够轻,几乎不会干扰手指的运动。数据的标签由两名专业的神经内科医生共同评分所得,确保标签的可靠性与一致性。本实验采集到包含四个等级的帕金森病患者共98条数据,数据的分布如图2所示(0-3表示从正常到严重),其中特别严重的患者(评分为4)本实验并未采集到。随机选取其中的50条作为训练集数据,20条作为验证集数据,28条作为测试集数据。为减少随机性,本文采用十折交叉验证结果的均值作为最终的结果。
图2 UPDRS评估的数据分布(n=98)Fig.2 Distribution of data for UPDRS assessment(n=98)
本文采用准确度(Accuracy)、召回率(Recall)、F1值(F1_score)和均方误差(MSE)四个指标对模型进行评估,其定义如下:
其中precision=TP/(TP+FP),TP(True Positive)表示真实值为正的样本,预测值也为正的样本;FP(False Positive)表示真实值为负的样本,预测值却为正的样本;TN(True Negative)表示真实值为负的样本,预测值也为负的样本;FN(False Negative)表示真实值为正的样本,预测值却为负的样本。表示第i个样本的预测值,yi表示第i个样本的真实值,n表示样本个数。
3.2.1 滤波后的结果
对PD患者的双手分别连续进行30 s采样,每次采样包含拇指传感器的X/Y/Z轴加速度数据和食指传感器的X/Y/Z轴加速度数据。其中几个采样点如表1所示(拇指传感器为1号,食指传感器为2号)。滤波后的数据格式如表2所示,可以看出滤波后的数据平均分布位于0附近。图3为其中一位患者的左手传感器的原始数据滤波前后的时域图。从图中可以看出滤波前的时域图特征并不明显,而在滤波后的时域图中可以清晰地看到在11 s以及23 s左右(用方框标识的位置)各个轴的加速度明显大于其他时间点的加速度。相对于1s~11s、23 s~30 s的数据,11 s~23 s的数据整体特征比较明显。
表1 采样数据格式Table 1 The format of the data sampled
表2 滤波后的数据格式Table 2 Format of filtered data
图3 原始数据滤波前后的时域图Fig.3 Time domain diagram before and after original data filtering
3.2.2 模型参数对模型的影响
利用SVM,KNN和DT构建帕金森病患者手部灵活性定量评估模型,模型的性能与参数的选择有很大的关系,然而在机器学习中对于模型参数的选择并没有统一的规则,因此本实验选取部分参数进行实验对比,选取的参数对于模型性能的影响如表3所示。从表3中可以看出在SVM模型上效果较好的一组参数为:Kernel=‘linear’,penalty=‘l2’,C=1.0;KNN模型上效果较好的一组参数为:Weights=‘uniform’,n_neighbors=3;DT模型上效果较好的一组参数为:Criterion=‘gini’,splitter=‘best’。本文后续实验将采用这些参数。
表3 不同参数下模型的性能Table 3 The performance of models with different parameters
3.2.3 传感器不同维度对模型性能的影响
表4-表6分别表示使用拇指和食指加速度传感器不同维度数据所提取的特征作为SVM,KNN以及DT模型的输入时,模型的性能情况。从表4可以看出对于SVM模型:
表4 两个传感器的不同维度对SVM模型的影响Table 4 The influence of different dimensions of two sensors on the SVM model
表5 两个传感器的不同维度对KNN模型的影响Table 5 The influence of different dimensions of two sensors on the KNN model
表6 两个传感器的不同维度对DT模型的影响Table 6 Influence of different dimensions of two sensors on the DT model
(1)当使用拇指处传感器的数据作为输入时,其X1维度所提取的特征表现最好,准确率可以达到57.9%,召回率为65.0%,F1值为58.4%,均方误差为0.579;而(Y1+Z1)维度所提取的特征表现的最差,准确率为36.8%,召回率为29.2%,F1值为28.0%,均方误差为1.105。
(2)当使用食指处传感器的数据作为输入时,其(X2+Y2+Z2)维度所提取的特征表现的最好,准确率可以达到68.4%,召回率为75.0%,F1值为75.0%,均方误差为0.474;Z2维度提取的特征表现的最差,准确率为47.4%,召回率为25.0%,F1值为47.2%,均方误差为0.526。
(3)当使用拇指和食指传感器的所有维度所提取的特征作为输入时,其准确率、F1值以及均方误差均表现的最好,虽然召回率并不是最高,但是其位于第二,综合四个评价指标所得使用拇指和食指所有维度所提取的特征作为SVM模型的输入时,其性能比只使用单个手指传感器的性能好,准确率可以达到73.7%,召回率为65.0%,F1值为69.6%,均方误差为0.368。
从表5和表6可以看出传感器不同维度数据所提取的特征对于KNN以及DT模型性能的影响与SVM模型的结论相似。
3.2.4 不同时间段数据对模型性能的影响
时长为30 s的样本数据可能存在某些数据误差大从而导致模型的性能较差,因此,本文利用滑动窗口技术对数据分段,比较不同时间段数据对模型性能的影响。
设置滑动窗口的大小为1 s~30 s,图4表示不同大小的滑动窗口所提取的特征作为模型的输入时,模型的准确率情况。从图中可以看出:
图4 不同时长的数据对模型的影响Fig.4 Effect of different length of data on the models
(1)随着滑动窗口的大小逐渐增加,SVM模型的准确率先提高后降低;KNN模型的准确率变化相对较小,在60%上下波动;而DT模型在滑动窗口的大小为1 s~20 s之间时,其准确率变化相对较小,在62%上下波动,当滑动窗口继续增加时,其准确率呈现下降的趋势。
(2)表现最好的是SVM模型,在滑动窗口的大小为5 s~25 s时,其准确率高于其他两个模型,而相对于DT模型,准确率变化相对较小。
(3)三种模型在滑动窗口大小为10 s的时候,准确率都是最高的。因此本实验将数据分为0 s~10 s,10s~20 s,20 s~30 s三段,分别比较三段数据在三种模型上的性能情况,如表7所示。可以看出将10 s~20 s的数据所提取的特征作为模型的输入时,其在三种模型上都比其他两段数据表现得好,在SVM模型上准确率达到最高为84.2%,其次是KNN模型,准确率为79.5%,最后为DT模型,准确率为78.9%。
表7 不同时间段的数据在模型上的评估Table 7 Data from different time periods are evaluated on the models
实验结果与实际情况相符合,不难想象,患者做食指拇指拍打动作时,一开始10 s内由于受到主观影响未能反映患者的真实情况,在最后10 s内由于肌肉疲劳等因素导致采集的数据误差很大,而中间10 s的数据相对来说能够真实反映患者的情况。
本文提出的基于机器学习模型的帕金森病患者手部灵活性定量评估方法通过便携式的设备短时间采集数据并滤波,然后用SVM、KNN和DT三种机器学习模型评估患者的手部灵活性,得到的结果与医生评估一致,减少了评估过程中的主观性并提高了准确度。相较于肌电图、触摸传感器等辅助诊断方法,本文所提方法的精度提高了0.2%左右。
本文在小样本数据集上得到较好的结果,未来需要在大量临床实验中验证。