基于XGBoost方法在脑电波数据上的大脑年龄诊断研究
2018-09-20姜罗罗
徐 伟,姜罗罗
(温州大学数理与电子信息工程学院,浙江温州 325035)
大脑对身体的其它器官集中控制,控制着人类的行为活动,本身也在连续不断地发生变化.大脑通过产生肌肉活动的模式和驱动被称为激素的化学物质的分泌而作用于身体其它部位,这种集中控制可以对环境变化做出快速而协调的反应.人体由各个器官系统组成,人体的机能会受到器官的影响,尤其是大脑,它的脆弱性会随着年龄的增长而迅速增加,并且有很多的临床表现.脑电图(Electroencephalogram,EEG)是一种记录大脑活动的电生理监测方法.
大脑活动是几个大脑区域之间的各种相互作用的动态过程[1],它是由随机和确定性过程组成的[2].非线性动态脑电图(EEG)活动的量化是理解大脑随着老化而发生的活动模式变化的一个有效方法[2-3].脑-机接口(BCI)系统为人类大脑和外部设备提供沟通桥梁和控制渠道,用于脑电行为分析.在大脑年龄层面,Pierce T W等人检测了EEG因子结构的年龄差异,发现老年人的EEG信号记录比年轻人的产生了更多的因子[4].张梦梦利用EEG技术收集12名老年人和12名年轻人的靶刺激 EEG信号,分析了老年人和年轻人视听觉整合加工过程中的差异,其结论为,整合成分的年老化差异在 alpha频段最显著[5].此外,杜飞等人通过多尺度符号熵分析法对少年和中年beta脑电信号进行区分,发现随着尺度的增加,少年的符号序列熵均高于中年[6].在研究方法层面,张梦使用深度学习方法对不同年龄的EEG脑电信号进行识别[7],Gaudreau H等人研究了受试者从儿童到中年不同年龄段的NREM睡眠脑电图,结果表明儿童和中年人的NREM睡眠脑电图信号主要变化并不仅限于慢波活动(SWA),而且还包含theta、alpha、sigma和beta频率波段[8].在信号表征层面,Wang等人提出了一个用于癫痫发作检测的分层脑电分类系统,该系统主要使用小波包系数表示原始脑电信号,并使用基于最佳基的小波包熵方法进行特征提取,对获得信号用机器学习方法进行分类,准确率很高[9].我们从大脑年龄、研究方法、信号表征等三个层面讨论分析了不同年龄段的大脑通过EEG显示出来的脑电信号存在的明显差异.
如何提取脑电信号的相关特征来表征脑状态,实现对不同脑力工作的正确识别是目前很多研究者关注的问题之一.如何快速、可靠地提取 EEG信号特征是精确分类和翻译脑电信号任务的关键因素.近年来,提取不同脑电信号特征的方法很多,如功率谱估计、AR模型[10-11]和小波变换[12]等.通过功率谱估计提取波段能量需要确定主体特定的频率波段,AR模型需要确定模型的适当顺序,小波分析需要选择适当的母小波.因此,为了提取可以最好地反应不同的行为特征,本文提出了一种功率谱熵(Power Spectral Entropy,PSE)的脑电波年龄特征提取方法.由于不同年龄的脑电功率谱熵的脑电信号特征存在差异,所以通过对不同年龄的功率谱熵信号进行分类,能够获得较好的分类效果.基于香农信息理论的PSE是一个不确定系统的复杂性度量指标,它对非线性动态的变化具有很好的计量效果,并且只需要很少的数据就能够表征受试者的行为决策特征,所以该方法非常适合用于EEG脑电信号的分析[13-14].
目前已有很多研究者提出,可以使用多种信息熵(小波熵、近似熵和功率谱熵等)方法去提取脑电信号,然后再使用机器学习方法对具有信息熵特征的 EEG信号进行分类,然而,目前很少有研究人员去探索研究脑电波在不同年龄之间的差异,基于此,本文使用傅里叶变换方法计算脑电信号的频域信息,并且计算脑电波年龄信号的傅里叶成分的功率谱密度和功率谱熵,最后,使用Logistic Regression(LR)和XGBoost等机器学习分类方法[15]得到功率谱熵数据集(二分类:年轻人类别为1,中老年人类别为0).
1 方 法
1.1 特征提取和获取分类数据集
傅里叶变换(Fast Fourier Transform,FFT)是计算序列的离散傅里叶变换(Discrete Fourier Transform,DFT).傅里叶分析把原始的脑电波信号从时域转变到可表示的频域[16].假设原始脑电信号序列是定义 x0, … ,为N个点的长序列,这里序列长度是700(反应靶刺激前后的时间范围为-199 – 500 ms),则DFT的公式如下:
其中Xk是计算得到的傅里叶成分,共有N个输出.通过傅里叶成分计算功率谱密度(P):
其中 Pk是计算得到的功率谱密度,共有N个输出.
将 Pk按总的谱功率进行归一化后得到功率谱密度分布函数为:
其中pki表示总共N个输出中的第i个功率谱密度.
若用一个随机变量X表示信息熵系统的状态,X的取值假设为:
对应的取值概率为:
且:
则该系统的信息熵表示为:
因此,计算功率谱熵通过把式(3)代入式(7)所得.
1.2 分类器
1.2.1 XGBoost方法
为了区分年轻人和中老年人的功率谱熵脑电波信号,本文使用XGBoost分类器[15],XGBoost也称为Extreme Gradient Boosting,是从梯度提升算法的概念衍生出来的一个有监督的可扩展的树形提升算法[17].与梯度提升算法相比,XGBoost提出以正则化的形式来防止模型过拟合,以推动提升树算法实现更好性能的计算资源限制的工程目标.
XGBoost模型是一组分类和回归树(CART)的集成,每棵树都有叶子和相应的分数.集成树的最终结果是所有个体树的总和.对于K′树集成模型的预测输出:
XGBoost的目标函数包括损失函数和正则化.损失函数评估每个真实类别yi和诊断类别yˆi的差异,损失函数如交叉熵(Cross-Entropy),逻辑斯特(Logistic)和均方误差等.正则化是XGBoost最突出的贡献,如果模型越复杂,它的惩罚就越大.
目标函数定义如下:
正则化项有利于提供简单的模型结构和函数.更具体地说,第一项Ω,惩罚树的复杂结构(叶子越少则Ω越小),然而,第二项惩罚项则惩罚单棵树过重,以防失去平衡的树去支配模型.因此,第二项有利于平滑学习树的权重,以避免过拟合.
1.2.2 特征重要性
不同于使用特征向量计算诊断和历史日之间的相似性,梯度提升构建了提升树以智能的方式获得特征分数,从而表明了每个特征对训练模型的重要性.如果一个特征在提升树中对关键决策越重要,那么它的得分就越高,算法主要通过“Gain(增益)”、“Frequency(频率)”和“Cover(覆盖)”来计算其重要性[18].Gain是树分支特征重要性的主要参考因子,Frequency是Gain的一个简单版本,它是所有构造树的特征数量,Cover是特征观测的相对值.本文中,特征重要性为“Gain”.假设单棵决策树为T,Loh W Y等人[19]提出:)
每个分类器特征Xl都有一个重要性分数,决策树有J-1个内部节点,并且通过分类特征Xl将该区域每个节点t处划分成两个子区域.计算J-1个节点的特征Xl的重要性平方值并求和,选择它作为分类特征.加和的M棵树的重要性计算公式如下:
公式(12)是对M 棵树的重要性计算,而公式(11)是对单棵决策树的计算.
特征的重要性取决于当这种特征被随机噪声取代时,分类性能是否发生显著变化.而XGBoost算法中带有特征重要性度量,XGBoost算法训练过程中,可以得到每个特征如何,有助于诊断性能.
2 实验设计
2.1 实验流程和数据描述
2.1.1 实验流程
本次实验中,选择了18个健康的受试者,其中6女12男.根据文献[4-6],可以定义小于30岁的受试者为年轻类(共9人,8男1女,男的年龄分别为20岁、25岁、26岁、26岁28岁、28岁、29岁、30岁,女的年龄为25岁),大于45岁的受试者为中老年类(共9人,4男5女,男的年龄分别为48岁、48岁、53岁、63,女的年龄分别为46岁、46岁、50岁、50岁、54岁).本文的目的是通过功率谱熵提取受试者的脑电波特征得到功率谱熵的数据集并且用 XGBoost分类方法区分年轻类和中老年类的脑电波,此外用XGBoost特征选择方法对数据集的特征重要性进行排序,实验流程如图1所示.原始信号收集过程:1)EEG信号的采样率设置为1 000 Hz,共有36个通道,即36个特征;2)在整个实验过程中,受试者需要一直穿戴电极帽,同时,受试者需要根据电脑上的提示做出反应选择,做出选择的代码会传输到另外一台电脑上的记录软件上,并且保存下来.
图1 决策实验流程图.Fig 1 The Experiment Flow Diagram of Decision-making (DM)
2.1.2 数据描述
通过决策实验获得的原始脑电信号需要做分析处理:1)使用记录软件预处理,基线校准、滤波、直流漂移预调和去除眼电和伪迹等;2)为了能够覆盖研究成分的潜伏期,当靶刺激出现时,原始脑电信号保留刺激前后-199 – 500 ms的时间序列数据;3)通过FFT方法把原始脑电信号的时域信号变换到频域信息,从而获得功率谱密度成分,然后计算功率谱概率分布,最后计算得到功率谱信息熵,功率谱信息熵数据集用来作为XGBoost分类器的输入数据集.
分类数据集中共有36个特征,表1是这36个特征在大脑空间的具体位置描述.原始脑电信号共有36.5万左右的数据样本,通过功率谱熵特征提取后的数据集中共有553个样本,其中295个是正类,即年轻类,标记为1,258个是负类,即中老年类,标记为0.553个样本按照20%的比例划分为测试集和训练集,训练集442个,测试集111个.
2.2 性能评价标准
为了估计XGBoost和LR两个分类模型的性能,本文使用了四个模型性能评价标准:Accuracy(ACC)、Precision、Area under the receiver operating characteristic(ROC)curve(AUC)和F1-score.表2给出了算法性能的混淆矩阵.在表2中,结合我们的数据集定义如下:TP是把年轻类诊断为年轻类;TN是把中老年类诊断为中老年类;FP是把中老年类诊断为年轻类;FN是把年轻类诊断为中老年类.
根据混淆矩阵,性能评价标准计算如下:
3 结果与讨论
3.1 分类结果
在分析处理原始脑电信号之前,对年轻人和中老年人的脑电信号可视化,如图2所示.从18个受试者中随机选择了三个不同的年轻人和中老年人,比较发现,在做决策实验时,年轻人产生的电压值普遍低于中老年人的,这表明中老年人在受到靶刺激时脑电信号比年轻人的波动更大.
图2 年轻人和中老年人原始EEG信号对比图Fig 2 The Comparison Diagram of Original EEG Signal Between the Young and the Middle-aged or the Elderly
在分析年轻人和中老年人的原始脑电信号后,发现年轻人和中老年人在行为决策时所产生的脑电波存在着明显差异.为了更好地分析脑电时间序列信号,我们使用FFT方法把原始信号转变到频域,并计算其功率谱熵,获得功率谱熵数据集.同时,选择机器学习中常见的泛化能力强的两种分类器(LR和XGBoost)区分年轻人和中老年人的功率谱熵数据集.在计算模型分类精度之前,先对这两个模型进行调参操作,在获得最佳参数后,再计算模型区分功率谱熵数据集的分类精度.为了比较两个模型在功率谱熵数据集的分类性能,本文使用如表3所示的5种模型评价标准.从表3可以明显看出,XGBoost的ACC为91%,比LR的高了7.22%.比较其它四个评价指标,可知XGBoost模型比LR能更准确地区分年轻人和中老年人的脑电波.因此,从整体上看,对于功率谱熵数据集XGBoost比LR模型有更好的区分能力和泛化能力.
表3 LR和XGBoost分类器的不同评价标准Table 3 The Different Evaluation Criterion with LR and XGBoost Classifiers
LR和XGBoost分类器的受试者工作特征曲线(ROC)如图3所示,图中横坐标表示分类器错认为正类的负实例占所有负实例的比例,纵坐标表示分类器识别出正实例占所有正实例的比例.从图3中可以发现,XGBoost的ROC比LR的更接近左上角,所以 XGBoost曲线下的面积比 LR的要大.因此,总体上说,XGBoost的分类性能要优于LR模型的.
3.2 特征重要性
为了分析功率谱熵数据集的特征重要性,本文提出使用XGBoost增益方法计算数据集的特征重要性,并且以其重要性从大到小排序,如图4所示,可以看出得分最高的两个特征分别是C3和FC4.结合表1可发现年轻人和中老年人在做行为决策时,在大脑中央区域和大脑的颞位置处他们的反应差异较大,而分类器更容易在这些特征区域对数据集做出更好的分类.
图3 受试者工作特征曲线(ROC)Fig 3 The Receiver Operating Characteristic Curve (ROC)
图4 特征重要性排序图Fig 4 The Ordination Diagram of Weight of Feature
此外,为了更好地说明特征重要性在分类过程中所起的重要作用,给出了前两个得分最高的特征C3和FC4下的功率谱熵数据样本的分类过程,如图5所示.对比两幅图可以看出,右边的分类界面能更好地区分正负样本,而LR模型虽然将大部分正负样本通过一条直线区分开来,但也有很多正样本跑到负样本中和负样本跑到正样本中的现象,这也是LR模型分类精度不是很高的原因.LR模型考虑了所有样本,试图把所有样本区分开,显然这是不现实的.对比XGBoost的分类界面,就会发现有很多中小的分类界面,不限制与一条直线,而是多条直接交叉在一起,这样就会出现很多的分类界面,从而提升了其分类精度.显然,不管从精度还是从分类过程来看,在诊断脑电波年龄时XGBoost比LR的效果更好.
4 结束语
图5 脑电波年龄的模型分类过程图Fig5 The Procedure Chart of Model Classification for Brain
本文利用功率谱信息熵方法提取年轻人和中老年人在做决策实验时所产生的脑电信号特征,并用LR和XGBoost机器学习分类方法对提取到的功率谱信息熵数据集进行分类,诊断大脑年龄,并使用XGBoost增益指标对数据特征重要性进行分析.结果表明,在诊断年轻人和中老年人的行为决策脑电波时,XGBoost模型具有精度高、区分度高和泛化能力强等优点.在诊断不同年龄的脑电波时,增加样本数据集、信号特征提取、算法改进和提升精度是我们接下来的工作.