【2018】Inter-patient ECG Classification Using Deep Convolutional Neural Networks

论文阅读笔记 

0.Abstract

作者提出了一个使用深度卷积神经网络(Deep CNN)自动对住院病人ECG信号进行分类的Method,主要关注对Inter-patient arrhythmias的分类,最终达到的效果如下表所示,达到了与manual feature engineering同等的水平。

Classification Sensitivity Positive Predictivity False Positive Rate
normal heartbeats 92% 97% 23%
supraventricular ectopic beat 62% 56% 2%
ventricular ectopic beat 89% 51% 6%


注意:心电数据分类的问题 Inter-patient Or Intra-pateint

①Inter-patient :对不同的病人(records)进行特征提取和分类,即The data from a patient used in the test phase is not used to train the model;

②Intra-patient :通过训练同一个病人的部分心拍,再对同一个病人的其余心拍进行测试。

 

1 Introduction

ECG信号的获取分3类:in-the-person、on-the-person和off-the-person ECG-measurement,本文采用on-the-person测量法。

①in-the-person:测量装置被植入病人体内;

②on-the-person:使用附着在病人皮肤的电极测量;

③off-the-person:无需皮肤接触,e.g. capacitive(电容性的) measurement。

ECG信号由3种波组成:P波、QRS波和T波。

                                  

P波 心房除极
PR段 心电在房室结、希氏束、左右束支传导
P-R间期 心房除极开始至心室除极开始
QRS波群 心室除极
ST段 心室缓慢复极
### 关于使用PyTorch进行ECG分类 对于希望利用PyTorch处理ECG数据并实现分类任务的研究者而言,选择合适的资源至关重要。尽管存在多种框架可供选择,但对于那些偏好简洁性和可读性的开发者来说,某些工具可能更受欢迎[^2];然而,在特定领域如医疗健康中的应用,则需考虑专门针对该类问题设计的方法和技术。 #### 资源推荐 1. **官方文档与教程** 官方提供的指南通常是最可靠的学习起点之一。PyTorch官方网站提供了丰富的入门资料,包括但不限于图像识别、时间序列分析等领域内的实例项目。虽然这些例子未必直接涉及ECG信号处理,但其中所讲解的概念和技术同样适用于其他类型的连续型输入数据集。 2. **学术论文及开源代码库** 许多研究团队会将其研究成果发布到预印本服务器arXiv上,并附带完整的实验设置说明和训练模型所需的全部文件。通过搜索引擎查找关键词组合“ECG classification pytorch”,能够发现多个有价值的参考资料。例如,“CardioNet: A Deep Neural Network for ECG-based Heartbeat Classification Using Convolutional and Recurrent Layers”一文中不仅描述了一种有效的架构设计方案,还分享了一个基于PyTorch构建的心跳检测系统的具体实施细节[^3]。 3. **在线课程平台** Coursera、Udemy等教育网站经常推出由行业专家讲授的专业级编程课件。这类课程往往涵盖了从基础理论到高级实践技巧在内的广泛主题范围,适合不同程度的学习者按需选取感兴趣的部分深入探究。“Deep Learning Specialization by Andrew Ng on Coursera”系列中就包含了有关如何运用深度神经网络解决生物医学工程难题的教学视频片段。 4. **社区论坛交流** 加入GitHub Issues页面下的讨论组或是Stack Overflow这样的问答站点可以帮助快速定位常见错误原因并获得即时反馈建议。当遇到难以自行克服的技术障碍时,向活跃于此处的大牛们求助不失为一种明智之举。 ```python import torch from torchvision import datasets, transforms from torch.utils.data.sampler import SubsetRandomSampler import numpy as np def load_ecg_data(batch_size=64): transform = transforms.Compose([ transforms.ToTensor(), # Add normalization specific to your dataset here. ]) train_dataset = datasets.DatasetFolder(root='./data/train', loader=np.load, extensions='.npy', transform=transform) valid_dataset = datasets.DatasetFolder(root='./data/valid', loader=np.load, extensions='.npy', transform=transform) num_train = len(train_dataset) indices = list(range(num_train)) split = int(np.floor(0.2 * num_train)) train_idx, valid_idx = indices[split:], indices[:split] train_sampler = SubsetRandomSampler(train_idx) valid_sampler = SubsetRandomSampler(valid_idx) train_loader = torch.utils.data.DataLoader( train_dataset, batch_size=batch_size, sampler=train_sampler) valid_loader = torch.utils.data.DataLoader( valid_dataset, batch_size=batch_size, sampler=valid_sampler) return train_loader, valid_loader ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值