睡眠分期是医学、神经信息领域的研究热点。人工标记睡眠数据是一项费时且费力的工作。自动睡眠分期方法能够减少人工分期的工作负荷,但在复杂多变的临床数据的应用上仍存在局限性。本文提出了一种改进的K均值聚类算法,主要目的是从实际睡眠数据的特点出发,研究睡眠自动分期方法。针对原始K均值聚类算法对初始聚类中心和离群点敏感的问题,本文结合密度的思想,选择周围数据密集的点作为初始中心,并根据“3σ法则”更新中心。改进算法在健康被试和接受持续正压通气(CPAP)治疗的睡眠障碍者的睡眠数据上进行了测试,平均分类精确度达到76%,同时结合实际睡眠数据的形态多样性验证讨论了该方法在临床数据上的可行性和有效性。
引用本文: 肖姝源, 王蓓, 张见, 张群峰, 邹俊忠. 基于改进的K均值聚类算法的睡眠自动分期研究. 生物医学工程学杂志, 2016, 33(5): 847-854. doi: 10.7507/1001-5515.20160137 复制
引言
睡眠是人体所必须的生理活动,是机体复原、整合等的重要环节。在现代社会,各方面的压力和不健康的生活习惯严重影响着人们的睡眠。据世界卫生组织调查,世界范围内约有三分之一的人有睡眠问题,由睡眠障碍引起的疾病达80余种。据不完全统计,我国各类睡眠障碍者占人群的38%。对睡眠的研究已经成为神经科学领域的热点。其中,研究睡眠分期能有效地评估睡眠质量,用于治疗睡眠相关疾病,因而得到了广泛的关注。
观察发现,整晚睡眠并不是一个单一的过程,其有着复杂的结构和多种生理变化。睡眠常常伴随着闭眼、做梦、肌肉活动,甚至出现梦游、磨牙等生理活动。1968年,Rechtschaffen和Kales召开了一个专家组会议,此次会议讨论通过了睡眠分期的人工判读标准,即为国际上常用的睡眠分期R & K规则[1]。除了清醒期(awake, W)外,此规则将睡眠分为快速眼动期(rapid eye movement, REM)和非快速眼动期(non-rapid eye movement, NREM)。其中,NREM又可以根据睡眠深浅分为4个分期(S1、S2、S3和S4)。S1期觉醒阈值最低,S4期最高。REM期最明显的现象是眼球的突发性快速运动。2007年,美国睡眠医学学会推出了最新的睡眠分期标准[2],其中将S3、S4期合并为一个慢波睡眠期(slow-wave sleep, SS)。研究睡眠分期能更好地了解睡眠结构和周期,从而挖掘出潜在的有用信息。对睡眠分期的研究有以下三点先验规定[3]:①将睡眠过程分为30 s一段进行评判;②每一段对应一个睡眠阶段;③如果有两个阶段发生在同一段数据里,则将占半数以上时间的阶段作为这一段数据所代表的睡眠分期。
人的整夜睡眠为7~8 h,通常由有资质的医师进行睡眠分期,但人工标记是一项费时费力的工作。为解决这一问题,国内外已有学者对自动睡眠分期进行了研究。一般来说,都是根据从脑电图(electroencephalography, EEG)、肌电图(electromyography, EMG)、眼电图(electrooculography, EOG)信号中提取的特征,选择一种合适的分类方法将数据段分类到某一个睡眠分期,尽量使结果与专家判读的结果一致[4]。从EEG等人体生物电信号中提取的非线性和频域特征[5]多被用于区分不同的睡眠阶段。非线性特征包括最大Lyapunov指数、近似熵[6]、相关维等,频域特征包括功率、谱边界等。在Koley等[7]的研究中,提取了39个与整晚睡眠有关的特征,利用支持向量机和k重交叉验证找到睡眠分期最优的特征。Fell等[8]对频域和非线性方法进行对比研究,将睡眠过程分为S1、S2、SS和REM这四个分期,提取的频域特征有功率、频谱边缘等,非线性特征有关联维D2、最大Lyapunov参数L1和近似Kolmogorov熵K2。Ronzhina等[9]详细介绍了人工神经网络在睡眠分期上的应用,并以反向传播多层神经网络为例,结合δ波、θ波、α波和β波的功率谱密度特征,将睡眠数据分为W期、REM期和NREM期的S1、S2、S3和S4期。焦东来等[10]研究W期和S1期EEG的平均能量耗散的差别,对这两个睡眠分期的相对熵进行统计分析及多样本验证。彭振等[11]提出了一种基于奇异值的第一主成分的睡眠EEG分期方法,提取奇异值第一主成分作为特征,结合支持向量机进行分期。此外,现代信号处理技术如同步压缩变换[12]、图域变换[13]等,在睡眠分期上也有相关研究报道。
尽管有很多分类方法被应用于睡眠分期,但是在临床上仍然主要依靠有资质有经验的医师进行人工分期。对于不同的人来说,睡眠数据通常在幅值、分布上有较大差别。即使是同一个人,睡眠模式也会因为环境和生理状况的改变而不同。对监督算法来说,其性能与训练样本和训练过程有很大的关系,并且对特定的测试样本才有比较高的分类精度,难以适应实际应用中具有各种不同特性的睡眠数据。有监督分类器需要事先提供大量的有标签的睡眠数据来学习,而人工标记整晚睡眠是一项相当耗时的工作。标记一段8 h的睡眠数据需要2~4 h,且标记准确与否与专家的经验有很大的关系。因此,如何适应复杂多变的实际睡眠数据仍是睡眠自动分期中值得研究的问题。
聚类算法作为无监督学习过程,是数据挖掘、模式识别等领域的重要研究内容之一。它直接根据数据的内在结构进行识别,不需要带标签的数据以供学习。因此,聚类算法用在睡眠分期上的前景十分广阔。K均值聚类是一种典型的聚类算法,其处理速度快,算法简单[14]。Koupparis等[15]结合短时傅里叶变换和K均值聚类作为半自动睡眠分期方法,能有效地区分出W、REM和S1期。Lima等[16]利用K均值聚类算法分离出了EEG信号伪迹。K均值聚类算法能与其他方法结合以提高其性能,例如粗糙集[17]、模糊理论[18]、支持向量机[19]、神经网络模型[20]等。
本文结合聚类算法的优势,提出一种改进的K均值聚类算法,对实际应用中的临床睡眠数据进行分期。针对实际睡眠分期问题,考虑到原始K均值聚类算法的不稳定性和易受离群点的影响,从初始聚类中心的选择和更新聚类中心的角度出发对其进行改进。首先,结合密度的思想,选择数据密集的点作为初始中心。所选的中心能适应数据的分布,从而得到合理的分类结果。其次,在算法迭代过程中,根据“3σ法则”更新中心,以减小离群点的影响。本文分别选用了健康被试和接受持续正压通气(continuous positive airway pressure, CPAP)治疗的睡眠障碍者的临床数据进行测试。结合EEG等人体生物电信号的时域、频域特征,将整晚睡眠分为W、S1、S2、SS和REM期5个阶段,同时结合实际睡眠数据的形态多样性讨论了该方法在临床数据上的可行性和有效性。
1 数据和方法
1.1 睡眠数据
本研究中的睡眠数据来自日本东京Toranomon医院。受试者为1名正常成年人(28岁,男性)和2名经CPAP治疗后的睡眠障碍患者(36岁和52岁,均为男性)。依据临床数据采集的规定,已获得受试者的知情同意书。采集设备为日本光电EEG1100K,按照通用的多导睡眠图(polysomnograph, PSG)监测方式同步采集了受试者整晚睡眠EEG、EOG和EMG信号。PSG监测方式详见图 1,EEG信号的采集按照国际10-20电极安放标准,采集中部区域(C3和C4)和枕部区域(O1和O2),并以异侧的耳垂(A1和A2)为参考电位;EOG信号的采集位置位于左右眼睑处(LOC和ROC),并以左侧耳垂(A1)作为参考电位;EMG信号主要记录下颌部位的肌肉活动产生的电活动(CHIN)。EEG和EOG信号的采样频率为100 Hz,EMG信号的采样频率为200 Hz,时间常数为0.3 s,灵敏度是0.5 cm/50 μV。

1.2 特征计算
整晚睡眠一般是结合EEG、EOG和EMG三种生物电信号进行分期。其中,EEG主要分为α波(8~13 Hz)、β波(14~25 Hz)、θ波(4~8 Hz)和δ波(0.5~4 Hz)。根据美国睡眠医学学会提出的最新分期标准,正常成年人的整晚睡眠可分为W、S1、S2、SS和REM期5个阶段。在W期,安静、闭目情况下,EEG为持续的α波活动,还会混有低幅的其他频段的波形,常伴有高频的EMG。睁眼时,α波减少,EOG可能表现为快速眼动和眨眼现象,这一现象被称为α-阻断[21]。S1期是人由清醒进入睡眠状态的过渡阶段,EEG中开始出现慢波,α波在整个EEG数据段中所占的比例减少,逐渐被θ波取代。S2期EEG上θ波增多,且还会出现少量中低波幅的δ波。并且,可以看到睡眠纺锤波和K-复合波[22-24]。纺锤波频率在11~16 Hz之间,持续时间大于0.5 s,小于3 s[25]。K-复合波是频率在1 Hz左右的低频高幅(>75 mV)慢波,先负相后正相。在SS期,δ波是最明显的特征。REM期,从大多数指标来看,人大脑的活动状况与S1期十分相似。另外,此睡眠阶段很重要的特点就是眼球快速运动,出现锯齿状的波形,EMG活动很弱。
合适的特征能反映出信号的潜在信息。本文针对上述睡眠各个分期的特点,在频域上对EEG和EOG提取了4个特征,从EMG上提取了1个时域特征。对EEG,计算δ、θ、α波占全频段的比例Rδ、Rθ、Rα。其中,Rδ、Rθ从EEG的C3/A2和C4/A1通道信号提取,并取左右对称通道中的较大值,Rα从O2/A1和O1/A2通道计算得到,也是取左右对称通道中的较大值作为特征值:
$ {R_\delta } = \max \left\{ {\frac{{{E_\delta }\left( {C3} \right)}}{{{E_{\rm{T}}}\left( {C3} \right)}},\frac{{{E_\delta }\left( {C4} \right)}}{{{E_{\rm{T}}}\left( {C4} \right)}}} \right\} $ |
$ {R_\theta } = \max \left\{ {\frac{{{E_\theta }\left( {C3} \right)}}{{{E_{\rm{T}}}\left( {C3} \right)}},\frac{{{E_\theta }\left( {C4} \right)}}{{{E_{\rm{T}}}\left( {C4} \right)}}} \right\} $ |
$ {R_\alpha } = \max \left\{ {\frac{{{E_\alpha }\left( {O1} \right)}}{{{E_{\rm{T}}}\left( {O1} \right)}},\frac{{{E_\alpha }\left( {O2} \right)}}{{{E_{\rm{T}}}\left( {O2} \right)}}} \right\} $ |
其中,Eδ、Eθ、Eα、ET分别表示δ、θ、α和全频段的能量,即将时序列信号经过快速傅里叶变换到频率域后,在频域上计算各频段幅度平方和。对EOG,计算LOC-ROC通道2~10 Hz这一频段的能量ELR。对EMG,计算其过零点数ZC。
计算特征后,需要对特征进行标准化。本文采用z-score方法,即
$ {x^*} = \frac{{x - \mu }}{\sigma } $ |
其中,x*是标准化后的数据,μ是原始数据的均值,σ是标准差。
1.3 改进的K均值聚类算法
聚类是按照样本的某些属性,把一个数据集聚成多个类,使得类中的对象相似度大,而类之间的相异度大。K均值聚类算法:首先随机选择k个对象作为k个类的初始聚类中心;然后,对剩下的各个对象,分别计算其与各个类中心的距离,将它划分到距离最近的类中;最后,重新计算各个类的平均值作为聚类中心。重复以上过程直到类中心不再变化或准则函数收敛。
K均值聚类算法是最典型的聚类算法,其算法简单、速度快、易于实现,但是在应用中易受到限制。主要问题在于原始K均值聚类算法的初始聚类中心是随机选择的,不同的初始中心会导致不同的聚类结果,使得算法不稳定。并且,在算法迭代过程中,更新聚类中心时,计算类中所有点的平均值作为新的中心,这一过程易受离群点的影响。此外,K均值聚类算法中聚类个数k是需要预先给定的,通常根据先验知识来确定。如果对数据的分布不是很了解,不能确定聚类数,在这种情况下不准确的k值会导致聚类质量下降。因此,在实际应用之前,需要对原始K均值聚类算法进行改进。
(1) 初始聚类中心的选择。本文结合密度的思想选择初始中心。对于某一样本点,其密度定义为:一定数量的数据点分布在其周围多大的范围内。设数据集D={x(1), x(2), …, x(N)},x(i)的密度为分布在其周围最近的M个点中,离它最远的点到它的距离。即:
$ \rho \left( i \right) = \max \left\{ {d\left[ {x\left( i \right),\left( j \right)} \right]} \right\} $ |
其中,ρ(i)表示点x(i)的密度,x(j)属于离x(i)最近的M个点所组成的集合P(i)。ρ越小,表明对象周围的数据越密集。第一个聚类中心即为ρ最小的点。在确定下一个中心时,从数据集D中去掉第一个聚类中心对应的集合P得到新的数据集,再在新的数据集中计算密度,选择ρ最小的点作为第二个聚类中心。以此类推,直到选出k-1个初始中心。然后在剩余数据样本中选择ρ最小的点作为第k个聚类中心。本文中的距离均采用欧氏距离。由此,得到了k个周围样本最密集的对象作为初始聚类中心。
(2) 更新聚类中心。确定好初始中心后,原始K均值聚类在更新聚类中心时,计算类中所有点的平均值作为新的中心。在本文中,选择距离中心一定范围内的点计算均值。根据“3σ法则”,这一范围可取为(μ-3σ, μ+3σ)。其中,μ为类内点到中心距离的均值,σ为类内点到中心距离的标准差。这样,新的类中心既可以包含类内绝大多数的数据点的信息,又可以减小离群点的影响。
综上,改进的K均值聚类算法步骤如下:
(a) 计算两两数据点之间的距离d[x(i), x(j)];
(b) 按照公式(5)计算每个点的密度ρ,同时得到集合P;
(c) 比较所有的ρ,选择最小的ρ所对应的数据点x(k)作为第一个初始聚类中心,并从集合D中去掉P(k),得到新的数据集D1;
(d) 重复(a)~(c),直到选出k个点作为初始聚类中心;
(e) 对D中除去k个聚类中心的剩余样本根据其与各个聚类中心的距离,分别分配给距离最近的类;
(f) 计算簇中每个点到中心的距离,计算μj和σj,选择距离在(μj-3σj,μj+3σj)内所对应的点计算平均值作为新的聚类中心;
(g) 按照步骤(e)重新分配各个样本对象,直到准则函数收敛或者聚类中心不再变化。
2 结果
2.1 人工判别
从睡眠分期的应用目的来说,主要是作为辅助临床诊断的重要工具。因此,本研究中采用了来自于临床的睡眠数据作为分析对象。1例正常人的整晚睡眠数据和2例睡眠障碍患者的睡眠数据均由日本Toranomon医院提供,在同样的采集环境下获取,人工判别的结果也由该医院的专业医师完成。其中,睡眠障碍患者是在接受CPAP治疗后对其睡眠数据进行了采集和分期处理,用于帮助医生判断CPAP治疗的效果,以及后续治疗方案的修订。
依据临床上的睡眠分期要求,将记录获得的整夜睡眠数据均分为30 s一段。对每30 s一段的睡眠数据均进行了人工判别。根据专家的人工判别,分别对本文主要分析的3名受试者睡眠各分期的数据段数进行了统计。被试1睡眠数据属于W期的有197段,S1期有51段,S2期有489段,SS期有139段,REM期有108段。被试2睡眠数据属于W期的有171段,S1期有156段,S2期有342段,SS期有113段,REM期有158段。被试3睡眠数据属于W期的有254段,S1期有59段,S2期有360段,SS期有178段,REM期有178段。
与正常人的睡眠相比,睡眠障碍患者的睡眠分期分布较分散,每次出现的睡眠分期持续时间不长,睡眠易被中断。同时,睡眠障碍患者的睡眠量与正常人相比有所不同。例如,一般正常成年人S2期的持续时间占总睡眠时间的44%~55%,本文中正常被试1的S2期数据段约占整晚睡眠的50%,而患有睡眠障碍的被试2、3的S2期比例分别约为36%、35%。此外,睡眠障碍患者在睡眠中常出现一些异常情况,影响数据的变化模式、幅值等,从而使得特征值与正常人的数据有较大差异。
2.2 自动分期结果比较
本文采用与人工判别相同的数据段分段方式,对每30 s数据计算1.2小节中的EEG、EOG和EMG的5个特征参数Rδ、Rθ、Rα、ELR和ZC,用于睡眠自动分期。按照1.3小节中的改进后的K均值聚类算法,对3名被试者的数据进行自动判别处理。将k设定为5,也就是将整夜睡眠数据分为5个类别,分别表示W、S1、S2、SS和REM。
以每个数据段对应的特征向量作为样本点,计算每个点的密度。然后,从中选择5个周围分布最密集的样本点作为初始聚类中心,分配样本。根据“3σ法则”更新聚类中心,迭代,直到聚类中心不再变化。这样,每次运行算法时,初始中心都是相同的,从而使得最终聚类结果不变,算法稳定。此外,根据“3σ法则”更新中心,可以减小离群点对迭代过程的影响。
改进K均值聚类算法确定的初始中心如表 1所示。从表中可以看出,对三名被试来说,EEG中α波比例在W期达到最大值,EOG和EMG活动在W期也比较活跃。进入NREM睡眠后,EOG和EMG信号活跃程度降低。S1期,α波比例较W期低,θ波开始变得活跃,比例升高,逐渐取代EEG中α波成分;S2期,θ波和δ波是EEG波形的主要组成频段,比例逐渐增大;SS期,EEG波形变得更慢,此阶段δ波比例在整晚睡眠中最高,占主导地位。而REM期,EEG表现为α波和θ波的混合状态,EOG活动较为显著,EMG活动微弱。由此可见,改进K均值聚类算法所确定的5个初始聚类中心能较好地表现出5个不同睡分期的特点,对健康成年人和睡眠障碍患者的睡眠数据均具有有效性。

误差平方和(square sum of error, SSE)是K均值聚类算法常用的准则函数,可以用来评价聚类的质量。SSE越小,说明各类样本与中心的误差和越小,聚类效果越紧密。对三名被试的睡眠数据分别采用原始K均值聚类方法和改进K均值聚类算法迭代一次后,计算聚类结果的SSE,如表 2所示。可见,三名被试的数据采用改进K均值聚类算法聚类一次后的SSE均小于原始K均值聚类的结果。由此说明,在迭代过程中,改进K均值聚类算法根据“3σ法则”更新聚类中心的方式能使类中聚类效果更紧密,各类中样本相似度更大。

确定好初始聚类中心后,改进K均值聚类算法按照“3σ法则”更新聚类中心,迭代,直到聚类中心不再变化。将改进后的K均值聚类算法的分期结果与原始K均值聚类算法对比,如表 3所示。原始K均值聚类算法由于随机选择初始中心,导致分期结果不稳定。因此,本文中对每个被试的睡眠数据运行20次,选择分类效果最好的结果与改进后的K均值聚类算法的分期结果进行比较。从表 3中可知,采用改进K均值聚类算法的分期效果明显比原始算法的效果好,验证了本文所提改进K均值聚类算法在整晚睡眠分期中的有效性。

2.3 睡眠状态多样性分析
在对实际数据的特征参数进行分析时,我们发现W期的α节律成分呈现出两种不同的状态。图 2中分别给出了两组原始时序列波形,左边为闭眼时的W期,右边为睁眼时的W期。观察O1/A2和O2/A1通道,可以发现在闭眼的状态下α波活动非常强烈;而在睁眼状态下,α波很微弱,并存在明显的眨眼现象。由于这两种状态下的睡眠特征十分不同,睁眼的W期很容易被错判为其他睡眠分期。

在K均值聚类算法中,聚类数k的值不仅会影响聚类的质量,而且决定了聚类结果是否有意义。通常,k被设定为一个确定的值。然而,对实际应用中的睡眠分期来说,会有不同于理想情况的状态出现。通常在入睡的过程中,会伴随出现睁眼等眼动现象,在专家的人工判别中较易确认为W期,而对自动判别方法来说,上述特征的差异性会影响到W期与其它睡眠期的准确判别。针对W期在闭眼和睁眼情况下所呈现的不同特征,将k的值设定为6,采用改进后的K均值聚类算法进行了测试和分析。
表 4是采用改进K均值聚类算法得到的睡眠分期与人工判读的对比结果,表中的数值表示了睡眠分期的分类准确率。首先,以30 s为一个数据段,根据人工判读分期结果,统计得到各睡眠分期的数据段总数;然后,分别计算睡眠分期的自动判别结果与人工判读相一致的数据段数量;最后,将对比一致的数据段数量除以该睡眠分期数据段总数,得到各分期的分类准确率,详见表 4中第二列至第六列。表 4中最右边一列为整晚睡眠的总体分类准确率,即各睡眠分期判别一致的数据段数总和占整晚睡眠数据段总数的比例。

在表 4中,分别统计了三名被试在k取值为5和6的情况下睡眠分期的分类准确率。在k=5的情况下,即未考虑如图 2所示的W期形态多样性时,人工标记为W期的样本容易被错分为S1期,从而影响W期和S1期的准确判别。这是因为在睁眼状态下,α波很微弱,特征与S1期相似,较难区分。考虑了W期的形态多样性后,本文在改进的K均值聚类算法中取k=6,从表 4中可以看出三名被试W期的识别准确率均得到了提高。对被试1来说,S1期分布较分散,与S2较易混淆,但被试2和3的S1期准确率有显著提高,分别从3%、2%提高到58%、75%。同时,改进K均值聚类算法对三名被试的S2、SS和REM期的分类效果非常好,证实了改进算法通过调整k的取值能更有效地实现临床睡眠的自动分期。
3 讨论
K均值聚类算法是一种简单、易于实现的聚类算法,但是在实际应用中存在局限性。其对初始聚类中心十分敏感,初始中心选择的随机性会导致算法不稳定,分次运行算法会得到不同的聚类结果。本研究提出了一个密度的概念,选择周围样本密集的k个对象为初始聚类中心。无论算法运行多少次,得到的初始中心始终不变。从表 1观察可知,改进算法确定的初始中心符合各个睡眠分期的特征。所确定的初始中心不仅与睡眠分期的特征一致,并且能符合被试本身的睡眠特性。另外,为了减小迭代过程中离群点的影响,在更新聚类中心时,根据“3σ法则”选择离中心近的样本点进行处理。通过这样的方式,新的中心能包含大多数样本的信息而去掉了离群点的影响。表 2和表 3的结果显示,相比原始算法,改进K均值聚类算法对整晚睡眠数据的分期效果更好,准确率更高,验证了改进方法的有效性和合理性。
K均值聚类算法中,聚类数k通常被设定为一个特定的值。但是,对于实际应用中的睡眠分期,睡眠分期特征的分布情况往往存在不确定性和复杂性。本文在对3个被试的整夜睡眠数据进行分析时,未进行数据剔除而采用了连续的7~8 h的睡眠数据进行分析。观察发现,在W期,除了通常定义下的闭目安静的状态,也会伴随睁眼的现象。从图 2可知,这两种W期的波形有很大区别,闭眼状态下的波形特点较符合W期的判断规则,而眼动状态下的波形尤其是EEG信号的特点则更接近于S1期,影响了自动分期算法的处理效果。因此,本研究讨论了不同k值的情况下,睡眠分期效果的比较。设置k取6,在这种情况下,S1期的初始中心与W和S2期的类中心差异更大,之前易混淆的样本能更容易地分到相应的类中。结果表明,W和S1期的分类准确率相比k=5时均得到了提高。同样对临床形态多变的睡眠数据来说,不同疾病或不同年龄以及受试者对治疗的效果差异,都会影响到睡眠分期的分布情况,在较难获得规律的睡眠状态分布的情况下,改进后的算法能够通过调整k的取值,更有效地发挥算法对样本本身分布适应性较好的特点,为临床睡眠分期辅助诊断提供可行的应用方式。
睡眠分期是辅助诊断疾病的一种有效途径,从临床应用目的来说,更侧重于对睡眠障碍患者的睡眠分期。本文采用的2例睡眠障碍患者,在进行CPAP治疗之前,睡眠过程中缺少深睡眠阶段,其浅睡眠状态也呈现出较为紊乱的变化过程;经过CPAP治疗之后,睡眠有所改善,对治疗后的睡眠数据进行分期能够有助于医生判断治疗的效果和修订治疗方案。实际上,睡眠障碍患者的睡眠模式、睡眠数据幅值等与正常成年人均有差异,睡眠疾病患者的睡眠状态也互相存在较大的差异性,且各种因素综合形成的个体差异是生物电信号分析中不可避免的问题。因此,寻找一种能适应临床睡眠变化数据的分期方法尤为重要。本文提出的改进的K均值聚类算法不需要大量样本数据进行学习和训练,根据样本本身的分布特点进行聚类。对睡眠分期的临床应用来说,具有较好的灵活性和适应性,已有的数据分析结果显示了改进后的算法在实际临床数据上的应用效果。由于不同疾病、不同年龄段及受试者本身对治疗的适应性等因素,会导致获取的睡眠数据较难呈现出规律性的特点,往往会有其数据分布的特殊性。为了更好地应用于临床数据,在本文给出的改进算法的基础上可以进行有针对性的数据分析,有助于为临床诊断提供有用的辅助判断依据。
4 结论
本文从K均值聚类算法的初始中心选择和减少离群点影响的角度出发,提出了一种改进的K均值聚类算法,应用到睡眠分期上,将整晚睡眠分为W、S1、S2、SS和REM期5个阶段。基于密度的初始中心的选择能避免K均值聚类算法的随机性,根据“3σ法则”更新聚类中心能减小离群点对迭代过程的影响。针对睡眠状态多样性问题,本文分析并讨论了调整聚类数对睡眠分期的应用效果。该算法在实际临床睡眠数据上进行了测试,得到了较高的分类准确率,验证了该方法运用在临床数据上的可行性和有效性。
引言
睡眠是人体所必须的生理活动,是机体复原、整合等的重要环节。在现代社会,各方面的压力和不健康的生活习惯严重影响着人们的睡眠。据世界卫生组织调查,世界范围内约有三分之一的人有睡眠问题,由睡眠障碍引起的疾病达80余种。据不完全统计,我国各类睡眠障碍者占人群的38%。对睡眠的研究已经成为神经科学领域的热点。其中,研究睡眠分期能有效地评估睡眠质量,用于治疗睡眠相关疾病,因而得到了广泛的关注。
观察发现,整晚睡眠并不是一个单一的过程,其有着复杂的结构和多种生理变化。睡眠常常伴随着闭眼、做梦、肌肉活动,甚至出现梦游、磨牙等生理活动。1968年,Rechtschaffen和Kales召开了一个专家组会议,此次会议讨论通过了睡眠分期的人工判读标准,即为国际上常用的睡眠分期R & K规则[1]。除了清醒期(awake, W)外,此规则将睡眠分为快速眼动期(rapid eye movement, REM)和非快速眼动期(non-rapid eye movement, NREM)。其中,NREM又可以根据睡眠深浅分为4个分期(S1、S2、S3和S4)。S1期觉醒阈值最低,S4期最高。REM期最明显的现象是眼球的突发性快速运动。2007年,美国睡眠医学学会推出了最新的睡眠分期标准[2],其中将S3、S4期合并为一个慢波睡眠期(slow-wave sleep, SS)。研究睡眠分期能更好地了解睡眠结构和周期,从而挖掘出潜在的有用信息。对睡眠分期的研究有以下三点先验规定[3]:①将睡眠过程分为30 s一段进行评判;②每一段对应一个睡眠阶段;③如果有两个阶段发生在同一段数据里,则将占半数以上时间的阶段作为这一段数据所代表的睡眠分期。
人的整夜睡眠为7~8 h,通常由有资质的医师进行睡眠分期,但人工标记是一项费时费力的工作。为解决这一问题,国内外已有学者对自动睡眠分期进行了研究。一般来说,都是根据从脑电图(electroencephalography, EEG)、肌电图(electromyography, EMG)、眼电图(electrooculography, EOG)信号中提取的特征,选择一种合适的分类方法将数据段分类到某一个睡眠分期,尽量使结果与专家判读的结果一致[4]。从EEG等人体生物电信号中提取的非线性和频域特征[5]多被用于区分不同的睡眠阶段。非线性特征包括最大Lyapunov指数、近似熵[6]、相关维等,频域特征包括功率、谱边界等。在Koley等[7]的研究中,提取了39个与整晚睡眠有关的特征,利用支持向量机和k重交叉验证找到睡眠分期最优的特征。Fell等[8]对频域和非线性方法进行对比研究,将睡眠过程分为S1、S2、SS和REM这四个分期,提取的频域特征有功率、频谱边缘等,非线性特征有关联维D2、最大Lyapunov参数L1和近似Kolmogorov熵K2。Ronzhina等[9]详细介绍了人工神经网络在睡眠分期上的应用,并以反向传播多层神经网络为例,结合δ波、θ波、α波和β波的功率谱密度特征,将睡眠数据分为W期、REM期和NREM期的S1、S2、S3和S4期。焦东来等[10]研究W期和S1期EEG的平均能量耗散的差别,对这两个睡眠分期的相对熵进行统计分析及多样本验证。彭振等[11]提出了一种基于奇异值的第一主成分的睡眠EEG分期方法,提取奇异值第一主成分作为特征,结合支持向量机进行分期。此外,现代信号处理技术如同步压缩变换[12]、图域变换[13]等,在睡眠分期上也有相关研究报道。
尽管有很多分类方法被应用于睡眠分期,但是在临床上仍然主要依靠有资质有经验的医师进行人工分期。对于不同的人来说,睡眠数据通常在幅值、分布上有较大差别。即使是同一个人,睡眠模式也会因为环境和生理状况的改变而不同。对监督算法来说,其性能与训练样本和训练过程有很大的关系,并且对特定的测试样本才有比较高的分类精度,难以适应实际应用中具有各种不同特性的睡眠数据。有监督分类器需要事先提供大量的有标签的睡眠数据来学习,而人工标记整晚睡眠是一项相当耗时的工作。标记一段8 h的睡眠数据需要2~4 h,且标记准确与否与专家的经验有很大的关系。因此,如何适应复杂多变的实际睡眠数据仍是睡眠自动分期中值得研究的问题。
聚类算法作为无监督学习过程,是数据挖掘、模式识别等领域的重要研究内容之一。它直接根据数据的内在结构进行识别,不需要带标签的数据以供学习。因此,聚类算法用在睡眠分期上的前景十分广阔。K均值聚类是一种典型的聚类算法,其处理速度快,算法简单[14]。Koupparis等[15]结合短时傅里叶变换和K均值聚类作为半自动睡眠分期方法,能有效地区分出W、REM和S1期。Lima等[16]利用K均值聚类算法分离出了EEG信号伪迹。K均值聚类算法能与其他方法结合以提高其性能,例如粗糙集[17]、模糊理论[18]、支持向量机[19]、神经网络模型[20]等。
本文结合聚类算法的优势,提出一种改进的K均值聚类算法,对实际应用中的临床睡眠数据进行分期。针对实际睡眠分期问题,考虑到原始K均值聚类算法的不稳定性和易受离群点的影响,从初始聚类中心的选择和更新聚类中心的角度出发对其进行改进。首先,结合密度的思想,选择数据密集的点作为初始中心。所选的中心能适应数据的分布,从而得到合理的分类结果。其次,在算法迭代过程中,根据“3σ法则”更新中心,以减小离群点的影响。本文分别选用了健康被试和接受持续正压通气(continuous positive airway pressure, CPAP)治疗的睡眠障碍者的临床数据进行测试。结合EEG等人体生物电信号的时域、频域特征,将整晚睡眠分为W、S1、S2、SS和REM期5个阶段,同时结合实际睡眠数据的形态多样性讨论了该方法在临床数据上的可行性和有效性。
1 数据和方法
1.1 睡眠数据
本研究中的睡眠数据来自日本东京Toranomon医院。受试者为1名正常成年人(28岁,男性)和2名经CPAP治疗后的睡眠障碍患者(36岁和52岁,均为男性)。依据临床数据采集的规定,已获得受试者的知情同意书。采集设备为日本光电EEG1100K,按照通用的多导睡眠图(polysomnograph, PSG)监测方式同步采集了受试者整晚睡眠EEG、EOG和EMG信号。PSG监测方式详见图 1,EEG信号的采集按照国际10-20电极安放标准,采集中部区域(C3和C4)和枕部区域(O1和O2),并以异侧的耳垂(A1和A2)为参考电位;EOG信号的采集位置位于左右眼睑处(LOC和ROC),并以左侧耳垂(A1)作为参考电位;EMG信号主要记录下颌部位的肌肉活动产生的电活动(CHIN)。EEG和EOG信号的采样频率为100 Hz,EMG信号的采样频率为200 Hz,时间常数为0.3 s,灵敏度是0.5 cm/50 μV。

1.2 特征计算
整晚睡眠一般是结合EEG、EOG和EMG三种生物电信号进行分期。其中,EEG主要分为α波(8~13 Hz)、β波(14~25 Hz)、θ波(4~8 Hz)和δ波(0.5~4 Hz)。根据美国睡眠医学学会提出的最新分期标准,正常成年人的整晚睡眠可分为W、S1、S2、SS和REM期5个阶段。在W期,安静、闭目情况下,EEG为持续的α波活动,还会混有低幅的其他频段的波形,常伴有高频的EMG。睁眼时,α波减少,EOG可能表现为快速眼动和眨眼现象,这一现象被称为α-阻断[21]。S1期是人由清醒进入睡眠状态的过渡阶段,EEG中开始出现慢波,α波在整个EEG数据段中所占的比例减少,逐渐被θ波取代。S2期EEG上θ波增多,且还会出现少量中低波幅的δ波。并且,可以看到睡眠纺锤波和K-复合波[22-24]。纺锤波频率在11~16 Hz之间,持续时间大于0.5 s,小于3 s[25]。K-复合波是频率在1 Hz左右的低频高幅(>75 mV)慢波,先负相后正相。在SS期,δ波是最明显的特征。REM期,从大多数指标来看,人大脑的活动状况与S1期十分相似。另外,此睡眠阶段很重要的特点就是眼球快速运动,出现锯齿状的波形,EMG活动很弱。
合适的特征能反映出信号的潜在信息。本文针对上述睡眠各个分期的特点,在频域上对EEG和EOG提取了4个特征,从EMG上提取了1个时域特征。对EEG,计算δ、θ、α波占全频段的比例Rδ、Rθ、Rα。其中,Rδ、Rθ从EEG的C3/A2和C4/A1通道信号提取,并取左右对称通道中的较大值,Rα从O2/A1和O1/A2通道计算得到,也是取左右对称通道中的较大值作为特征值:
$ {R_\delta } = \max \left\{ {\frac{{{E_\delta }\left( {C3} \right)}}{{{E_{\rm{T}}}\left( {C3} \right)}},\frac{{{E_\delta }\left( {C4} \right)}}{{{E_{\rm{T}}}\left( {C4} \right)}}} \right\} $ |
$ {R_\theta } = \max \left\{ {\frac{{{E_\theta }\left( {C3} \right)}}{{{E_{\rm{T}}}\left( {C3} \right)}},\frac{{{E_\theta }\left( {C4} \right)}}{{{E_{\rm{T}}}\left( {C4} \right)}}} \right\} $ |
$ {R_\alpha } = \max \left\{ {\frac{{{E_\alpha }\left( {O1} \right)}}{{{E_{\rm{T}}}\left( {O1} \right)}},\frac{{{E_\alpha }\left( {O2} \right)}}{{{E_{\rm{T}}}\left( {O2} \right)}}} \right\} $ |
其中,Eδ、Eθ、Eα、ET分别表示δ、θ、α和全频段的能量,即将时序列信号经过快速傅里叶变换到频率域后,在频域上计算各频段幅度平方和。对EOG,计算LOC-ROC通道2~10 Hz这一频段的能量ELR。对EMG,计算其过零点数ZC。
计算特征后,需要对特征进行标准化。本文采用z-score方法,即
$ {x^*} = \frac{{x - \mu }}{\sigma } $ |
其中,x*是标准化后的数据,μ是原始数据的均值,σ是标准差。
1.3 改进的K均值聚类算法
聚类是按照样本的某些属性,把一个数据集聚成多个类,使得类中的对象相似度大,而类之间的相异度大。K均值聚类算法:首先随机选择k个对象作为k个类的初始聚类中心;然后,对剩下的各个对象,分别计算其与各个类中心的距离,将它划分到距离最近的类中;最后,重新计算各个类的平均值作为聚类中心。重复以上过程直到类中心不再变化或准则函数收敛。
K均值聚类算法是最典型的聚类算法,其算法简单、速度快、易于实现,但是在应用中易受到限制。主要问题在于原始K均值聚类算法的初始聚类中心是随机选择的,不同的初始中心会导致不同的聚类结果,使得算法不稳定。并且,在算法迭代过程中,更新聚类中心时,计算类中所有点的平均值作为新的中心,这一过程易受离群点的影响。此外,K均值聚类算法中聚类个数k是需要预先给定的,通常根据先验知识来确定。如果对数据的分布不是很了解,不能确定聚类数,在这种情况下不准确的k值会导致聚类质量下降。因此,在实际应用之前,需要对原始K均值聚类算法进行改进。
(1) 初始聚类中心的选择。本文结合密度的思想选择初始中心。对于某一样本点,其密度定义为:一定数量的数据点分布在其周围多大的范围内。设数据集D={x(1), x(2), …, x(N)},x(i)的密度为分布在其周围最近的M个点中,离它最远的点到它的距离。即:
$ \rho \left( i \right) = \max \left\{ {d\left[ {x\left( i \right),\left( j \right)} \right]} \right\} $ |
其中,ρ(i)表示点x(i)的密度,x(j)属于离x(i)最近的M个点所组成的集合P(i)。ρ越小,表明对象周围的数据越密集。第一个聚类中心即为ρ最小的点。在确定下一个中心时,从数据集D中去掉第一个聚类中心对应的集合P得到新的数据集,再在新的数据集中计算密度,选择ρ最小的点作为第二个聚类中心。以此类推,直到选出k-1个初始中心。然后在剩余数据样本中选择ρ最小的点作为第k个聚类中心。本文中的距离均采用欧氏距离。由此,得到了k个周围样本最密集的对象作为初始聚类中心。
(2) 更新聚类中心。确定好初始中心后,原始K均值聚类在更新聚类中心时,计算类中所有点的平均值作为新的中心。在本文中,选择距离中心一定范围内的点计算均值。根据“3σ法则”,这一范围可取为(μ-3σ, μ+3σ)。其中,μ为类内点到中心距离的均值,σ为类内点到中心距离的标准差。这样,新的类中心既可以包含类内绝大多数的数据点的信息,又可以减小离群点的影响。
综上,改进的K均值聚类算法步骤如下:
(a) 计算两两数据点之间的距离d[x(i), x(j)];
(b) 按照公式(5)计算每个点的密度ρ,同时得到集合P;
(c) 比较所有的ρ,选择最小的ρ所对应的数据点x(k)作为第一个初始聚类中心,并从集合D中去掉P(k),得到新的数据集D1;
(d) 重复(a)~(c),直到选出k个点作为初始聚类中心;
(e) 对D中除去k个聚类中心的剩余样本根据其与各个聚类中心的距离,分别分配给距离最近的类;
(f) 计算簇中每个点到中心的距离,计算μj和σj,选择距离在(μj-3σj,μj+3σj)内所对应的点计算平均值作为新的聚类中心;
(g) 按照步骤(e)重新分配各个样本对象,直到准则函数收敛或者聚类中心不再变化。
2 结果
2.1 人工判别
从睡眠分期的应用目的来说,主要是作为辅助临床诊断的重要工具。因此,本研究中采用了来自于临床的睡眠数据作为分析对象。1例正常人的整晚睡眠数据和2例睡眠障碍患者的睡眠数据均由日本Toranomon医院提供,在同样的采集环境下获取,人工判别的结果也由该医院的专业医师完成。其中,睡眠障碍患者是在接受CPAP治疗后对其睡眠数据进行了采集和分期处理,用于帮助医生判断CPAP治疗的效果,以及后续治疗方案的修订。
依据临床上的睡眠分期要求,将记录获得的整夜睡眠数据均分为30 s一段。对每30 s一段的睡眠数据均进行了人工判别。根据专家的人工判别,分别对本文主要分析的3名受试者睡眠各分期的数据段数进行了统计。被试1睡眠数据属于W期的有197段,S1期有51段,S2期有489段,SS期有139段,REM期有108段。被试2睡眠数据属于W期的有171段,S1期有156段,S2期有342段,SS期有113段,REM期有158段。被试3睡眠数据属于W期的有254段,S1期有59段,S2期有360段,SS期有178段,REM期有178段。
与正常人的睡眠相比,睡眠障碍患者的睡眠分期分布较分散,每次出现的睡眠分期持续时间不长,睡眠易被中断。同时,睡眠障碍患者的睡眠量与正常人相比有所不同。例如,一般正常成年人S2期的持续时间占总睡眠时间的44%~55%,本文中正常被试1的S2期数据段约占整晚睡眠的50%,而患有睡眠障碍的被试2、3的S2期比例分别约为36%、35%。此外,睡眠障碍患者在睡眠中常出现一些异常情况,影响数据的变化模式、幅值等,从而使得特征值与正常人的数据有较大差异。
2.2 自动分期结果比较
本文采用与人工判别相同的数据段分段方式,对每30 s数据计算1.2小节中的EEG、EOG和EMG的5个特征参数Rδ、Rθ、Rα、ELR和ZC,用于睡眠自动分期。按照1.3小节中的改进后的K均值聚类算法,对3名被试者的数据进行自动判别处理。将k设定为5,也就是将整夜睡眠数据分为5个类别,分别表示W、S1、S2、SS和REM。
以每个数据段对应的特征向量作为样本点,计算每个点的密度。然后,从中选择5个周围分布最密集的样本点作为初始聚类中心,分配样本。根据“3σ法则”更新聚类中心,迭代,直到聚类中心不再变化。这样,每次运行算法时,初始中心都是相同的,从而使得最终聚类结果不变,算法稳定。此外,根据“3σ法则”更新中心,可以减小离群点对迭代过程的影响。
改进K均值聚类算法确定的初始中心如表 1所示。从表中可以看出,对三名被试来说,EEG中α波比例在W期达到最大值,EOG和EMG活动在W期也比较活跃。进入NREM睡眠后,EOG和EMG信号活跃程度降低。S1期,α波比例较W期低,θ波开始变得活跃,比例升高,逐渐取代EEG中α波成分;S2期,θ波和δ波是EEG波形的主要组成频段,比例逐渐增大;SS期,EEG波形变得更慢,此阶段δ波比例在整晚睡眠中最高,占主导地位。而REM期,EEG表现为α波和θ波的混合状态,EOG活动较为显著,EMG活动微弱。由此可见,改进K均值聚类算法所确定的5个初始聚类中心能较好地表现出5个不同睡分期的特点,对健康成年人和睡眠障碍患者的睡眠数据均具有有效性。

误差平方和(square sum of error, SSE)是K均值聚类算法常用的准则函数,可以用来评价聚类的质量。SSE越小,说明各类样本与中心的误差和越小,聚类效果越紧密。对三名被试的睡眠数据分别采用原始K均值聚类方法和改进K均值聚类算法迭代一次后,计算聚类结果的SSE,如表 2所示。可见,三名被试的数据采用改进K均值聚类算法聚类一次后的SSE均小于原始K均值聚类的结果。由此说明,在迭代过程中,改进K均值聚类算法根据“3σ法则”更新聚类中心的方式能使类中聚类效果更紧密,各类中样本相似度更大。

确定好初始聚类中心后,改进K均值聚类算法按照“3σ法则”更新聚类中心,迭代,直到聚类中心不再变化。将改进后的K均值聚类算法的分期结果与原始K均值聚类算法对比,如表 3所示。原始K均值聚类算法由于随机选择初始中心,导致分期结果不稳定。因此,本文中对每个被试的睡眠数据运行20次,选择分类效果最好的结果与改进后的K均值聚类算法的分期结果进行比较。从表 3中可知,采用改进K均值聚类算法的分期效果明显比原始算法的效果好,验证了本文所提改进K均值聚类算法在整晚睡眠分期中的有效性。

2.3 睡眠状态多样性分析
在对实际数据的特征参数进行分析时,我们发现W期的α节律成分呈现出两种不同的状态。图 2中分别给出了两组原始时序列波形,左边为闭眼时的W期,右边为睁眼时的W期。观察O1/A2和O2/A1通道,可以发现在闭眼的状态下α波活动非常强烈;而在睁眼状态下,α波很微弱,并存在明显的眨眼现象。由于这两种状态下的睡眠特征十分不同,睁眼的W期很容易被错判为其他睡眠分期。

在K均值聚类算法中,聚类数k的值不仅会影响聚类的质量,而且决定了聚类结果是否有意义。通常,k被设定为一个确定的值。然而,对实际应用中的睡眠分期来说,会有不同于理想情况的状态出现。通常在入睡的过程中,会伴随出现睁眼等眼动现象,在专家的人工判别中较易确认为W期,而对自动判别方法来说,上述特征的差异性会影响到W期与其它睡眠期的准确判别。针对W期在闭眼和睁眼情况下所呈现的不同特征,将k的值设定为6,采用改进后的K均值聚类算法进行了测试和分析。
表 4是采用改进K均值聚类算法得到的睡眠分期与人工判读的对比结果,表中的数值表示了睡眠分期的分类准确率。首先,以30 s为一个数据段,根据人工判读分期结果,统计得到各睡眠分期的数据段总数;然后,分别计算睡眠分期的自动判别结果与人工判读相一致的数据段数量;最后,将对比一致的数据段数量除以该睡眠分期数据段总数,得到各分期的分类准确率,详见表 4中第二列至第六列。表 4中最右边一列为整晚睡眠的总体分类准确率,即各睡眠分期判别一致的数据段数总和占整晚睡眠数据段总数的比例。

在表 4中,分别统计了三名被试在k取值为5和6的情况下睡眠分期的分类准确率。在k=5的情况下,即未考虑如图 2所示的W期形态多样性时,人工标记为W期的样本容易被错分为S1期,从而影响W期和S1期的准确判别。这是因为在睁眼状态下,α波很微弱,特征与S1期相似,较难区分。考虑了W期的形态多样性后,本文在改进的K均值聚类算法中取k=6,从表 4中可以看出三名被试W期的识别准确率均得到了提高。对被试1来说,S1期分布较分散,与S2较易混淆,但被试2和3的S1期准确率有显著提高,分别从3%、2%提高到58%、75%。同时,改进K均值聚类算法对三名被试的S2、SS和REM期的分类效果非常好,证实了改进算法通过调整k的取值能更有效地实现临床睡眠的自动分期。
3 讨论
K均值聚类算法是一种简单、易于实现的聚类算法,但是在实际应用中存在局限性。其对初始聚类中心十分敏感,初始中心选择的随机性会导致算法不稳定,分次运行算法会得到不同的聚类结果。本研究提出了一个密度的概念,选择周围样本密集的k个对象为初始聚类中心。无论算法运行多少次,得到的初始中心始终不变。从表 1观察可知,改进算法确定的初始中心符合各个睡眠分期的特征。所确定的初始中心不仅与睡眠分期的特征一致,并且能符合被试本身的睡眠特性。另外,为了减小迭代过程中离群点的影响,在更新聚类中心时,根据“3σ法则”选择离中心近的样本点进行处理。通过这样的方式,新的中心能包含大多数样本的信息而去掉了离群点的影响。表 2和表 3的结果显示,相比原始算法,改进K均值聚类算法对整晚睡眠数据的分期效果更好,准确率更高,验证了改进方法的有效性和合理性。
K均值聚类算法中,聚类数k通常被设定为一个特定的值。但是,对于实际应用中的睡眠分期,睡眠分期特征的分布情况往往存在不确定性和复杂性。本文在对3个被试的整夜睡眠数据进行分析时,未进行数据剔除而采用了连续的7~8 h的睡眠数据进行分析。观察发现,在W期,除了通常定义下的闭目安静的状态,也会伴随睁眼的现象。从图 2可知,这两种W期的波形有很大区别,闭眼状态下的波形特点较符合W期的判断规则,而眼动状态下的波形尤其是EEG信号的特点则更接近于S1期,影响了自动分期算法的处理效果。因此,本研究讨论了不同k值的情况下,睡眠分期效果的比较。设置k取6,在这种情况下,S1期的初始中心与W和S2期的类中心差异更大,之前易混淆的样本能更容易地分到相应的类中。结果表明,W和S1期的分类准确率相比k=5时均得到了提高。同样对临床形态多变的睡眠数据来说,不同疾病或不同年龄以及受试者对治疗的效果差异,都会影响到睡眠分期的分布情况,在较难获得规律的睡眠状态分布的情况下,改进后的算法能够通过调整k的取值,更有效地发挥算法对样本本身分布适应性较好的特点,为临床睡眠分期辅助诊断提供可行的应用方式。
睡眠分期是辅助诊断疾病的一种有效途径,从临床应用目的来说,更侧重于对睡眠障碍患者的睡眠分期。本文采用的2例睡眠障碍患者,在进行CPAP治疗之前,睡眠过程中缺少深睡眠阶段,其浅睡眠状态也呈现出较为紊乱的变化过程;经过CPAP治疗之后,睡眠有所改善,对治疗后的睡眠数据进行分期能够有助于医生判断治疗的效果和修订治疗方案。实际上,睡眠障碍患者的睡眠模式、睡眠数据幅值等与正常成年人均有差异,睡眠疾病患者的睡眠状态也互相存在较大的差异性,且各种因素综合形成的个体差异是生物电信号分析中不可避免的问题。因此,寻找一种能适应临床睡眠变化数据的分期方法尤为重要。本文提出的改进的K均值聚类算法不需要大量样本数据进行学习和训练,根据样本本身的分布特点进行聚类。对睡眠分期的临床应用来说,具有较好的灵活性和适应性,已有的数据分析结果显示了改进后的算法在实际临床数据上的应用效果。由于不同疾病、不同年龄段及受试者本身对治疗的适应性等因素,会导致获取的睡眠数据较难呈现出规律性的特点,往往会有其数据分布的特殊性。为了更好地应用于临床数据,在本文给出的改进算法的基础上可以进行有针对性的数据分析,有助于为临床诊断提供有用的辅助判断依据。
4 结论
本文从K均值聚类算法的初始中心选择和减少离群点影响的角度出发,提出了一种改进的K均值聚类算法,应用到睡眠分期上,将整晚睡眠分为W、S1、S2、SS和REM期5个阶段。基于密度的初始中心的选择能避免K均值聚类算法的随机性,根据“3σ法则”更新聚类中心能减小离群点对迭代过程的影响。针对睡眠状态多样性问题,本文分析并讨论了调整聚类数对睡眠分期的应用效果。该算法在实际临床睡眠数据上进行了测试,得到了较高的分类准确率,验证了该方法运用在临床数据上的可行性和有效性。