ECG分析:基于深度学习的ECG心律失常分类入门(5)

数据和模型完成了之后,就是训练和测试了,这里顺带提一下,MITAB的数据是48条记录的,而我们在做ECG分析的时候,都是去掉了四条记录(102,104,107,217)所以最后的数据是44条记录的。
所有各类心拍样本数如下:

五折交叉验证,分别做了4分类和5分类。另外,论文中采用敏感度(Se)和正预测率(+P)作为评估指标。

下面展示一下结果:
实验结果评估和分析
1.实验结果
由于网络本身的随机性,每次的结果可能有一些偏差,5折交叉验证之后,也分别计算了平均Acc和F1。最后给出了相对好一点的混淆矩阵和具体的指标。
(1) 五分类(N,SVBE,VEB,F,Q)结果:
平均Acc=99.07%, 平均F1=0.77
归一化的混淆矩阵:

N:
Se=0.996061
+P=0.992263
SVEB:
Se=0.814607
+P=0.979577
VEB:
Se=0.970014
+P=0.979577
F:
Se=1.0
+P=0.979072
Q:
Se=0.0
+P=nan

(2) 四分类(N,SVBE,VEB,F)结果:
平均Acc=99.0%, 平均F1=0.95
归一化的混淆矩阵:

N:
Se=0.995605
+P=0.992019
SVEB:
Se=0.802792
+P=0.886320
VEB:
Se=0.974252
+P=0.982456
F:
Se=1.0
+P=0.993243
(3)文章中的四分类结果:
混淆矩阵:

性能指标:


2.结果分析
(1) 从数据和分类结果上看,样本类别不平衡问题严重,这也是面临疾病分类问题的常有的情况,毕竟异常的是占少数的,所以大部分工作也是去掉了对Q类心拍的四分类问题。这类问题一方面是从数据层面入手,比如过采样和欠采样,同时带来的问题是可能会出现过拟合;另一方面是从算法层面入射,比如修改损失函数,如:Sellami A, Hwang H. A robust deep convolutional neural network with batch-weighted loss for heartbeat classification[J]. Expert Systems with Applications, 2019, 122: 75-84.这篇文章作者是还是在inter-patient的情况下做的,通过设计一个动态的基于Batch 的加权损失,得到了良好结果,这里就不展示了,感兴趣的可以自行查看。
(2) 本次探讨是基于intra-patient的例子,前面已经说了,intra-patient的模式忽略了个体差异性,带来的直接影响就是训练和测试的数据不一定存在分布不一致的情况。也就是说,难度大大降低了,其次,基于这种模式的研究是没有太多现实价值的。毕竟在临床研究中,一般是通过以往的诊断经验去分析新的别人数据,这个个体差异性就特别明显了。所以,做此类研究还是着眼于inter-patient模式下进行,或者patient-specific,后者难度稍微低一点。所以说,一开始就有提到,这是一个入门的小例子。
(3) 还有一点,本次实验是基于基准点检测的心拍分类,如果使用任意节拍,或者一个长序列段,难度会有所上升,而且也要尽量摆脱基准点检测,因为准确率不可能百分之百,鲁棒性也有要求,其次是在操作过程上尽可能简单和稳定,这也是做所谓“深度医疗”的初心所在。
总结
总的说来,关于这方面的研究还是很有提升空间的,也相信会有越来越多优秀的方法被提出来。
技术有限,如果存在表述和方法错误等问题,敬请指导。QQ:846545867 本次操作的所有代码将会整理上传至个人GitHub https://github.com/cay846545867,代码极其简单易懂。

基本上就这样,觉得还行就给个赞和GitHub给个Star,谢谢!

ECG分析:基于深度学习的ECG心律失常分类入门(5)相关推荐

  1. ECG分析:基于深度学习的ECG心律失常分类入门(3)

    ECG分析:基于深度学习的ECG心律失常分类入门(3) 数据库的Python读取 本次读取数据,用的是一款专门读取MITAB数据的工具--WFDB-python,WFDB包下载 ,全称是 Python ...

  2. ECG分析:基于深度学习的ECG心律失常分类入门(1)

    ECG分析:基于深度学习的ECG心律失常分类入门(1) 写作动机 由于受突发疫情的影响,开学时间推迟了(在此特向奋斗在前线的各行各业的工作者们致以崇高的敬意!).前天晚上刚好看到一篇新出的论文,跟自己 ...

  3. ECG分析:基于深度学习的ECG心律失常分类入门(4)

    ECG分析:基于深度学习的ECG心律失常分类入门(4) 在搭建模型之前,讲一下本次任务需要区分的类别,MITAB根据心拍类型划分了14个小类: 也可以用wfdb查看: wfdb.show_ann_la ...

  4. ECG分析:基于深度学习的ECG心律失常分类入门(2)

    ECG分析:基于深度学习的ECG心律失常分类入门(2) 数据来源:MIT-BIH Arrhythmia Database 数据库介绍和获取 前面已经对ECG信号有了简单的认识,那么现在来简单看看我们的 ...

  5. Data Augmentation for Deep Learning-based Radio ModulationClassification解读(基于深度学习的无线电调制分类数据扩充)

    摘要:深度学习最近被应用于自动分类接收无线电信号的调制类别,而无需人工经验.然而,训练深度学习模型需要大量的数据.训练数据不足会导致严重的过度拟合问题,降低分类精度.为了处理小数据集,数据增强被广泛应 ...

  6. 深度医疗(1) - 基于深度学习心电图(ECG)特征识别

    深度医疗是笔者基于深度学习的医学项目应用开发实践,经过整理输出了文档和本系列课程,希望通过分享可以和大家共同讨论.相互学习,探索更好的解决方案.笔者是一名普通的大数据和人工智能领域从业者,过程中如有错 ...

  7. Python_001_旅游评论情感倾向性分析_000_分析(基于深度学习的微博评论情感倾向性分析_胡西祥)论文

    Python_001_旅游评论情感倾向性分析_000_分析论文-2020-8-21 知网链接:基于深度学习的微博评论情感倾向性分析 - 中国知网 (cnki.net) ps.只做分析概括 目录 一.论 ...

  8. ECG ×AI: 机器/深度学习的ECG应用入门(4)

    传统机器学习:特征工程+分类器 1.引言 经过前面的工作,我们已经解决了数据来源和识别对象问题.那么接下来,我们就要进行机器/深度学习算法的应用了.由于本人写这些博文的目的不在于讲解机器/深度学习理论 ...

  9. ECG ×AI: 机器/深度学习的ECG应用入门(1)

    前言 你好,我是研究ECG算法的搬砖工Winham.目前搞这个方向已经挺长时间了,总想着把自己的一些入门经验分享一下,却不知道从何下手.说实话,关于ECG算法的研究相对冷门一些,网络上系统的资料也比较 ...

最新文章

  1. Android RecyclerView 基本使用
  2. python精要(65)-类(2)-构造函数
  3. cgi备份还原和ghost有什么区别_装系统教程!如何用ghost安装系统(下)!小白也能变装机大神!...
  4. python实现基于八方向判断的断裂连接
  5. C/C++各种系统开发环境搭建
  6. LeetCode 第 19 场双周赛(231 / 1120,前20.6%)
  7. 荷兰政府用大数据预测天气预防自然灾害,他们是怎么做的?
  8. matplotlib中改变字体的方法
  9. CSS基础-标签显示模式(display)【学习笔记】
  10. 如何去除图片背景变透明?在线抠图软件怎么用?
  11. Bat脚本 -(一)- echo/ echo off/ echo on/ @ / start / pause / rem
  12. Mysql(多级分销)无限极数据库表设计方法
  13. React使用高德地图 (react-amap)(一)
  14. 自然码双拼 使用总结
  15. 关于linux python3.7版本 No module named ‘_ssl‘报错
  16. 计算机无法关闭密码保护共享,xp系统怎么关闭密码保护共享
  17. 刷车机器人_各位车主注意了!这样的洗车很伤爱车!99%的人都不知道!
  18. Linux下PhysX3.4编译和环境搭建
  19. python元组拆包
  20. C盘不断变大解决办法

热门文章

  1. 攒机的“三大忌律 八项注意”
  2. java基于ssm+vue+elementui的足球联赛会报名系统
  3. 线上CPU负载过高处理
  4. Matlab游戏制作代码
  5. 从原理到代码:大牛教你如何用 TensorFlow 亲手搭建一套图像识别模块 | AI 研习社
  6. Unity3D入门第一天:初识Unity
  7. Nwafu-OJ-1485 Problem o C语言实习题八——单链表结点的阶乘和
  8. bzoj 4997: [Usaco2017 Feb]Why Did the Cow Cross the Road III(Pu1 2018.10.1)
  9. pgsql设置字段自增
  10. 来了,又一个以版权异议商标的案例