心律失常是一种极其常见的心电活动异常症状,基于心电图(ECG)的心拍分类对心律失常的临床诊断具有十分重要的意义。本文提出一种基于流形学习的特征提取方法——近邻保持嵌入(NPE)算法,实现心律失常心拍的自动分类。分类系统利用NPE算法获取高维心电节拍信号的低维流形结构特征,然后将特征向量输入支持向量机(SVM)分类器进行心拍的分类诊断。实验基于 MIT-BIH 心律失常数据库提供的 ECG 数据,对 14 种类型的心律失常心拍进行分类,总体分类准确率高达 98.51%。实验结果表明,所提方法是一种有效的心律失常心拍分类方法。
引用本文: 高兴姣, 李智, 陈珊珊, 李健. 基于近邻保持嵌入算法的心律失常心拍分类. 生物医学工程学杂志, 2017, 34(1): 1-6. doi: 10.7507/1001-5515.201605045 复制
引言
心律失常是心脏电活动的频率、节律、起源部位、传导速度或激动次序的异常所引发的疾病,是人群中的常见现象[1]。严重的心律失常会危及患者生命,所以及时检测心律失常对预防心脏疾病和心脏性猝死的发生有着非常重要的意义。心电图(electrocardiogram,ECG)信号是能够反映心脏活动的周期性电信号,其中每个周期对应一次心跳,称为一个心拍,心拍类别是诊断心血管疾病的重要依据[2]。心律失常种类较多,ECG 波形千变万化,将计算机引入心拍的自动分类,能够很大程度上减少医生的工作量,提高心律失常的诊断效率。
通过提取 ECG 信号的波形特征可产生用于分类的特征集[3-6],包括 P 波、QRS 波、T 波特征和 RR 间期特征等,这种方法与医生对 ECG 心拍进行判定的思想相似。Korürek 等[4]提取 ECG 信号的 RR 间期、QRS 波和小波系数特征,对 5 类心律失常心拍进行分类,实现 92% 的分类灵敏度。可是波形特征的有效性依赖于特征点 P、Q、R、S、T 的准确检测,对信号噪声比较敏感。
有的学者将 ECG 信号从高维空间映射到低维子空间,使用降低维数的方法提取可用于分类的特征子集。其中,主成分分析(principal component analysis,PCA)[7]、独立成分分析(independent component analysis,ICA)[8-9]为 ECG 心拍分类中较常使用的降维方法。Zhang等[7]采用 PCA 将 ECG 心拍映射到低维空间,对 4 种类型心律失常心拍进行分类,准确率达到 99.17%。但 PCA 仅仅能够发现全局的欧氏结构,高维空间的数据点位于或者近似位于外部空间的一个子流形上[10],所以 ECG 信号可能位于一个非线性的子流形上。有关学者提出采用核方法,包括核主成分分析(kernel principal component analysis,KPCA)[11-12]、核独立成分分析(kernel independent component analysis,KICA)[13-14],来发现高维 ECG 信号的非线性结构。但是核方法计算代价昂贵,而且没有考虑数据所在的流形结构。
流形学习方法自 2000 年在《Science》杂志上首次提出以来,成为了信息科学领域的研究热点。主要包括等距映射(isometric feature mapping,Isomap)[15]、局部线性嵌入(locally linear embedding,LLE)[16]和拉普拉斯特征映射(Laplacian eigenmap)[17]等流形学习算法,能够学习到数据的非线性流形结构。目前流形学习方法在 ECG 信号识别领域中的应用还非常少,Lashgari等[18]使用流形学习的拉普拉斯特征映射算法提取 ECG 心拍特征,用于识别心律失常中的室性早搏心拍,识别准确率为 98.85%。Vemulapati[19]在加州科学博览会 2015 年项目总结里,总结了采用 LLE 等流形学习算法对 ECG 心拍进行分类。
然而,流形学习方法 Isomap、LLE、拉普拉斯特征映射存在一个共同的问题,即缺乏明显的投影矩阵,无法对新加入的样本进行特征提取,称为样本外点(out-of-sample)问题。为了克服样本外点问题,He 等[20]提出了近邻保持嵌入(neighborhood preserving embedding,NPE)的流形学习方法,并将其成功应用到人脸识别领域。本文研究 NPE 算法在心律失常心拍分类中的应用,提取 ECG 信号的非线性流形结构特征。
1 实验数据
MIT-BIH 心律失常(MIT-BIH Arrhythmia,MIT-BIH-AR)数据库[21]包含大量经过专业心电医师注释过的心电数据,是研究心律失常分类中权威的 ECG 数据库。数据库包含来自 47 例受试者的 48 条两导联心电信号记录,包括 MLII导联、V1导联、V2导联、V5 导联。每个心电信号长度为 30 min,信号采样频率为 360 Hz。每条记录由头文件(扩展名为.hea)、数据文件(扩展名为.dat)、注释文件(扩展名为.atr)三个文件组成。注释文件是心电专家对信号分析的结果,包括心电节拍的位置、节律的类型以及信号质量等。本文选用 MIT-BIH-AR 数据库中含有 MLII 导联的 46 条心电记录数据,对 MLII 单导联 ECG 心拍进行心律失常分类。
2 心拍分类
ECG 心拍的自动分类步骤主要包括 3 部分:预处理、特征提取和分类。如图 1 所示为本文实现心拍诊断的系统流程图,首先对采集到的 ECG 信号进行预处理,去除高频噪声和基线漂移,分割单拍心搏;然后基于 NPE 算法提取表征 ECG 状态的特征向量;最后将提取的特征向量输入支持向量机(support vector machine, SVM)分类器进行分类,判断心拍属于哪一类心律失常。

2.1 预处理
ECG 信号中存在各种干扰噪声,为了获得较为准确的心脏活动电信号,将小波分解与重构方法用于消除 ECG 信号的基线漂移与高频噪声[2]。ECG 的每个心拍对应一个心跳,心拍的分割需要准确检测 ECG 每个心跳波形 R 点,以 R 点为基准点进行分割。目前 ECG 的 R 点检测方法已经很多,准确率可超过 99%[22-23]。本文研究的重点是心拍的分类,所以,直接使用了 MIT-BIH-AR 数据库标注的 R 点进行心拍分割。一段心拍波形应包含一个完整周期的心跳,因此,选用 R 波前的 100 个点和 R 波后的 200 个点,总计 300 个采样点的波形片段作为该 R 波对应的心拍。表 1 中列出了从 MIT-BIH-AR 数据库整理的 14 类心律失常心拍类别名称和对应的心拍总数量,将其中随机抽取一半数量的心拍作为训练集,剩余的心拍作为测试集。图 2 展示了 14 类心律失常心拍的波形,其中每类图中包含随机抽取的 10 个心拍。


2.2 NPE 算法
NPE 算法[20]是 2005 年提出的一种新的降维技术,NPE 本质上说是 LLE 的线性逼近,其目的是在降维的同时,依然保持数据集固有的局部邻域流形结构不变。设数据集 ,其中 。NPE 寻找一个最优的映射变换矩阵 ,将 空间的数据嵌入映射到一个相对低维的空间 中。数据点 在 中表示为 ,且 。
NPE算法具体步骤如下:
(1)选择近邻:令 G 为一个有m 个节点的邻接图,每个数据 作为图的一个节点,如果 与xj 邻近,则将它们用一条边连接上。确定邻近点的方法主要有两种: 近邻法和 K 近邻法。 近邻法中,若 和 满足
${\left| {{x_i}{\rm{ - }}{x_j}} \right|^2} < \varepsilon $ |
就认为两点是相近邻的,则为它们连接一条边,其中 。K 近邻法中,如果点 是点 的 K 近邻,同时 也是 的 K 近邻,则为它们连接一条边。在实际计算中选择一个合适的 是比较困难的,所以本文 NPE 算法使用 K 近邻方法构造邻近图 G。
(2)计算权值:用 W 代表邻近图 G 的权值矩阵, 表示节点i 到节点j 的有向边的权值。则优化目标函数如下:
$\min {\sum\limits_i {\left\| {{x_i} - } \right.\sum\limits_j {{{{W}}_{ij}}\left. {{x_j}} \right\|} } ^{\rm{2}}}$ |
其约束条件为 ,通过求解最优化问题,可得到每条边的权值。
(3)计算投影矩阵:计算下式的特征值和特征向量
$ {{XM}}{{{X}}^T}a = {{{λ}} }{{{XX}}^T}a $ |
其中 , , I 为单位矩阵。设 为对应于式(3)最大的d 个特征值的特征向量,则投影矩阵 ,高维空间数据点 和其低维空间投影 有如下关系:
${y_i} = {{{A}}^{\rm T}}{x_i}$ |
其中 是一个D 维的列向量, 是一个d 维的列向量, A 是一个D*d维的矩阵。
2.3 SVM 分类器
SVM 是建立在统计学习理论的 VC(Vapnik-Chervonenkis)维理论和结构风险最小化原理基础上的一种机器学习方法[24]。SVM 经过核函数将输入空间映射到高维空间,在高维空间构造最优分类超平面,高维特征空间中的超平面对应于低维空间中的超曲面。SVM 起初是解决二分类问题的,在二分类问题中,对于n 个m 维线性不可分样本:
$({x_1},{y_1}), \cdot \! \cdot \! \cdot ,({x_n},{y_n}) \in {{\rm{R}}^m} \times \{ - 1,1\} $ |
其中 表示第i 个样本的m 维特征向量, 表示两种—1、1类别。使用训练集的特征向量与类别标注构建一个构造决策函数 ,使构建的决策函数以后可根据输入的特征向量实现输入样本的分类。求解决策函数的问题转化为最优化问题,最终的决策函数如下:
$f(x) = {\mathop{\rm sgn}} [\sum\limits_{i = 1}^l {{\alpha _i}} {y_i}K(x,{x_i}) + b]$ |
式中 是将输入空间映射到高维特征空间的核函数, 是每个训练样本的拉格朗日乘子。通常只有少部分 是非零的,对应 非零的训练样本就是支持向量,最后的决策函数 实际上仅由这几个支持向量决定。将 SVM 拓展到实现多分类问题,可以使用标准算法、一对一方法、层(树)分类方法等[25]。
2.4 评估指标
分类准确率是最常用的分类评价指标,准确率表示被正确分类的心拍在总心拍中所占的比例。为了更准确地评估分类方法在心拍识别上的效果,引入了灵敏度 Se 和阳性检测率 +P 两个指标。分类灵敏度表征该类别被正确分类个数占该类别所有样本的比率;阳性检测率表征该类别被正确分类个数占被预测为该类别的所有个数的比率。
具体定义式如下:
$灵敏度 = \frac{{{\rm{TP}}}}{{{\rm{TP}} + {\rm{FN}}}} \times {\rm{100}}\% $ |
$阳性检测率 = \frac{{{\rm{TP}}}}{{{\rm{TP}} + {\rm{FP}}}} \times {\rm{100}}\% $ |
式中,TP 表示该类被正确分类的样本数,FN 表示该类被错分为其他类的样本数,FP 表示不属于该类却被分类器分为该类的心拍个数。
3 实验分析
3.1 分类的实现
本文心拍分类实验的基本思路是采用 NPE 算法提取心拍的特征向量,结合 MIT-BIH-AR 数据库中心电医师注释的心拍类型,将训练集心拍的特征向量与心拍标注输入 SVM 分类器训练全局分类器。然后将测试集心拍的特征向量输入已经训练好的分类器,对测试集心拍进行分类,把得到的分类结果与数据库提供的类型标注进行对照分析。
具体步骤如下:
(1)计算投影矩阵 A :训练集数据量较大,所以从训练集中随机抽取如表 1 所示总数 6 890 个心拍的子样本集,基于子样本集数据进行 NPE 投影矩阵 A 的计算。子样本集心拍投影后,低维空间 的前 30 维,即 就能够表示心拍高维空间 99% 的信息,于是选取前 30 个特征向量组成投影矩阵 ,即投影矩阵 A 是一个 300*30 的矩阵。由于 NPE 算法使用 K 近邻方法构造邻近图 G,选取不同的K 值,将会得到不同的投影矩阵,对最后的分类结果也会产生不同的影响。实验中将选取不同K 值进行投影矩阵的计算,具体K 值如表 2所示。
(2)特征提取:将训练集和测试集心拍根据式(4)进行低维空间投影,提取其特征向量 。图 3是对应于图 2 的14类心律失常心拍投影后的30维数据 Y 的波形。
(3)分类:SVM 分类器的实现是使用林志仁开发的LIBSVM工具箱[26],分类器核函数采用径向基核(radial basis kernel, RBF)。基于训练集的特征向量和类型标签训练 SVM 分类器模型,最后将测试集特征向量输入训练好的 SVM 分类器,对测试集心拍进行分类识别。

3.2 实验结果分析
表 2 列出了 NPE 算法中取不同K 值时,对应得到的测试集心拍总体分类准确率。可以发现K 值的变化,对最后的分类效果影响并不明显。且取K=60 时,分类准确率最高,其中测试集 52 766 个的心拍样本,被正确分类 51 981 个,总体分类准确率为 98.51%。

表 3 统计了取K=60 时,测试集每一类心拍的分类灵敏度和阳性检测率。可以发现,14 类心律失常心拍的灵敏度和阳性检测率都比较高,阳性检测率都达到 82% 以上,尤其是左束支阻滞心拍的灵敏度和阳性检测率更是均超过 99%。结果表明该分类方法对 14 类心律失常中每一类型心拍的识别都有效。

将本文分类方法同其他文献的心律失常分类方法进行对比,表 4 总结了各文献的具体分类方法和分类准确率,各文献的 ECG 数据均使用 MIT-BIH-AR 数据库。可以发现,本文基于 NPE 算法的特征提取方法,在 14 类心律失常心拍分类中,获得了较高分类准确率,存在明显优势,实现了心律失常心拍的准确诊断。

4 结论
计算机自动分析和诊断心律失常心拍具有很大的研究价值。本文重点研究心律失常心拍识别中的特征提取部分,提出了一种新的特征提取方法——流形学习中的 NPE 算法。NPE 算法通过寻找心拍空间中的局部流形结构,实现心拍高维到低维空间的非线性投影。目前流形学习还处于理论的阶段,研究 NPE 算法在心律失常心拍识别领域的应用是一次十分有意义的尝试。实验使用 MIT-BIH-AR 数据库提供的 ECG 数据和心拍标注,对 14 类心律失常心拍进行分类,总体分类准确率高达 98.51%,获得了很好的分类效果。实验结果表明,NPE 算法在心律失常心拍自动诊断中具有可行性,能够提高分类性能。
引言
心律失常是心脏电活动的频率、节律、起源部位、传导速度或激动次序的异常所引发的疾病,是人群中的常见现象[1]。严重的心律失常会危及患者生命,所以及时检测心律失常对预防心脏疾病和心脏性猝死的发生有着非常重要的意义。心电图(electrocardiogram,ECG)信号是能够反映心脏活动的周期性电信号,其中每个周期对应一次心跳,称为一个心拍,心拍类别是诊断心血管疾病的重要依据[2]。心律失常种类较多,ECG 波形千变万化,将计算机引入心拍的自动分类,能够很大程度上减少医生的工作量,提高心律失常的诊断效率。
通过提取 ECG 信号的波形特征可产生用于分类的特征集[3-6],包括 P 波、QRS 波、T 波特征和 RR 间期特征等,这种方法与医生对 ECG 心拍进行判定的思想相似。Korürek 等[4]提取 ECG 信号的 RR 间期、QRS 波和小波系数特征,对 5 类心律失常心拍进行分类,实现 92% 的分类灵敏度。可是波形特征的有效性依赖于特征点 P、Q、R、S、T 的准确检测,对信号噪声比较敏感。
有的学者将 ECG 信号从高维空间映射到低维子空间,使用降低维数的方法提取可用于分类的特征子集。其中,主成分分析(principal component analysis,PCA)[7]、独立成分分析(independent component analysis,ICA)[8-9]为 ECG 心拍分类中较常使用的降维方法。Zhang等[7]采用 PCA 将 ECG 心拍映射到低维空间,对 4 种类型心律失常心拍进行分类,准确率达到 99.17%。但 PCA 仅仅能够发现全局的欧氏结构,高维空间的数据点位于或者近似位于外部空间的一个子流形上[10],所以 ECG 信号可能位于一个非线性的子流形上。有关学者提出采用核方法,包括核主成分分析(kernel principal component analysis,KPCA)[11-12]、核独立成分分析(kernel independent component analysis,KICA)[13-14],来发现高维 ECG 信号的非线性结构。但是核方法计算代价昂贵,而且没有考虑数据所在的流形结构。
流形学习方法自 2000 年在《Science》杂志上首次提出以来,成为了信息科学领域的研究热点。主要包括等距映射(isometric feature mapping,Isomap)[15]、局部线性嵌入(locally linear embedding,LLE)[16]和拉普拉斯特征映射(Laplacian eigenmap)[17]等流形学习算法,能够学习到数据的非线性流形结构。目前流形学习方法在 ECG 信号识别领域中的应用还非常少,Lashgari等[18]使用流形学习的拉普拉斯特征映射算法提取 ECG 心拍特征,用于识别心律失常中的室性早搏心拍,识别准确率为 98.85%。Vemulapati[19]在加州科学博览会 2015 年项目总结里,总结了采用 LLE 等流形学习算法对 ECG 心拍进行分类。
然而,流形学习方法 Isomap、LLE、拉普拉斯特征映射存在一个共同的问题,即缺乏明显的投影矩阵,无法对新加入的样本进行特征提取,称为样本外点(out-of-sample)问题。为了克服样本外点问题,He 等[20]提出了近邻保持嵌入(neighborhood preserving embedding,NPE)的流形学习方法,并将其成功应用到人脸识别领域。本文研究 NPE 算法在心律失常心拍分类中的应用,提取 ECG 信号的非线性流形结构特征。
1 实验数据
MIT-BIH 心律失常(MIT-BIH Arrhythmia,MIT-BIH-AR)数据库[21]包含大量经过专业心电医师注释过的心电数据,是研究心律失常分类中权威的 ECG 数据库。数据库包含来自 47 例受试者的 48 条两导联心电信号记录,包括 MLII导联、V1导联、V2导联、V5 导联。每个心电信号长度为 30 min,信号采样频率为 360 Hz。每条记录由头文件(扩展名为.hea)、数据文件(扩展名为.dat)、注释文件(扩展名为.atr)三个文件组成。注释文件是心电专家对信号分析的结果,包括心电节拍的位置、节律的类型以及信号质量等。本文选用 MIT-BIH-AR 数据库中含有 MLII 导联的 46 条心电记录数据,对 MLII 单导联 ECG 心拍进行心律失常分类。
2 心拍分类
ECG 心拍的自动分类步骤主要包括 3 部分:预处理、特征提取和分类。如图 1 所示为本文实现心拍诊断的系统流程图,首先对采集到的 ECG 信号进行预处理,去除高频噪声和基线漂移,分割单拍心搏;然后基于 NPE 算法提取表征 ECG 状态的特征向量;最后将提取的特征向量输入支持向量机(support vector machine, SVM)分类器进行分类,判断心拍属于哪一类心律失常。

2.1 预处理
ECG 信号中存在各种干扰噪声,为了获得较为准确的心脏活动电信号,将小波分解与重构方法用于消除 ECG 信号的基线漂移与高频噪声[2]。ECG 的每个心拍对应一个心跳,心拍的分割需要准确检测 ECG 每个心跳波形 R 点,以 R 点为基准点进行分割。目前 ECG 的 R 点检测方法已经很多,准确率可超过 99%[22-23]。本文研究的重点是心拍的分类,所以,直接使用了 MIT-BIH-AR 数据库标注的 R 点进行心拍分割。一段心拍波形应包含一个完整周期的心跳,因此,选用 R 波前的 100 个点和 R 波后的 200 个点,总计 300 个采样点的波形片段作为该 R 波对应的心拍。表 1 中列出了从 MIT-BIH-AR 数据库整理的 14 类心律失常心拍类别名称和对应的心拍总数量,将其中随机抽取一半数量的心拍作为训练集,剩余的心拍作为测试集。图 2 展示了 14 类心律失常心拍的波形,其中每类图中包含随机抽取的 10 个心拍。


2.2 NPE 算法
NPE 算法[20]是 2005 年提出的一种新的降维技术,NPE 本质上说是 LLE 的线性逼近,其目的是在降维的同时,依然保持数据集固有的局部邻域流形结构不变。设数据集 ,其中 。NPE 寻找一个最优的映射变换矩阵 ,将 空间的数据嵌入映射到一个相对低维的空间 中。数据点 在 中表示为 ,且 。
NPE算法具体步骤如下:
(1)选择近邻:令 G 为一个有m 个节点的邻接图,每个数据 作为图的一个节点,如果 与xj 邻近,则将它们用一条边连接上。确定邻近点的方法主要有两种: 近邻法和 K 近邻法。 近邻法中,若 和 满足
${\left| {{x_i}{\rm{ - }}{x_j}} \right|^2} < \varepsilon $ |
就认为两点是相近邻的,则为它们连接一条边,其中 。K 近邻法中,如果点 是点 的 K 近邻,同时 也是 的 K 近邻,则为它们连接一条边。在实际计算中选择一个合适的 是比较困难的,所以本文 NPE 算法使用 K 近邻方法构造邻近图 G。
(2)计算权值:用 W 代表邻近图 G 的权值矩阵, 表示节点i 到节点j 的有向边的权值。则优化目标函数如下:
$\min {\sum\limits_i {\left\| {{x_i} - } \right.\sum\limits_j {{{{W}}_{ij}}\left. {{x_j}} \right\|} } ^{\rm{2}}}$ |
其约束条件为 ,通过求解最优化问题,可得到每条边的权值。
(3)计算投影矩阵:计算下式的特征值和特征向量
$ {{XM}}{{{X}}^T}a = {{{λ}} }{{{XX}}^T}a $ |
其中 , , I 为单位矩阵。设 为对应于式(3)最大的d 个特征值的特征向量,则投影矩阵 ,高维空间数据点 和其低维空间投影 有如下关系:
${y_i} = {{{A}}^{\rm T}}{x_i}$ |
其中 是一个D 维的列向量, 是一个d 维的列向量, A 是一个D*d维的矩阵。
2.3 SVM 分类器
SVM 是建立在统计学习理论的 VC(Vapnik-Chervonenkis)维理论和结构风险最小化原理基础上的一种机器学习方法[24]。SVM 经过核函数将输入空间映射到高维空间,在高维空间构造最优分类超平面,高维特征空间中的超平面对应于低维空间中的超曲面。SVM 起初是解决二分类问题的,在二分类问题中,对于n 个m 维线性不可分样本:
$({x_1},{y_1}), \cdot \! \cdot \! \cdot ,({x_n},{y_n}) \in {{\rm{R}}^m} \times \{ - 1,1\} $ |
其中 表示第i 个样本的m 维特征向量, 表示两种—1、1类别。使用训练集的特征向量与类别标注构建一个构造决策函数 ,使构建的决策函数以后可根据输入的特征向量实现输入样本的分类。求解决策函数的问题转化为最优化问题,最终的决策函数如下:
$f(x) = {\mathop{\rm sgn}} [\sum\limits_{i = 1}^l {{\alpha _i}} {y_i}K(x,{x_i}) + b]$ |
式中 是将输入空间映射到高维特征空间的核函数, 是每个训练样本的拉格朗日乘子。通常只有少部分 是非零的,对应 非零的训练样本就是支持向量,最后的决策函数 实际上仅由这几个支持向量决定。将 SVM 拓展到实现多分类问题,可以使用标准算法、一对一方法、层(树)分类方法等[25]。
2.4 评估指标
分类准确率是最常用的分类评价指标,准确率表示被正确分类的心拍在总心拍中所占的比例。为了更准确地评估分类方法在心拍识别上的效果,引入了灵敏度 Se 和阳性检测率 +P 两个指标。分类灵敏度表征该类别被正确分类个数占该类别所有样本的比率;阳性检测率表征该类别被正确分类个数占被预测为该类别的所有个数的比率。
具体定义式如下:
$灵敏度 = \frac{{{\rm{TP}}}}{{{\rm{TP}} + {\rm{FN}}}} \times {\rm{100}}\% $ |
$阳性检测率 = \frac{{{\rm{TP}}}}{{{\rm{TP}} + {\rm{FP}}}} \times {\rm{100}}\% $ |
式中,TP 表示该类被正确分类的样本数,FN 表示该类被错分为其他类的样本数,FP 表示不属于该类却被分类器分为该类的心拍个数。
3 实验分析
3.1 分类的实现
本文心拍分类实验的基本思路是采用 NPE 算法提取心拍的特征向量,结合 MIT-BIH-AR 数据库中心电医师注释的心拍类型,将训练集心拍的特征向量与心拍标注输入 SVM 分类器训练全局分类器。然后将测试集心拍的特征向量输入已经训练好的分类器,对测试集心拍进行分类,把得到的分类结果与数据库提供的类型标注进行对照分析。
具体步骤如下:
(1)计算投影矩阵 A :训练集数据量较大,所以从训练集中随机抽取如表 1 所示总数 6 890 个心拍的子样本集,基于子样本集数据进行 NPE 投影矩阵 A 的计算。子样本集心拍投影后,低维空间 的前 30 维,即 就能够表示心拍高维空间 99% 的信息,于是选取前 30 个特征向量组成投影矩阵 ,即投影矩阵 A 是一个 300*30 的矩阵。由于 NPE 算法使用 K 近邻方法构造邻近图 G,选取不同的K 值,将会得到不同的投影矩阵,对最后的分类结果也会产生不同的影响。实验中将选取不同K 值进行投影矩阵的计算,具体K 值如表 2所示。
(2)特征提取:将训练集和测试集心拍根据式(4)进行低维空间投影,提取其特征向量 。图 3是对应于图 2 的14类心律失常心拍投影后的30维数据 Y 的波形。
(3)分类:SVM 分类器的实现是使用林志仁开发的LIBSVM工具箱[26],分类器核函数采用径向基核(radial basis kernel, RBF)。基于训练集的特征向量和类型标签训练 SVM 分类器模型,最后将测试集特征向量输入训练好的 SVM 分类器,对测试集心拍进行分类识别。

3.2 实验结果分析
表 2 列出了 NPE 算法中取不同K 值时,对应得到的测试集心拍总体分类准确率。可以发现K 值的变化,对最后的分类效果影响并不明显。且取K=60 时,分类准确率最高,其中测试集 52 766 个的心拍样本,被正确分类 51 981 个,总体分类准确率为 98.51%。

表 3 统计了取K=60 时,测试集每一类心拍的分类灵敏度和阳性检测率。可以发现,14 类心律失常心拍的灵敏度和阳性检测率都比较高,阳性检测率都达到 82% 以上,尤其是左束支阻滞心拍的灵敏度和阳性检测率更是均超过 99%。结果表明该分类方法对 14 类心律失常中每一类型心拍的识别都有效。

将本文分类方法同其他文献的心律失常分类方法进行对比,表 4 总结了各文献的具体分类方法和分类准确率,各文献的 ECG 数据均使用 MIT-BIH-AR 数据库。可以发现,本文基于 NPE 算法的特征提取方法,在 14 类心律失常心拍分类中,获得了较高分类准确率,存在明显优势,实现了心律失常心拍的准确诊断。

4 结论
计算机自动分析和诊断心律失常心拍具有很大的研究价值。本文重点研究心律失常心拍识别中的特征提取部分,提出了一种新的特征提取方法——流形学习中的 NPE 算法。NPE 算法通过寻找心拍空间中的局部流形结构,实现心拍高维到低维空间的非线性投影。目前流形学习还处于理论的阶段,研究 NPE 算法在心律失常心拍识别领域的应用是一次十分有意义的尝试。实验使用 MIT-BIH-AR 数据库提供的 ECG 数据和心拍标注,对 14 类心律失常心拍进行分类,总体分类准确率高达 98.51%,获得了很好的分类效果。实验结果表明,NPE 算法在心律失常心拍自动诊断中具有可行性,能够提高分类性能。