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

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

数据和模型完成了之后,就是训练和测试了,这里顺带提一下,MITAB的数据是48条记录的,而我们在做ECG分析的时候,都是去掉了四条记录(102,104,107,217)所以最后的数据是44条记录的。
所有各类心拍样本数如下:
ECG分析:基于深度学习的ECG心律失常分类入门(5)_第1张图片
五折交叉验证,分别做了4分类和5分类。另外,论文中采用敏感度(Se)和正预测率(+P)作为评估指标。
ECG分析:基于深度学习的ECG心律失常分类入门(5)_第2张图片
下面展示一下结果:
实验结果评估和分析
1.实验结果
由于网络本身的随机性,每次的结果可能有一些偏差,5折交叉验证之后,也分别计算了平均Acc和F1。最后给出了相对好一点的混淆矩阵和具体的指标。
(1) 五分类(N,SVBE,VEB,F,Q)结果:
平均Acc=99.07%, 平均F1=0.77
归一化的混淆矩阵:
ECG分析:基于深度学习的ECG心律失常分类入门(5)_第3张图片
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
归一化的混淆矩阵:
ECG分析:基于深度学习的ECG心律失常分类入门(5)_第4张图片
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)文章中的四分类结果:
混淆矩阵:
ECG分析:基于深度学习的ECG心律失常分类入门(5)_第5张图片
性能指标:

ECG分析:基于深度学习的ECG心律失常分类入门(5)_第6张图片
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,谢谢!

你可能感兴趣的:(笔记)