基于数据生成算法的睡眠分期方法
2022-03-01刘静博顾吉峰
刘静博,王 蓓,顾吉峰
(华东理工大学 信息科学与工程学院 化工过程先进控制和优化技术教育部重点实验室,上海 200237)
0 引 言
迄今为止,睡眠分期[1]的主要研究在模式识别算法上,其中主要集中在有监督学习算法,使用较多有神经网络[2-4]、随机森林[5,6]、隐马尔可夫模型[7]、支持向量机等,少量涉及无监督学习算法如K均值聚类[8,9]等。由于睡眠数据自身类不平衡的特点,导致睡眠分期的分类效果欠佳,因此如何有效地生成睡眠数据显得尤为重要。
目前,针对睡眠数据的生成算法研究主要集中在数据的过采样。然而,由于睡眠数据属于生物电信号,具有非线性和随机性,传统的过采样会引起数据重合以及数据偏移的问题。针对上述问题,本文提出一种基于改进的iBorder-SMOTE的数据生成算法对少数类样本进行扩充,避免由于类不平衡导致模型训练不充分的现象,并选用了孪生支持向量机作为分类方法,实现睡眠分期的自动判别。
1 睡眠分期及其相关研究
整夜睡眠是一个复杂且变化的生理过程,期间常常伴随着眼动、肌肉活动、磨牙甚至梦游等生理活动。医学领域的专家通过多导睡眠图记录得到的多通道生物电信号,包括脑电信号、肌电信号、眼电信号、脉搏血氧饱和度测定和呼吸等记录来判读睡眠的阶段。1968年,Rechtschaffen A和Kales A制定了R&K睡眠分期准则[10]。R&K准则将睡眠分为3个基本阶段,清醒期(Wake, W)、快速眼动期(rapid eye movement,REM)和非快速眼动期(non-rapid eye movement,NREM),其中非快速眼动期又被细分为4个时期,包括睡眠I期(S1)、睡眠II期(S2)、睡眠III期(S3)和睡眠IV期(S4)。2007年,美国医学学会将S3和S4期合并为一个慢波睡眠期(slow-wave sleep,SS)。
自动睡眠分期的研究主要是基于睡眠脑电信号,研究过程是通过对睡眠脑电信号的预处理,提取与睡眠相关的特征,最后将这些特征送入到分类器中进行分类。然而,由于不同睡眠分期的样本数量不平衡,会引起模型训练不足,进而影响少数类样本的分类准确率。文献[11]采用经验模式分解对原始信号进行分解,提取非线性信号的均值、方差、偏度和峰度作为特征向量,采用决策树作为Adaboost算法的弱分类器进行分类,平均准确率为90%,但少数类S1的分类准确度仅为39%。文献[12]提出了一种基于逻辑平稳过渡自回归模型的睡眠分期方法,采用逻辑平稳自回归模型提取脑电信号特征,并用支持向量机进行分类,平均准确率为94%,其中少数类S1的分类准确率仅为23%。此外,少数研究工作者进行了数据生成方面的研究,文献[13]采用改进的合成少数过采样算法对原始脑电数据进行重构并用于预训练。文献[14]通过生成对抗网络对原始脑电信号进行生成,来达到平衡数据的目的。
如何避免数据不平衡对分类器的影响是自动睡眠分期中有待深入研究的问题。结合不同睡眠分期的特征样本的分布特点,本文提出了一种基于改进的iBorder-SMOTE的数据生成算法。该算法通过多簇最短距离来选取最优的数据生成空间,同时引入中心异变扰动方法消除数据偏移带来的影响,来确保数据生成对提高睡眠分期分类精度的有效性。
2 改进的iBorder-SMOTE算法
2.1 Border-SMOTE基本算法
边界合成少数类过采样技术(Border-SMOTE)[15]是在SMOTE[16]基础上发展起来的一种过采样方法,其基本思想如图1所示。与SMOTE不同点在于,Border-SMOTE只对少数类的边界样本进行过采样,依据每个少数类样本周围数据的分类情况计算其k近邻,将原始数据分为Danger样本、Safe样本和Noise样本,其中少数类样本的k近邻全部或大部分为少数类样本时,该点称为Safe样本点,当少数类样本的k近邻多数类别个数与少数类别样本大于或者相当时,该样本为Danger样本,也称为边界样本,其余称为Noise样本。针对Danger样本周围多数类与少数类比较接近,Border-SMOTE算法对此区域进行样本生成,生成算法同SMOTE算法,通过在少数样本A和Abour之间进行线性插值生成新的样本Anew。
图1 Border-SMOTE算法
Border-SMOTE算法针对少数类样本k近邻的类别所占比例对样本区域进行划分,将数据样本分为不同类别,针对危险样本进行数据生成,从而解决了基础SMOTE算法生成数据时,合成数据与多数类数据部分重叠的问题。
2.2 改进型iBorder-SMOTE算法
从数据生成的方式上来看,Border-SMOTE仍存在与SMOTE相同的问题:忽略了样本全局分布情况和数据生成迭代随机。为了解决上述两个问题,本文对Border-SMOTE算法提出了相应的改进,并分别在2.2.1节和2.2.2节中进行具体描述。
2.2.1 中心多簇最短路径
密度峰值聚类算法[17]是一种简单有效的聚类算法。它将任意维度空间的数据映射在二维空间中,在二维空间中构建数据之间的层次关系,从而可以非常容易地从中挑选出那些密度高、且与其它密度更高区域相隔较远的数据点,这些点被称为密度峰值点,用来作为聚类中心,然后将那些密度值较低的点归类于聚类中心进而完成聚类[18]。
首先,利用密度峰值聚类算法确定i个聚类中心,记作ωi。由此,原始样本被划分为了i个聚类区域,进而对每个区域计算当前样本的不平衡度。区域平衡度半径定义为当前聚类类别区域的聚类中心到该聚类类别中距离最远的点。不平衡度imb的定义如式(1)
(1)
其中,Nm为当前聚类类别区域平衡度半径内划分的总体多数类样本个数,Nl为当前聚类类别区域平衡度半径内少数类样本个数,β是比例系数,用来限定区域不平衡的容忍程度。当β较大时,原本的噪声点可能会被划分危险区域。首先计算整体样本的不平衡度imb作为分区的基准,然后对于每个聚类中心ωi首先计算区域不平衡半径,并对每个领域分别计算每个领域的imbi,最终确定k个聚类中心,即该k个聚类中心所代表的聚类类别区域为危险区,具有较高的不平衡度,需要进行数据生成任务。同时,生成m个噪声点区域,噪声点区域内可能仅有个别稀疏点,因此直接剔除即可,剩余的为安全点区域。安全点和噪声点满足式(2)
(2)
假设所有少数类样本点总数为n,维度为m维,对于这n个样本点si和k个危险区聚类中心点sj,分别计算其几何中心σsn和聚类分布中心σsk,即把所有点相加取均值。其中σsn如式(3)所示
(3)
对于一个聚类中心ωi,分别计算ωi与σsn、σsk的直线表达式lni和lki。其中lni如式(4)所示
(4)
其中,wi为第i维变量的参数,αi为聚类中心ωi与σsn直线系数。
对于ωi领域内的样本点P,P的多簇中心最短距离为dpσ,根据dpσ选取距离较近的点为pbest,dpσ公式如下
(5)
其中,μ为区间[0,1]的随机数,也可人为设定固定值。当μ取0时,表示聚类中心ωi领域内点pbest到聚类中心ωi与聚类分布中心σsk连线的最短路径;当μ取1时,表示表示聚类中心ωi领域内点pbest到聚类中心ωi与样本几何中心σsn连线的最短路径。dpσ结合了少数类总体样本的几何分布情况与待生成样本聚类中心的空间分布情况。
在实际计算过程中,多簇中心最短路径式(5)过于繁琐,因此利用空间投影法计算点到直线的距离。假设当前聚类类别聚类中心点为ω,该聚类类别中某一点为p,样本几何中心为σsn,聚类分布中心σsk,维度均为m维,多簇中心最短路径式(5)可转变为如下式
(6)
图2为二维数据多簇最短路径的示意图,图中的黑色点表示某一聚类中心的数据分布,黑色粗直线表示聚类中心与几何中心连线,灰色细直线表示聚类中心与聚类分布中心的连线。根据密度聚类的特性,聚类中心附近的数据点更密集,以黑色粗直线为例,两条黑色粗虚线围成的直线区域即表示到该直线距离最短的点。通过该领域,可以将大部分的密集点与靠近黑色粗直线的点选中,结合黑色粗虚线对与灰色细虚线对的划分区域,形成一个最优样本区域。该区域的数据点最能代表该聚类的分布。假设μ取0.5,则该区域变成了菱形或四边形。该区域考虑到了聚类中心分布情况与样本总体的分布情况,并且根据样本分布情况,区域能够进行自适应调整。
图2 多簇最短路径
为了解决SMOTE算法生产数据的盲从性,根据多簇中心最短距离,从小到大选取多个pbest值构成集合A{pbest1,pbest2,pbest3,…}, 对集合内的每个pbesti运用SMOTE算法,如式(7)
pnewi=pbesti+random(0,1)(pbest(i+1)-pbesti)
(7)
2.2.2 中心异变扰动
由中心多簇最短路径确定的样本点,结合了当前少数类聚簇样本的几何信息与空间分布信息,避免了在数据生成时的盲从性,但对于特殊类聚簇样本,聚类中心在迭代过程中靠近几何中心,导致总体数据样本偏移。图3为二维数据样本偏移示意图位。从图3中可以看到,原始样本在数据生成时,整体数据样本密度在往右下方偏移,从而导致左上方样本点数量与新样本的偏差增大。
图3 二维数据样本偏移
为了解决这个问题,为算法引入了中心异变扰动。具体操作如下:
(1)生成新样本后,峰值密度算法计算所有样本距离聚类中心的密度值;
(2)定义参数η,将密度值小于η的领域,确定为稀疏领域,将稀疏领域内的点记作集合B{b1,b2,…},B集合样本点总数为n;
(3)根据聚类中心ω计算中心异变扰动点,公式如下
(8)
由式(8)可以看到,当稀疏领域的样本点达到设定的临界值时,以聚类中心ω为中心,向稀疏区域样本点进行随机样本生成,当集合B中仅有一个元素时,该式即表示由聚类中心向离散点进行一次SMOTE算法的运算。
2.3 算法实施步骤
基于上述分析,将改进的iBorder-SMOTE算法用于处理不平衡数据,可以结合样本的聚簇情况、空间分布与几何分布,弥补SMOTE算法在数据生成过程中的盲从性。
针对少数类样本,iBorder-SMOTE算法的具体实施步骤如下:
Input:不平衡数据集S,其中S+为多数类样本,S-为少数类样本;
Output:平衡数据集Snew,其中S+为多数类样Snew-为少数类样本与生成样本总数;
(1)设置迭代终止条件,例如样本数量、迭代次数等;
(2)利用密度峰值聚类算法找到i个聚簇类别的聚类中心ωi;
(3)计算每个簇的样本不平衡度imbi,划分为安全区、危险区、噪声,剔出噪声,其中危险区的个数为k;
(4)计算几何中心点σsn与聚簇分布中心点σsk;
(5)计算每个区域聚类中心ωi到σsn和σsk的直线lsi和lki;
(6)计算每个危险区域Mdanger_k内每个点的多簇中心最短距离dpσ,并确定每个区域Mdanger_k的最优点集合Ai{pbest1,pbest2,pbest3,…}, 并生成新的数据样本;
(7)针对每个危险区Mdanger_k,首先计算密度系数程度ρi,并判断生成数据是否产生偏移,对于产生数据偏移的危险区,确定每个区域Mdanger_i的稀疏区域B{b1,b2,…}, 生成每个危险区域Mdanger_i的中心异变扰动点;
(8)是否满足终止条件,否则进行下一轮迭代。
3 算法测试的相关说明
3.1 实验数据
实验环境:Intel(R) Core(TM) i7-7750HQ CPU@2.80 GHz,16 G内存,64位Windows10系统,算法的实现采用64位Spyder,程序语言python3.6。
本文采用PhysioBank实验室公开的Sleep-EDF睡眠数据集,选取数据集中10名成年健康志愿者的多导睡眠图,在整个实验过程中实验者均没有食用任何药物。脑电信号的采样频率为100 Hz,并按照30 s(3000个采样点)为一段,由睡眠专家根据美国睡眠学会标准分期标准进行人工标定,分为W、REM、S1、S2和SS这5个睡眠分期类别。
本文选用单通道(Fpz-Cz)的脑电数据,对每30 s一段的脑电信号进行傅里叶变换,提取了6个频域特征,构成特征样本 {Rδ,Rθ,Rα,Rσ,Rβ,Rγ}, 分别表示脑电信号中的δ波(0 Hz ~4 Hz),θ波(4 Hz~8 Hz),α波(8 Hz~12 Hz),σ波(12 Hz~15 Hz),β波(15 Hz~30 Hz)和γ波(30 Hz~49.5 Hz)的能量占比[13]。
3.2 分类模型
孪生支持向量机(twin support vector machine,TSVM)以广义特征值向量机为基础通过构造正负两个超平面,要求一类样本点尽量接近,另一类样本尽量远离。基于这个特性,TWSVM对不平衡数据集也有着较好的分类性能。因此,本文选用了非线性孪生支持向量机作为睡眠分期用的分类器,选取RBF作为支持向量机的核函数,以解决没有先验知识的非线性样本函数。
3.3 模型评估标准
为全面评估模型的性能,采用精度(Precision,Pre)、召回率(Recall,Re)和F1值(F1-score,F1)对分类性能进行评估,各标准的计算公式如下
(9)
(10)
F1=2PR×RE/(PR+RE)
(11)
其中,TP被模型预测为正的正样本,TN被模型预测为负的负样本,FP被模型预测为正的负样本,FN被模型预测为负的正样本。
4 实验结果与分析
4.1 非快速眼动I期与II期的分类结果
从睡眠脑电数据集中,可以看出不同睡眠分期的样本数量分布不平衡。非快速眼动期II期(S2)样本量最多,而非快速眼动期(S1)期最少,两者相差显著。在整晚睡眠过程中,S1期和S2期同为浅睡眠状态,通常从W经过S1过渡到S2。
这里将样本数据量差异显著又较易相互混淆的S1与S2实施分类任务,分别采用SMOTE算法和改进的iBorder-SMOTE算法,对1504条少数类S1的样本数据进行数据生成,生成后S1的数据量为2783条,将生成的样本全部用于训练,其余的所有样本进行10折交叉验证。
表1是未进行数据生成的分类结果,表2是采用SMOTE算法进行数据生成后的分类结果,表3是采用改进的iBorder-SMOTE算法进行数据生成后的分类结果。
表1 S1和S2的分类结果(TWSVM)
表2 S1和S2的分类结果(SMOTE-TWSVM)
表3 S1和S2的分类结果(iBorder-SMOTE-TWSVM)
表1是未进行数据生成的分类结果,从中可以看到S1与S2的分类效果均不够理想,有大量的S1样本被错分为S2样本。表2和表3给出了分别采用两种数据生成算法对S1进行数据增强后的分类结果。相比表1,利用数据生成算法能够提高少数类S1的分类准确率,并且相比表2的SMOTE算法,表3的iBorder-SMOTE算法得到的分类性能指标Pre、Re和F1均有提升。同时,对多数类S2来说,表示分类综合性能的F1指标也有提升,减少了S1和S2相互之间的混淆。
4.2 睡眠分期的总体分类结果
以睡眠脑电数据集中的所有样本作为分析对象,分别采用SMOTE算法和iBorder-SMOTE算法对少数类S1的样本数据进行扩充,同样将生成的样本全部用于训练,其余的所有样本进行10折交叉验证。
表4是未进行数据生成的分类结果。从中可以看到,SW、REM、S2和SS的分类准确率均为80%左右,而少数类S1的分类准确率仅为42%,有大量S1样本被错分为S2。表5和表6给出了分别采用两种数据生成算法对S1进行数据增强后,不同睡眠分期的分类结果。不同睡眠分期的分类准确率均有所提升。相对来说,iBorder-SMOTE的效果更显著,少数类S1的精度Pre由41.95提升至了52.73,召回率Re由21.48提升至了32.78,F1值有28.41提升至40.43,同时其余睡眠分期的F1值也有所提升,验证了算法的有效性。
表4 睡眠分期的分类结果(TWSVM)
表5 睡眠分期的分类结果(SMOTE-TWSVM)
表6 睡眠分期的分类结果(iBorder-SMOTE-TWSVM)
根据数据生成算法实施流程可知,采用本文所给出的改进型iBorder-SMOTE算法,利用了多簇中心最短路径,在数据生成上不再具有盲从性,而是在需要生成数据的聚类类别领域内,依据数据的分布情况和密度情况,自动划分选择需要生成的数据点,从而使得该区域内的点具备较高的区域特性,对后续的样本分类任务提供了有效的支持。同时,在睡眠分期判别的多分类任务中,将改进的iBorder-SMOTE算法与孪生支持向量机相结合,有效提高了少数类样本S1的识别精度,并且其在睡眠分期判别上的性能也优于SMOTE算法,避免了模型训练不足的问题。由于S1和S2是相邻的两个睡眠分期,频域特征难免存在耦合现象,较易混淆,后续的研究工作可在此基础上,进一步研究并提高S1和S2的分类性能。
5 结束语
本文针对睡眠分期判别中少数类样本识别较低的问题,提出了一种改进的iBorder-SMOTE数据生成算法。在Border-SMOTE算法的基础上,提出了两点改进,即多簇中心最短距离与中心异变扰动,避免了原算法在生成数据上的盲从性。结合孪生支持向量机作为分类器,与未进行数据生成,以及SMOTE数据生成算法进行了比较。结果表明,改进的iBorder-SMOTE算法能够有效提高睡眠分期中的少数类样本的分类准确率,同时也提升了睡眠分的整体判别效果。由于本文仅考虑睡眠脑电信号中的频域特征,在一定程度上会因相邻睡眠分期间的特征耦合而影响分类精度。本文的主要研究工作,能够为解决分类器在少数类上训练不足的问题提供一种有效可行的数据生成算法。在此基础上,后续可深入针对特征耦合问题开展研究来进一步提高分类精度。