(四十七:2021.08.25)《ENCASE:使用专业特征和深度卷积网络相结合来对ECG进行分类》
《ENCASE:使用专业特征和深度卷积网络相结合来对ECG进行分类(ENCASE: an ENsemble ClASsifiEr for ECG Classification Using Expert Features and Deep Neural Networks)》
- 讲在前面
- 摘要
- 1.介绍
- 2.方法
- 2.1 数据描述和预处理
- 2.2 特征提取
- 2.2.1 专家特征
- 2.2.2 中心波
- 2.2.3 深度特征
- 2.3 特征结合一起进行分类
- 2.4 改进
- 3.结果
- 3.1 特征重要性
- 3.2 性能
- 4.结论
Using Expert Features and Deep Neural Networks)》)
讲在前面
- 一.笔者最近来搞心电信号了,当前算法框架就参考的这篇论文,来钻研一下这篇论文。说真的,搞ecg的人真的太少了;
- 二.我设计了几种字体颜色用于更加醒目地表现关键的思想和主题:
- 红色表示尚未理解透彻的一些概念
- 蓝色表示对原来的理解做的一些修改或补充
- 绿色表示此处需要参考的论文其他部分
- 橙色表示本文的重要关键字
- 紫色表示后续更新的内容
- 我会用删除线将自己曾经不到位的理解进行删除
摘要
我们提出了一种专家特征和DNNs相结合的方法,用于ECG信号分类。这是我们第一次从数据领域去探索和改进专家特征。然后,我们会创建深度神经网络来提取特征。另外,我们提出了一个新的算法,这个新的算法可以找到长ECG信号中最具有代表性的波(中心波)。最后,我们把这些特征组合在一起然后放进一个综合分类器,经过实验,四分类器得出F1=0.84F1=0.84F1=0.84 的分数,比单模型的性能要好的多。
1.介绍
ECG是一个常用的非介入性的可以反映心脏生物特征的测量工具。一个典型的12导联的300HzECG检测仪可以对每个病人产生上亿个点。分析大量的ECG数据能够帮助医生发现各种心脏疾病:比如房颤、心肌梗塞和急性低血压等等。
现在已经有很多研究提出了各种各样的特征,同时能实现很高的测量精度【1,2,3,4】。这些特征都和领域知识相关密切,所以我们叫它专家特征。最近,DNNs已经在图像等各个领域实现SOTA。一些使用DNNs来进行ECG分类的也有好的结果【5,6】。但是将两者结合起来进行分类的方法却很少。
在这片论文中,我们提出了ENCASE,一种将各种特征进行结合的方法。在如此多的论文中,我们是第一次提出使用这种两者相结合的方法。这些特征粗略分为三个部分:
- 1.数据特征;
- 2.信号处理特征;
- 3.医学特征。
然后,我们创建DNNs来自动提取深度特征,我们在训练集上预训练了一个DNNs的模型,然后把测试集输入神经网络来获取到他最后一层隐藏层的特征,作为深度特征。另外,我们提出了一个新的算法来找中心波(一个病人的ECG波形中最具有代表性的波)。然后从中心波中提取特征。最后,我们将专家特征、深度特征和中心波特征结合在一起,训练几个gradient decision boosting tree classifiers,并且把这些相结合来输出预测值。得出了F1=0.84F1=0.84F1=0.84,比单模型的精度都要高。我们还在 XGBoost 【7】 的帮助下报告了信息增益,这揭示了这些特征的重要性和可解释性。
ENCASE是一个通用且灵活的框架,它可以增量地添加特征,配备任何 DNN,并集成任何分类器。如果提供更多数据,它还可以检测更多类别的心脏病。 因此,ENCASE 可用于现实世界的应用程序。
2.方法
2.1 数据描述和预处理
数据集包含了8528个短的I导联300Hz的record,长度从2700个点到18300个点不等。被标注成4个类别:正常窦性心律(N,5154个record)、房颤(A,771)、其他心率(O,2557)和噪声(P,46)。细节在【8】。
在特征提取之前我们把原始数据处理成下面五种:
- 1.长数据:我们用样本代码把数据直接读成时间序列进行保存;
- 2.短数据:使用样本代码中的Joachim Behar的QRS检测器,来把长数据切割成短的波,在Section2.4中会有对这个算法的介绍;
- 3.QRS数据:我们计算每个长数据中相邻连续QRS的间隙的长度;
- 4.中心波:每个长数据中的所有短数据中最具有代表性的波,细节会在Section2.2.2中介绍;
- 5.扩充数据:使用滑动窗口和步长获取更多数据。在这片论文中,我们的滑动窗口长度为6000,步长为了平衡数据均衡来自动选择。Section2.4介绍了细节。
2.2 特征提取
在这个部分,我们细节地介绍了三种特征提取器:专家特征、中心波特征和深度特征。
2.2.1 专家特征
有许多的研究人员在从ECG数据分析中提取特征,粗略的说可以分成以下三个部分:
- 数据特征:这些特征使用数据来对一个序列的ECG进行摘要,同时给出一些值来描述数据的一些特征。典型的数据包括:数目、均值、最大值、最小值、范围、方差、偏度、峰度、百分位等等;
- 信号处理特征:这些特征将ECG数据从时域转换到频域,然后提取频域相关特征。例如,可以首先实现FFT(快速傅立叶变换)或DWT(离散小波变换)。 然后计算功率、频带功率、香农熵、SNR(信号噪声比)等。
- 医学特征:这些特征基于医学知识。一组特征基于QRS数据来计算变化。例如,【1】计算样本熵 (SampleEn),【2】计算变异系数和密度直方图 (CDF),【3】计算中值绝对偏差 (MAD) 的阈值,【4】 计算心率变异性(Variability)。 另一组特征计算基于 P、Q、R、S 和 T 波的统计量。 我们遵循【9】中描述的波浪检测方法,然后从短数据和中心波中提取统计特征,如间隔、持续时间、幅度、位置、斜率和面积【10】。 此外,我们还提出了一些有效的特征,如锯齿形(数据的匝数)、过零(交叉 y 轴的数量)、自相关(滞后从 1 到 12)。
2.2.2 中心波
在这一部分,我们介绍中心波——一位患者的短数据中最具代表性的波,并从中提取特征。 提取这个波的原因来自两个方面。 一方面,我们观察到一些错误分类的样本被噪声污染。 由于心电图数据没有那么长,噪声滤波器不能很好地处理它。 另一方面,有些类别是由波的形态控制的,而不是整体节奏。 直接查找和分析代表性波会提供更好的性能。
我们通过三个步骤来找中心波:
- Step1:对于每个患者,使用 DTW 距离计算他/她的短数据的成对距离矩阵【11】。 由于每个短数据的长度不等。 为了解决这个问题,我们使用计算不等长时间序列的距离。
- Step2:使用频谱聚类【12】,根据距离矩阵将短波分成几个簇,其中波在簇内相似高,簇间相似度低;
- Step3:找到最大聚类的中心,这可以通过将聚类的距离矩阵视为图形来完成,其中节点表示短波,边表示短波之间的距离。 然后我们找到图中心——离其他节点最近的节点,这意味着这个短数据是所有短数据中最具代表性的波。 然后我们在中心波上提取统计特征和医学特征。 详细信息可在Section2.2.1中找到。 此外,我们还将中心波的原始值视为特征。 然而,这些中心波的长度不同。 为了解决这个问题,我们通过线性插值对它们重新采样。 在我们的实验中,我们将所有中心波重新采样到 200 个点。
2.2.3 深度特征
最近的很多工作【5,6】证明了DNNs在ECG分类上的可用性,通过1d卷积来自动整合和提取层次特征【13】。但是,这些DNNs模型都是端到端的,很难用专家特征来进行增强。为了我们的模型可以从专家特征和深度特征中都受益,我们把DNNs用做一种特征提取器。说的详细一点就是,我们移除了输出层,同时提取最后一个隐藏层的值作为特征。这种变换是任何DNNs中都可以使用的。因此我们能够专注于深度特征提取器的结构。
第一个深度特征提取器是基于深度残差卷积网络【6】,在扩展数据上进行训练的(看Section2.1)。我们想要堆叠更多的层提取多视图和更精确的特征【14】。我们通过加一个双向LSTM层来为结果投票【6】。结构如下:
第二个深度特征提取器是基于RNN的,使用中心波进行训练。尤其要说的是,我们使用LSTM的cell作为RNN的cell。除了用CNN来进行层次特征提取外,我们也要去提取时序相关特征,这能被RNN进行处理。我们把中心波作为输入(少于600个点),因为长的数据对于RNN来说太长了。结构如下所示:
2.3 特征结合一起进行分类
现在我们有了专家特征、中心波特征和深度特征。我们将三部分特征向量连接成一个组合特征向量,训练几个单独的分类器,并通过平均预测概率将它们集成起来。
已经表明,集成分类器通常比组成它们的单个分类器准确得多【15】。 我们还选择 XGBoost【7】(决策树的极限梯度提升)作为单独的分类器。 XGBoost 在众多数据挖掘大赛中得到验证,性能更佳、更稳定。
2.4 改进
下面是一些可以进一步改进ENCASE性能的重要手段。
递归QRS检测器:在原始QRS检测器中有两个关键参数:
- THRES:检测器的能量阈值;
- REF_PERIOD:两个RR峰之间的难控制时期。
原始的QRS检测器有时会分出几个并没有分开的连续的QRS,为了解决这个问题,我们将THRES 和 REF PERIOD 乘以 0.68,每次算法输出超过 600(两倍采样频率)的片段,并在未分割的长序列上应用新的 QRS 检测器。
动态过采样:给定的原始数据是不平衡的,标签 N 比其他标签多得多。 我们建议动态过采样来处理这个问题。 具体来说,当为深度特征提取器生成扩展数据时,我们对标签 O 使用小步幅,对标签 N 使用大步幅。这样修改后的扩展数据比原始数据更加平衡。 修改后的扩展数据将训练更好的深度特征提取器。这里可以尝试用imbalance_sampler来进行处理,个人感觉单一修改步长会先一定问题。
模型评估和选择:典型的离线评估模式是将数据拆分为训练数据和测试数据,在训练数据上建立模型并在测试数据上进行评估。 为了更准确地评估 ENCASE,我们使用 k 折交叉验证来迭代地拆分数据,并多次运行交叉验证。 最终的平均 F1 分数会更可信。 我们使用不同的设置构建多个 ENCASE 模型以选择最佳模型。 最后的 ENCASE 集成了 5 个 XG-Boost,每个 XGBoost 有 3000 棵树,最大深度 = 9,最小子权重 = 3。
3.结果
在这个部分,我们会先比较不同特征的有效性,然后我们会评估4分类任务上的表现。
3.1 特征重要性
我们通过每个决策树中使用的平均信息增益来评估特征重要性,结果在下表:
我们可以看到专家提出的大多数统计特征和医学特征都是有效的。 CNN 和 RNN 的深度特征都非常有效,这一点不值一提,深度 CNN 特征在 Top-20 中甚至有 17 个。
3.2 性能
我们通过多次运行交叉验证来评估每种方法。 测量值与 F1 分数相关 详细信息可以在 【8】 中找到。 结果如表4所示。在Features栏中,E代表专家特征,C代表中心波特征,D代表深度特征:
可以看到ENCASE比其他的表现要好,注意标签P太不平衡了所以结果很不稳定。更多的可信的结果应该是F1、FN、FA、FOF_1、F_N、F_A、F_OF1、FN、FA、FO。
4.结论
在本文中,我们提出了一个集成分类器 ENCASE,将专家特征、中心波特征和深度特征结合在一起进行 ECG 分类。 ENCASE 是一个灵活的框架,支持增量特征提取和分类器更新。 实验表明 ENCASE 的性能优于其他方法。
(四十七:2021.08.25)《ENCASE:使用专业特征和深度卷积网络相结合来对ECG进行分类》相关推荐
- 吴恩达deeplearning.ai系列课程笔记+编程作业(11)第四课 卷积神经网络-第二周 深度卷积网络:实例探究(Deep convolutional models: case studies)
第四门课 卷积神经网络(Convolutional Neural Networks) 第二周 深度卷积网络:实例探究(Deep convolutional models: case studies) ...
- 2021.08.25学习内容torch.clamp(input, min, max, out=None) → Tensor,torch.mm(matrix multiply)
学习pytorch时,看到了mm和clamp,不甚理解,其他地方也看到过,所以具体了解一下 前向传递:计算预测yh = x.mm(w1)h_relu = h.clamp(min=0) 把 h 张量的最 ...
- (Deep learning)深度卷积网络实战——第四部分
2.10 数据增强(Data augmentation) 大部分的计算机视觉任务使用很多的数据,所以数据扩充是经常使用的一种技巧来提高计算机视觉系统的表现.我认为计算机视觉是一个相当复杂的工作,你需要 ...
- (四十五:2021.08.05)《利用深度学习对ecg信号进行分割》
<Deep Learning for ECG Segmentation><利用深度学习对ecg信号进行分割> 讲在前面 摘要 1. 介绍 2. 算法 2.1 预处理 2.2 神 ...
- 《安富莱嵌入式周报》第227期:2021.08.23--2021.08.29
往期周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 ...
- (三十四 :2021.01.12)MICCAI 2015 追踪之论文纲要
讲在前面 PART I.PART II和PART III. 论文目录 PART I Advanced MRI: Diffusion, fMRI, DCE(高级MRI:扩散,fMRI,DCE) 概要 1 ...
- 武汉大学计算机转专业2021,通知|关于做好2021年普通本科生转专业工作的通知...
原标题:通知|关于做好2021年普通本科生转专业工作的通知 各学院(系): 2021年普通本科学生转专业工作即将开始,为做好此项工作,现就有关事项通知如下: 一.学生转专业按照<普通高等学校学生 ...
- Diabetes 糖尿病及其并发症.|2021/1/25(未完待续)
目录 前言: 正文: ①宏观严重性: ②普遍状况:" 三多一少": ③定义 : ③胰岛素(Insulin,一种激素(harmone)) ④引出糖尿病病理: 1> 1-型糖尿病 ...
- 【Yolov5】1.认真总结6000字Yolov5保姆级教程(旧版本2021.08.03作为备份)
旧版本2021.08.03 新版本https://blog.csdn.net/m0_53392188/article/details/119334634 以作备份 目录 一.前言 二.学 ...
最新文章
- python interpolate_python interpolate插值实例
- asp.net core web mvc之异常
- 显示当前行号、文件名和函数名(二)
- 浏览器兼容console对象的简要解决方案
- git拉取tag代码_10年经验17张图带你进入gitflow企业项目代码版本管理的最佳实践...
- 如何成为一枝独秀的技术领导者?
- STM32-正弦波可调(50HZ~20KHZ可调、峰峰值0~3.3V可调)
- 点云统一法线方向(未知视点)
- 【829】【06 信息检索策略和方法】
- 2022年大数据技能大赛国赛(模块A,B)
- 45、链栈_LinkStack
- GetDc与GetWindowDc的含义
- 计算机上机考试能复制粘贴吗?
- AngularJS之有序列表
- python 读写csv文件(创建、追加、覆盖)_python 读写csv文件(创建,追加,覆盖)...
- Shelve Silently - 静默搁置 (Git 功能)
- java 文件转换成流_java -IO流_转换流
- windows+mysql集群搭建-三分钟搞定集群
- 三维green公式_按三维问题证明格林公式
- linux 内核CMA笔记
热门文章
- 设计模式-结构模式-装饰器模式 decorater
- 魅族7.0以上系统怎么样不root激活Xposed框架的经验
- 串口通信实验——RS-232
- 测试tensforflow的pb格式模型
- 【python解决SQLAlchemy+MySQL插入数据时报警告Warning: (1366, “Incorrect string value: ‘\\xD6\\xD0\\xB9\\xFA\\xB】
- C++ char指针(字符指针)及其输出问题
- 法大大首批通过ISO 22301:2019认证
- 思科网络学院-网络互联-第七章
- 基于jquery实现table内部数据排序
- linux天文软件下载,天文爱好者控:八款优秀的Linux天文学软件