APP下载

基于XGBoost-RFE-CBR的心电信号情绪识别研究

2023-06-01杨琳坤何培宇方安成

成都信息工程大学学报 2023年3期
关键词:电信号受试者准确率

杨琳坤, 何培宇, 潘 帆, 方安成

(四川大学电子信息学院,四川 成都 610065)

0 引言

情绪是人类思想、情感和行为的结合,是对不同外部刺激的生理反应[1]。近年来,情绪识别引起了广泛关注。为此,提出了许多研究方法以准确识别人类情绪,这些研究方法主要可以分为两大类:第一类基于非生理数据的方法,利用语言和面部表情等[2-5]数据判断情绪。这类方法的优点是数据很容易收集,不需要任何专门和昂贵的设备。但是非生理信号可以被主观意愿控制[6],这意味着受试者可以掩盖自己的情绪,并在分类中造成无法检测和消除的不确定性。第二类依据生理数据, 如脑电图(electroencephalogram,EEG)[7-8]、肌电图(electromyogram, EMG)[9-10]、心电图(electrocardiogram,ECG)[11-12]、皮肤电反应(galvanic skin response, GSR)[13-14]等无法人为干预的生理信号作为依据进行情绪判断。这类方法可以更好地与实际情绪状态相关联,但实验的设置较为困难。例如,采集脑电图生理信号需要受试者处于防止外界交流电噪声干扰的屏蔽室,并且对受试者有一定的要求,同时其信号中固有的噪声也会阻碍可靠的情绪识别。两种方法相比之下,第二类方法具有更高的准确性和客观性,并且不限制使用人群。因此,基于生理信号的情绪识别法具有更高的研究价值和实用价值。Kim 等[15]提出了用于识别情绪的基于卷积长短期记忆的深层生理影响网络,在DEAP 数据集上检测,准确率相较于DEAP 实验结果提升了15.96%;陈沙利等[16]融合脉搏波、皮肤电反应、呼吸、皮肤温度等多种信号的特征,通过基于支持向量机的可减少相关性偏差的递归消除特征排序算法进行情绪分类,平均准确率达到76.9%;Pan L 等[17]提出了一种基于支持向量机、决策树和极端学习机融合的综合模型,在DEAP 数据集上对4 种生理信号进行情绪分类的准确率达到74.64%;CHAO H 等[18]将改进的深度信念网络与神经胶质链和条件随机场集成在一起,提取多通道脑电信号的高阶特征序列,通过KNN(K-Nearest Neighbor)进行分类,在AMIGOS 和DEAP 数据集上得到76.10%和75.46%的平均精确率;Santamaria-Granados 等[19]使用深度卷积神经网络,利用AMIGOS 数据集的心电信号和皮肤电信号进行情绪分类,在arousal 和valence 二维空间分类得到76%和73%的平均准确率。

目前,大量的研究都是使用经过处理后的多维生理信号进行分类,但脑电信号、肌电信号、皮肤电反应信号与心电信号相比采集设备要求更高、数据更易受干扰。根据心电信号得到的心率变异性(heart rate variability,HRV)[20-21],可以反映出心血管系统在不同情绪下做出的调节,从而体现情绪的变化。所以,本文提出一种基于极限梯度提升结合可减少相关性偏差和递归特征消除的心电信号情绪识别方法。首先,使用公开数据集AMIGOS[22]数据集进行实验,采用小波变换和陷波滤波器去除噪声等干扰,提取了心电信号以及心率变异性的时域、频域等35 个特征参数;再结合XGBoost-RFE-CBR(eXtreme gradient boosting-recursive feature elimination-correlation bias reduction)特征排序算法进行特征选择得到27 个特征;然后利用XGBoost进行分类,最后在五折交叉验证下,对arousal、valence、dominance 3 个情绪标签分别进行二分类,分别获得80.5%、74.8%、76.4%的识别准确率。与采用多维生理信号的方法相比,该方法减少了系统复杂度,与传统分类算法相比有着更高的分类准确率。

1 数据预处理及方法

1.1 数据和预处理

所使用的数据集为AMIGOS 数据集,它是用于研究个人和团体的情感、人格和情绪的数据集,其中包含40 名受试者的实验数据,每名受试者独立观看16 个引起不同情绪的短片并在观看过程中记录心电、皮肤电、脑电数据。选取上述40 名受试者的独立观看16个情感短片的心电数据进行实验。

在AMIGOS 数据集中,ECG 信号有三导联信号,可以得到采样率为256 Hz的1280 份ECG 信号,作为实验样本,其中第9 个人仅参加了第4、5、8、14 个情感短片的ECG 信号采集。为了保证数据的一次完成性,减少外部因素的影响,故舍弃第9 个实验者的ECG 信号,最终得到1248 份实验样本。AMIGOS 数据集以自我情绪评定量表(self-assessment manikin ,SAM)为评价规则,让40 名受试者在arousal、valence 和dominance 3 个维度等若干指标中,使用1 ~9 的连续量化分数进行评判,评分从小到大依次表示各项指标由弱到强。以评分作为分类标准,分为1 ~5 分和5 ~9 分两类,使用0 和1 进行标记。

通过观察频谱以及与正常心电信号的对比,在39名参与者的ECG 信号中,存在两个固定干扰,干扰的频率范围分别为50 Hz±0.1 Hz和78 Hz±0.1 Hz;并且,在测量心电信号的过程中,ECG 信号会因为耦合进肌电干扰而出现测量偏差[23];此外,原始心电信号会存在一定程度的基线漂移,会影响心电信号的特征[24]。使用bior2.6小波对原始心电信号进行小波分解、滤波、重构,以去除肌电干扰和基线漂移,再采用50、78 Hz的陷波滤波器对ECG 信号进行滤波处理,从而消除这两项固定存在的干扰。原始心电信号以及处理后的心电信号如图1 所示。

图1 原始ECG 信号与预处理后的ECG 信号

1.2 特征的提取

ECG 信号的基本波形见图2,包含以下基本波形:心脏兴奋过程中会相继出现一个P 波、一个QRS 波群及一个T 波,相邻R 峰的时间间隔通常被称为RR 间隔。

图2 ECG 信号的基本波形

根据受试者观看视频的时长,实验样本截取时长为50 s的信号进行实验。因为受试者观看情绪短评引起动作干扰导致R 峰提取存在误差,所以选取使用Pan & Tompkins 算法提取R 峰来避免干扰从而获得正确的R 峰信息,如图3 所示。

图3 QRS 波检测定位R 峰位置

准确提取R 峰后,计算相邻R 峰的时间间隔(RR间隔);进一步剔除异常心跳节拍(如心脏异位搏动),获得正常窦性心搏RR 间隔(简称NN 间隔),用于衡量心率变异性(HRV)[20-21]。然后,提取ECG 信号和NN 间隔的相关特征作为实验的所需要的特征,具体提取的特征见表1。

表1 提取的特征

表1 中,SDSD 是相邻NN 间隔之间差异的标准差;RMSSD 表示相邻时NN 间间隔的平方根;pNNx 表示时间间隔大于xms 的NN 间期占所有NN 间期的比重;LFP、HFP、TP 分别是HRV 相关频域特征分别表示NN间隔对应低频(0.04 ~0.15 Hz)功率、高频(0.15 ~0.40 Hz)功率以及总功率(≤0.40 Hz)。除时、频域特征之外,非线性方法也常被用于评价HRV 动态特性[21]。如通过庞卡莱图[25]计算NN 间隔的SD1(standard deviation 1)和SD2(standard deviation 2):

其中,i表示第i个NN 间隔,L表示NN 间隔的总数。为消除不同受试者之间的差异和模型分类,对每个所提取的特征均进行Z-score 标准化处理,处理后的特征数据均达到均值为0,标准差为1。

1.3 特征的选择

本文从心电信号及心率变异性中在时域、频率、非线性特征中提取35 个特征。特征与特征之间可能会存在相关性,并不是特征越多,模型的分类能力就越好。过多的特征会导致分类模型训练时间增加,也可能使模型训练后出现过拟合的情况,导致分类性能下降。因此,采用XGBoost-RFE-CBR 特征选择方法对前面所提取的特征进行筛选。XGBoost-RFE(recursive feature elimination)是一种基于极限梯度提升进行特征排序的[26]方法,是通过选取特征集合的子集使用XGBoost 模型评估效果,然后重复该过程直到得到最优的特征子集,该特征子集中存在的特征就是被选择的特征。首先,使用所有特征训练XGBoost 模型,计算每个特征量的重要性并进行排序;其次,提取重要性靠前的特征作为新的特征子集;之后,基于新的特征子集训练XGBoost 模型,重新计算每个特征变量的重要性并进行排序;然后,重复上述过程,比较每个特征子集获得的效果;最后,选择并决定最优的特征变量集合。虽然XGBoost-RFE 是一种有效的特征选择方法,为了避免相关性较高的特征被一起移除而造成性能损失,所以引入一种可以减少相关性偏差的方法[27],目的是将某些因相关性较高且被误舍弃的特征重新添加到特征变量集合。每次XGBoost-RFE 选取特征子集后,对舍弃的特征中排首位的特征标记为Feature,然后找到所有与被标记特征Feature 的相关系数较高的特征。如果这些新找到的特征都已被舍弃,就将标记特征Feature移回特征子集再进行训练XGBoost 模型,基本流程如图4 所示。

图4 特征选择基本流程

采用XGBoost-RFE-CBR 对提取的35 个特征进行特征选择。最终,将选出的27 个特征作为分类器的输入进行情绪分类。

1.4 模型分类器

在得到心电信号特征后,使用XGBoost[28]分类器进行特征分类。XGBoost 算法是一种梯度提升算法,它是使用模型去训练特征然后计算残差。将前一个模型的输出作为当前模型的输入,最后用模型的共同组合来实现对真实分布的模拟。此处的模型也被称作“树”。XGBoost 训练模型过程中的目标函数由梯度提升算法的训练损失和正则项构成:

其中ϕ表示模型的参数和输入,n为训练的样本数,l训练损失是计算单个样本的损失值,y′i为模型输出的预测值,yi为训练样本的真实值。正则项∑Ω(fk)控制模型的复杂性,有助于避免过拟合,k表示树的总数。l训练损失常用的是均方误差(mean squared error,MSE):

其中γ,λ是模型需要输入的参数用来控制正则项的大小进而控制模型复杂性,T是树叶的数量,wj是每一棵树叶上的权重。为了提高模型的分类准确率,需要尽可能地降低目标函数L(ϕ)。

由于样本有限,直接训练容易导致过拟合。为了得到稳定可靠的分类模型,本文采用5 折交叉验证进行训练分类。将样本平均分成5 份,每次选取其中4份作为训练集进行5 次训练得到5 个模型,再将剩下的1 份进行分类预测,分类准确率的结果取平均以得到一个单一的估测值。

2 评估方法及实验结果

2.1 评估方法

本文使用了查全率(Recall)、精确率(Precision)、准确率(Accuracy)和F1 值(H-mean 值)来更客观真描述实验证分类器结果的好坏。

其中,TP(true positives)是分类后正确的正样本,TN(true negatives)是分类后正确的负样本,FP(false positives)是分类后错误的正样本,FN(false negatives)是分类后错误的负样本。查全率表示预测正确的正样本占实际正样本的比例;精确率表示预测正确正样本数占预测为正的样本的比例;准确率表示所有的预测正确的样本占总的比重;F1 值表示查全率和精确率的调和平均数,该值的特点就是会更多聚焦在较低的值,所以会对每个指标有相同的重视程度。

2.2 实验结果及对比

2.2.1 实验结果

本文的数据集共1248 条时长50 s的ECG 信号,其中根据前面提出的数据预处理及实验方法进行实验,训练集和测试集的比例为4 ∶1。所研究的分类器的结果在测试集上的情绪分类的结果如表2 所示。

表2 情绪分类的结果分析 单位:%

在表2 中,arousal 的4 项评估结果均最高,表明所提取的特征对arousal 有最好的分类效果,对valence和dominance 所提取的特征分类效果较差。这是由于arousal 所代表的情绪激烈程度的变化会更多地引起生理方面的变化,也可能是用于测试的视频材料能够使人在arousal 表达上能够有明显体现。

图5 ~7 分别为本文模型预测3 种标签的混淆矩阵,整体的分类准确率不够高,原因可能是数据样本过少,还有受试者在观看某些视频材料时,情绪波动大、情绪转变快,从而导致模型识别和受试者自述不同,导致模型性能下降,识别率低。

图5 本文模型预测标签arousal 的混淆矩阵

图6 本文模型预测标签valence 的混淆矩阵

图7 本文模型预测标签dominance 的混淆矩阵

2.2.2 结果对比

利用所提出的基于XGBoost 的心电信号特征信息情绪识别方法对3 种情绪标签进行了分类,与在机器学习中传统的模型Naive Bayes[22]和深度学习神经网络中传统的CNN 等模型[19,29]进行对比,结果如表3 所示。

表3 情绪分类的对比分析

由表3 可知,本文方法的F1比AMIGOS 数据集团队使用的Naive Bayes 方法的F1 提高20.7%,在仅使用心电信号作为特征的情况下,提升了F1 值;与DCNN 方法相比准确率相近,准确率降低了1.3%,F1 值提高了4.9%;与BLSTM+Attention 方法相比准确率相近,准确率降低了2.94%,F1 值提高了5.95%。不过,本文所使用的特征数要比其余方法少很多。整体来看,本文方法在这次对比实验中表现要优于Naive Bayes 模型,与DCNN 和BLSTM+Attention 相近。

因此,本文提出的基于XGBoost 的心电信号特征信息情绪识别方法在情绪识别中,相对传统单一的Naive Bayes 分类模型在分类准确率上具有优势,相对于传统的深度学习网络模型在达到近似的分类效果上,对特征提取的数量上具有一定的优势,在使用深度学习网络约10% ~20%的特征数量,达到了相近的分类效果,并且在系统的处理时间上也有提升。

3 结束语

探究了不同情绪下的心电信号与心率变异性的特征变化,通过分析不同情绪状态下的心电信号,对arousal、valence、dominance 3 种情绪指标进行了二元分类识别。首先,采用小波变换和陷波滤波器降低噪声干扰;其次,提取了心电信号以及HRV 关于时域、频域和非线性等特征参数;然后,进行了XGBoost-RFE-CBR 特征选择;最后,利用XGBoost 算法实现情绪分类,在arousal、valence、dominance 3 个情绪标签分别进行二分类,分别获得了80.5%、74.8%、76.4%的识别准确率。与机器学习的经典算法相比,XGBoost 算法通过使用梯度提升在分类任务上有更高的分类准确率,与深度学习网络相比减少了系统复杂度并且达到了相近的分类准确率。在仅使用心电信号的情况下,获得了与使用脑电信号和多种外周生理信号进行情绪识别时近似的识别效果,对情绪识别和分类任务有一定的参考价值。

猜你喜欢

电信号受试者准确率
涉及人的生物医学研究应遵循的伦理原则
涉及人的生物医学研究应遵循的伦理原则
基于联合聚类分析的单通道腹部心电信号的胎心率提取
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
涉及人的生物医学研究应遵循的伦理原则
基于Code Composer Studio3.3完成对心电信号的去噪
涉及人的生物医学研究应遵循的伦理原则
高速公路车牌识别标识站准确率验证法