信息速览

MIMIC-IV-ECG — 院内 12 导联心电波形库 AI-Ready Wikipedia
INFOBOX
| 字段 | 内容 |
|---|---|
| 数据集名称 | MIMIC-IV-ECG:诊断心电图匹配子集 |
| 英文全称 | MIMIC-IV-ECG: Diagnostic Electrocardiogram Matched Subset |
| 别名/简称 | MIMIC-IV-ECG 模块;mimic-iv-ecg |
| 疾病分类 | ICD-11:BC81.3 心房颤动、BC63.0 一度房室传导阻滞、BA41 急性心肌梗死 等(详见 §2.1) |
| SNOMED CT | 49436004(心房颤动)、6748004(一度房室传导阻滞)、57054005(急性 STEMI)等(详见 §2.1b) |
| 数据模态 | 12 导联诊断心电图波形(10 秒 / 500 Hz)+ 心电卡机器测量 + 机器文本报告 |
| AI 任务类型 | 心律失常/ST 段分类、ECG 基础模型预训练、波形-EHR 多模态关联 |
| 样本总数 | 800,035 条 ECG 记录(社区重计;官方口径约 80 万条) |
| 数据大小 | 解压约 90.4 GB(ZIP 33.8 GB,v1.0) |
| 数据格式 | WFDB(.dat/.hea 成对)+ CSV(3 张查找表) |
| 许可证 | ODbL v1.0(Open Data Commons Open Database License v1.0) |
| 访问级别 | 开放(v1.0 正文无需凭证;关联 MIMIC-IV/Note 模块需 PhysioNet 凭证) |
| DUO 标签 | GRU(通用研究使用) |
| 语言 | 英文(机器报告文本) |
| 首发日期 | 2022-12-23(v0.1) |
| 最后更新 | 2023-09-15(v1.0;截至 2026-09 仍为最新版本) |
| 发布机构 | MIT 计算生理学实验室(PhysioNet)× 贝斯以色列女执事医疗中心(BIDMC) |
| 官方主页 | PhysioNet 项目页 |
| 下载地址 | PhysioNet 文件区 |
| DOI | 10.13026/4nqg-sb35(v1.0) |
| 引用次数 | 180+(Google Scholar,截至 2026-09) |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— 社区基准划分(ECG-FM)与官方数据字典齐备;扣分:标签为机器自由文本需自行解析、无官方训练划分 |
| 页面状态 | published |
§0 E-E-A-T 与审核声明
医学审核:[千方病案医学编辑部] 交叉审核:§2 医学背景(ICD-11/SNOMED 编码映射、心律失常流行病学)、§7 偏倚分析与公平性评估。审核日期:2026-09-05。
数据工程审核:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。审核日期:2026-09-05。
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。MIMIC-IV-ECG v1.0 正文以 ODbL v1.0 开放获取;其关联模块 MIMIC-IV 与 MIMIC-IV-Note 仍要求完成 CITI Program 的 “Data or Specimens Only Research” 培训、通过 PhysioNet 凭证化申请并签署数据使用协议(DUA)。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 📌 30 秒速览
这是什么? MIMIC-IV-ECG 是贝斯以色列女执事医疗中心(BIDMC)在 2008-2019 年日常诊疗中采集的全部诊断心电图集合:约 80 万条 12 导联、每条 10 秒、500 Hz 采样的心电波形,来自约 16 万名患者。它发布在 PhysioNet 上,与著名的 MIMIC-IV 重症监护数据库共用同一套患者编号——也就是说,每一条心电波形背后,可能还挂着同一患者在同一家医院的诊断、用药、检验甚至出院结局。
为什么重要? 在它出现之前,公开的 12 导联心电数据集最大的也只有几万条记录(如 PTB-XL 的 21,837 条),而且大多只有心电波形和诊断标签,缺少患者的其他临床信息。MIMIC-IV-ECG 直接把规模抬升了一个数量级,并且是"波形 + 全院电子病历"成对出现的稀缺资源——这正是训练大规模心电基础模型和做"从心电图读出全身疾病"类研究最需要的东西。
我能用它做什么? 你可以:用 80 万条波形做自监督预训练,再迁移到 PTB-XL 等小数据集上做心律失常分类;把心电波形与 MIMIC-IV 的住院记录关联,研究心电图对院内死亡、低射血分数等结局的预测价值;或者把机器测量(RR 间期、电轴等)当作辅助特征。注意:它的标签来自心电卡自动报告(弱标签),做严肃诊断结论前需要自行构建高质量标注。
§1.1 摘要
MIMIC-IV-ECG(Diagnostic Electrocardiogram Matched Subset)由 MIT 计算生理学实验室(MIT Lab for Computational Physiology)与 BIDMC 于 2022-12-23 首发(v0.1),2023-09-15 发布 v1.0 正式版并开放获取(Gow et al., 2023, PhysioNet)。工程上,BIDMC 各诊疗区(急诊、病房含 ICU、门诊)的心电卡按常规流程采集 12 导联诊断 ECG;脱敏时患者的病历号(MRN)被位移映射为 MIMIC-IV 的 subject_id,从而完成波形与临床数据库的患者级匹配;采集日期整体偏移,患者内相对时序保留。随数据发布三张查找表:record_list.csv(80 万条波形路径索引)、machine_measurements.csv(心电卡自动生成的 RR 间期、P/QRS/T 间期、三轴等全局测量与机器文本报告)、waveform_note_links.csv(指向 MIMIC-IV-Note 模块中心脏科医生自由文本报告的链接)。约 55% 的 ECG 与住院记录时间重叠,约 25% 与急诊就诊重叠,其余为门诊或无对应就诊记录的检查;约 5% 的可用 ECG 被官方扣留作为隐藏测试集。社区精确重计规模为 800,035 条记录、161,352 名患者(ECGBench 审计,截至 2026-09)。
§1.2 战略价值
维度一:超大规模弱标签波形底座。 与 PTB-XL(21,837 条、专家 SCP 标注)不同,MIMIC-IV-ECG 以约 37 倍的波形量提供"规模换精度"的选项:947 种机器报告首行中有清晰的长尾分布(前 12 类覆盖 80.3%),足以支撑掩码重建、对比学习等自监督范式的预训练。开源 ECG 基础模型 ECG-FM(150 万条预训练语料的主体)与 TolerantECG 均以它为预训练主力,并在 PTB-XL 迁移上取得宏 AUC 0.966-0.984 区间的成绩,验证了该底座的可迁移性。
维度二:波形 × EHR 的患者级对齐平台。 它是极少数能与同机构全院 EHR(MIMIC-IV-Hosp/ICU/Note)以 subject_id/study_id 严格对齐的心电资源:同一患者的 ECG 时间可对齐到入院、用药、化验与结局事件,使"ECG 预测 LVEF 降低""ECG 预测院内死亡"这类跨模态任务拥有数万级样本。相比之下,PTB-XL、CPSC 2018、Chapman-Shaoxing 都只有孤立的心电文件与标签。
维度三:真实世界部署压力的预演场。 单中心、多厂商设备、0.9% 质量警告记录、45% 无对应住院的门诊样本——这些在"干净研究数据集"里被刻意剔除的元素,恰好构成本数据集的不可替代性:在它上面训练与消融过的模型,对导联缺失、噪声、设备漂移与选择偏倚的耐受度结论,比在 PTB-XL 上得到的更接近真实部署条件。TolerantECG 等工作专门针对"不完美心电图"设计方法并以本集为训练源,正是这一价值方向的体现。
§1.3 同类数据集横向对比
| 数据集 | 规模 | 模态/规格 | 标注 | 与本数据集的差异化 |
|---|---|---|---|---|
| MIMIC-IV-ECG | 800,035 条 / 161,352 名患者 | 12 导联,10 s,500 Hz,WFDB | 机器文本报告(弱标签)+ 机器测量;心脏科文本报告在 MIMIC-IV-Note | 单中心院内全部诊断 ECG;可关联全院 EHR;ODbL 开放 |
| PTB-XL | 21,837 条 / 18,885 名患者 | 12 导联,10 s,500 Hz | 专家 SCP-ECG 编码(强标签) | 多中心、标签质量最高;规模小约 37 倍;标准迁移基准 |
| Chapman-Shaoxing | 10,646 条 | 12 导联,10 s,500 Hz | 11 种节律 + 44 种诊断(专家) | 中国单中心(宁波第一医院);常见于多数据集联合训练 |
| CODE-15% | 345,189 条 | 12 导联,7-10 s,400 Hz | 6 类弱标签 + 44 类子集 | 巴西远程心电网络;规模第二大的公开选择,但无 EHR 关联 |
| PhysioNet/CinC 2021 | 约 88,000 条 | 12 导联为主,多源汇编 | 多来源、质量不一 | 竞赛合集(六库四国),ECG-FM 用作辅助预训练 |
§1.4 版本时间轴
| 版本 | 发布日期 | 关键变化 | 访问方式 |
|---|---|---|---|
| v0.1 | 2022-12-23 | 首次发布:波形 + reports.csv 自由文本心脏科报告 | 凭证化(credentialed) |
| v0.2 | 2023-02-08 | 补充约 60 万+ 份去标识心脏科报告;修正目录结构 | 凭证化 |
| v0.3 | 2023-07-21 | 补充 machine_measurements.csv 全局机器测量 | 凭证化 |
| v1.0 | 2023-09-15 | 移除自由文本报告(改由 waveform_note_links.csv 链接 MIMIC-IV-Note);访问改为开放 | 开放(ODbL) |
§1.5 典型应用场景
- ECG 基础模型预训练:以 80 万条波形做自监督预训练(对比学习/掩码重建),再微调到 PTB-XL 六级标签或 MIMIC-IV-ECG 自身基准(ECG-FM、TolerantECG 范式)。
- 心律失常弱监督分类:以机器报告首行解析标签(房颤、一度 AV 阻滞、ST 抬高提示等),患者级分组评估,构建大规模筛查模型。
- 波形 × EHR 多模态研究:经 subject_id 关联 MIMIC-IV-Hosp/ICU,用 ECG 预测低射血分数(LVEF≤40%)、院内死亡或复查事件,样本量远超单模态队列。
- ST 段抬高型心肌梗死(STEMI)提示挖掘:报告首行含 “consider acute st elevation mi” 的 8,516 条记录可作为 STEMI 提示检测的弱标签种子集。
- 导联缺失/噪声鲁棒性研究:单中心多厂商设备(Burdick/Spacelabs、Philips、GE)与 0.9% 的数据质量警告记录,天然构成评估模型对不完美信号耐受度的测试床。
- 心电报告文本挖掘:80 万条机器报告 +(经凭证)60 万+ 条心脏科医生报告构成两代判读文本语料,可研究"算法判读 vs 人工判读"的话语差异,或训练波形→报告的自动生成模型。
§2 医学背景
§2.1 ICD-11 编码映射表
数据集标签源于心电卡文本报告,覆盖以下高频疾病/征象(ICD-11 编码依据 WHO ICD-11 循环系统章节):
| 心电报告术语 | ICD-11 编码 | ICD-11 中文名称 | 数据集内出现位置 |
|---|---|---|---|
| Atrial fibrillation(含 with RVR) | BC81.3 | 心房颤动 | 首行 41,209 条(5.2%) |
| 1st degree a-v block | BC63.0 | 一度房室传导阻滞 | 首行约 3.7%(borderline + 明确) |
| Left bundle branch block 类术语 | BC63.4 | 左束支阻滞 | 机器报告长尾内 |
| Sinus bradycardia | BC80.1 | 窦性心动过缓 | 首行 71,034 条(8.9%) |
| Sinus node dysfunction / Sick sinus | BC80.2 | 窦房结功能障碍 | 机器报告长尾内 |
| Ventricular tachycardia 类术语 | BC71.0 | 室性心动过速 | 机器报告长尾内 |
| Consider acute ST elevation MI | BA41 | 急性心肌梗死 | 首行 8,516 条(1.1%,提示性表述) |
| Ventricular pacing | BC63.2* | (起搏节律无独立 ICD-11 病类码,临床归入传导障碍相关结局) | 首行 8,445 条(1.1%) |
注:窦性心动过速在 ICD-11 无独立病类码(BC81.6 仅指不适当窦性心动过速),本表从略;* 起搏节律按报告术语处理。
§2.1b SNOMED CT 映射表
| 标签 | SNOMED CT 码 | 术语(英文) | 说明 |
|---|---|---|---|
| 心房颤动 | 49436004 | Atrial fibrillation (disorder) | 数据集内最大病理类 |
| 窦性心动过缓 | 49710005 | Sinus bradycardia (disorder) | 第二大异常类 |
| 窦性心动过速 | 3424008 | Sinus tachycardia (disorder) | 常为生理/应激反应 |
| 一度房室传导阻滞 | 6748004 | First degree atrioventricular block | PR>200 ms |
| 左束支阻滞 | 407563003 | Left bundle branch block | QRS≥120 ms 伴特征形态 |
| 急性 ST 段抬高型心肌梗死 | 57054005 | Acute ST elevation myocardial infarction | 报告为提示性表述,非确诊 |
| 心肌梗死 | 22298006 | Myocardial infarction (disorder) | 关联 MIMIC-IV ICD 编码可回溯 |
§2.2 疾病简介与流行病学
数据集标签谱系以节律异常为主。心房颤动是最重要的病理类:成人患病率约 1%-2% 且随年龄显著上升,是缺血性卒中的主要可预防危险因素,机器报告将其列为 5.2% 记录的首行结论(41,209 条),另有 1.9% 为房颤伴快速心室率(rapid ventricular response)。缓慢性心律失常方面,成人静息心率低于 60 次/分传统上定义为心动过缓,2018 ACC/AHA/HRS 指南将有临床意义的阈值定在低于 50 次/分(Kusumoto et al., 2019);本数据集中窦性心动过缓占首行 8.9%,反映了住院人群(用药、迷走张力、传导系统退行性变)的高检出率,而窦房结功能障碍在 45 岁以上人群的发病率约 0.8/1,000 人年。一度房室传导阻滞(PR 间期超过 200 ms)在住院与老年人群中常见,本数据集中"borderline + 明确一度 AV 阻滞"合计约占首行 3.7%。急性心肌梗死:约 1.1% 的报告首行出现"consider acute st elevation mi"提示,这是心电卡基于 ST 段形态的自动警报,需结合肌钙蛋白与临床判读确证——它也因此成为 STEMI 检测算法天然困难样本的来源。
住院人群的特殊性值得单独强调:常规诊断 ECG 的社区筛查研究中正常窦性心律占比远高于住院人群,而本数据集 47.7% 的首行为单纯"sinus rhythm",介于社区队列与 ICU 队列之间——这与"约 55% 与住院重叠、25% 与急诊重叠、其余为门诊"的构成一致。对建模者而言,这意味着:以本数据集训练的"正常/异常"判别器,其先验分布天然偏向院内场景;若目标部署场景是体检筛查,需要按 §5 重加权或在社区人群中重新校准阈值。此外,起搏节律(ventricular pacing,1.1%)、窦性心律不齐(1.7%)等类别虽然占比不高,但绝对量均在万条级,足以支撑稀有节律的弱监督学习——这是 PTB-XL 等小型集无法提供的。
§2.3 临床任务定义
| 任务类型 | 输入 | 输出 | 数据集支撑 |
|---|---|---|---|
| 筛查(rhythm screening) | 12 导联波形 | 节律二/多分类(窦性 vs 房颤等) | 机器报告首行弱标签 |
| 诊断分类 | 12 导联波形 | 多标签诊断(AV 阻滞、束支阻滞、ST 改变等) | 报告全文 + MIMIC-IV-Note 心脏科报告 |
| 分级/定量 | 12 导联波形 | 间期与电轴回归(RR、PR、QRS、QT 相关) | machine_measurements.csv 数值列 |
| 预后预测 | 波形 + EHR | LVEF≤40%、院内死亡、再入院等 | 经 subject_id 关联 MIMIC-IV-Hosp/ICU |
| 多模态对齐 | 波形 + 文本 | 波形-报告跨模态检索/生成 | waveform_note_links.csv → MIMIC-IV-Note |
§2.4 患者人群画像
| 维度 | 内容 |
|---|---|
| 来源机构 | Beth Israel Deaconess Medical Center(BIDMC),波士顿,单中心 |
| 采集时间 | 2008-2019 年(日期整体偏移脱敏) |
| 就医类型 | 急诊、住院(含 ICU)、门诊;约 55% ECG 与住院记录重叠、约 25% 与急诊就诊重叠 |
| 年龄/性别/种族 | 模块本身未随附人口学统计;需经 subject_id 关联 MIMIC-IV patients 表获取(不含新生儿) |
| 检查频率 | 92.8% 的研究来自多次检查的患者,单人最多 260 条(随访/复查密集) |
| 扣留 | 约 5% 可用 ECG 由官方扣留作隐藏测试集 |
§2.5 临床价值
对 AI 而言,这批数据的价值在于还原"真实诊疗流"里的心电图:它不是精心筛选的研究队列,而是包含常规体检级门诊 ECG、急诊胸痛复检、术后随访与危重症每日复查的全谱系样本。这带来三点直接价值:其一,弱标签覆盖了临床实际会遇到的全部长尾表述(947 种首行),比人工挑选的干净标签集更贴近部署分布;其二,机器测量(间期/电轴)与波形同源共存,可用于训练形态-测量一致性校验器或当作用于监督的解剖先验;其三,与 MIMIC-IV 的对齐使"心电图作为全身疾病窗口"(如低射血分数、电解质紊乱、高龄衰弱)这类前瞻性命题有了可回溯的纵向队列。
§2.6 金标准对照表
| 标注层 | 划分 | 标注方式 | 标注者 | 性质 |
|---|---|---|---|---|
| 机器文本报告(report_#) | 随波形全量提供 | 心电卡自动算法生成 | 设备算法(GE/Mortara 类判读引擎等,多厂商) | 弱标签,含长尾与质量警告行 |
| 机器数值测量 | 随波形全量提供 | 自动波形测量 | 设备算法 | 客观测量;"无法测量"以整数哨兵值编码 |
| 心脏科医生报告 | v1.0 起移至 MIMIC-IV-Note,经 waveform_note_links.csv 链接 | 人工阅图后口述/键入 | 心脏科医生(院内会诊流程,非全部 ECG 均有) | 专家标签;自由文本,需自行解析为结构化标签 |
§3 数据集规格
§3.0 版本抉择矩阵
| 你的需求 | 推荐版本 | 大小 | 理由 |
|---|---|---|---|
| 快速跑通预训练/基准复现 | v1.0(开放) | 90.4 GB | 无需凭证,波形 + 机器测量 + 注记链接齐全 |
| 需要心脏科医生自由文本做标签蒸馏 | v0.2/v0.3 + MIMIC-IV-Note | v0.3 约 90 GB + Note 模块 | 凭证化获取;v0.2 含 60 万+ 份报告,v1.0 起经 note_id 关联 |
| 只想浏览样例/教学演示 | MIMIC-IV-ECG Demo | 数百 MB 级 | 659 条开放样本,无机器测量表,不具代表性 |
| 与住院结局联合建模 | v1.0 + MIMIC-IV v2.2 | 90.4 GB + 约 7 GB | subject_id 直接对齐 hosp/icu 模块 |
| 校验文件完整性 | 任意版本 + SHA256SUMS.txt | 校验文件 167.9 MB | 官方提供全量哈希清单 |
§3.1 模态详情
- 导联体系:标准 12 导联——肢体导联 I、II、III、aVR、aVL、aVF + 胸前导联 V1-V6。⚠️ 注意:存储在 .hea 头文件中的通道顺序为 I、II、III、aVR、aVF、aVL、V1-V6,即第 4 通道(0 起始索引)是 aVF 而非 aVL,与 PTB-XL 等多数数据集相反(详见坑点 1)。
- 时长与采样率:每条 10 秒、500 Hz,即每导联 5,000 个采样点、每条记录 60,000 个数据点。所有记录规格一致,无需按记录重采样对齐(这与 CODE-15% 等 7-10 秒不等的数据集形成对比)。
- 幅度与格式:WFDB 16 位有符号整型存储,增益(gain)与基线(baseline)写入 .hea 头文件,需按头文件换算为 μV(详见 §6.3);
wfdb-python的rdsamp会自动完成该换算。 - 滤波带宽:心电卡的带宽与滤波设置记录在 machine_measurements.csv 的 bandwidth/filtering 列,不同记录的滤波设置可能不同;诊断 ECG 通常为 0.05-150 Hz 诊断级带宽,但急诊/监护场景可能存在肌电与基线漂移污染。
一条记录的 .hea 头文件示例(截取关键字段):
41420867.hea(对应 41420867.dat):
采样率 500 Hz,12 导联,时长 10 s(5,000 采样/导联)
导联顺序:I, II, III, aVR, aVF, aVL, V1, V2, V3, V4, V5, V6
每导联声明:ADC 增益(μV/位)、基线偏移、分辨率与存储格式(16-bit)
换算示例:信号值 × (1/gain) μV + 基线 → 物理幅度
头文件是唯一权威的导联与标定信息源:任何"假设所有记录导联顺序/增益相同"的批量解析都会在个别记录上静默出错,应逐记录读取 sig_name 与增益。
§3.2 子集样本数表
| 子集 | 记录数 | 说明 |
|---|---|---|
| 诊断 ECG 波形(WFDB 记录) | 800,035 | 官方口径约 80 万条;ECGBench 按 record_list.csv 精确重计 |
| 独立患者(subject_id) | 161,352 | 官方口径近 16 万名 |
| 有机器测量的研究 | 800,035 对应全部 | machine_measurements.csv 174.2 MB,按报告行拆分存储 |
| 有 note 链接的研究 | 见 waveform_note_links.csv(56.2 MB) | v0.x 时期约 60 万+ 份心脏科报告;并非全部 ECG 均被心脏科医生阅读 |
| 官方扣留(隐藏测试) | 约占可用 ECG 的 5% | 用于 workshop/challenge,不在发布包内 |
§3.3 格式表
| 文件 | 格式 | 结构 |
|---|---|---|
| 波形 | WFDB(.dat 信号 + .hea 头) | 16-bit 复合存储;一研究一目录 |
| record_list.csv | CSV | subject_id, study_id, path |
| machine_measurements.csv | CSV | subject_id, study_id, cart_id, ecg_time, report_#(多行), bandwidth, filtering, rr_interval, p_onset, p_end, qrs_onset, qrs_end, t_end, p_axis, qrs_axis, t_axis |
| waveform_note_links.csv | CSV | study_id, subject_id, note_id(→ MIMIC-IV-Note) |
| machine_measurements_data_dictionary.csv | CSV | 官方字段字典 |
| SHA256SUMS.txt | 文本 | 全量文件哈希(167.9 MB) |
§3.4 存储大小
v1.0 解压后总计 90.4 GB,ZIP 压缩包 33.8 GB;其中波形目录 files/ 占绝对主体(ECGBench 估约 96.5 GB 量级,含文件系统开销口径差异),查找表合计约 297.5 MB(record_list.csv 67.1 MB + machine_measurements.csv 174.2 MB + waveform_note_links.csv 56.2 MB)。建议预留 200 GB 磁盘以容纳解压中间态与预处理缓存。
§3.5 标注方式
三层标签体系:① 机器文本报告(自动):心电卡判读算法逐条生成,随波形 100% 覆盖,为本体标签但属弱标签——首行不一定是节律、存在 “warning: data quality may affect interpretation” 质量警告行(0.9%);② 机器数值测量(自动):RR 间期、P/QRS/T 间期、P/QRS/T 电轴等全局(12 导联汇总)测量;③ 心脏科医生报告(人工):仅覆盖被心脏科医生阅读的子集,v1.0 起不随包发布,需凭证访问 MIMIC-IV-Note 后经 note_id 关联。
§3.6 标注者资质与一致性
机器层无人工标注者,不存在评分者间一致性;其判读性能随厂商与算法版本而异,且官方未提供逐条的置信度。人工层(MIMIC-IV-Note 内的心脏科报告)来自院内常规阅图流程,报告本身未附带标注一致性研究;v0.x 时期的自由文本经规则化去标识处理,每处 PHI 以三个下划线替换。使用者若需强标签,需自行解析文本并抽样人工复核,或参考 ECG-FM 开源的标签解析流水线。
§3.7 采集周期
2008-2019 年连续采集(日期整体偏移后按患者内相对时序保留),覆盖 BIDMC 该时段内几乎所有出现于 MIMIC-IV 临床数据库患者的全部可得诊断 ECG。
§3.8 地域覆盖
美国马萨诸塞州波士顿,单一学术医疗中心(BIDMC)。无多中心/多国数据,地域泛化性受限(见 §7.3)。
§3.9 设备规格
采集设备为多厂商诊断心电卡,官方文档确认包括 Burdick/Spacelabs、Philips 与 General Electric;每条记录记录采集用手推车 ID(cart_id,已随机移位)、带宽与滤波设置。设备异质性是模型跨站点泛化的主要挑战之一,也是可利用的元数据(如按 cart_id 分层评估)。
§3.10 深度溯源链
BIDMC 各诊疗区心电卡(厂商多源)→ 采集时以 MRN 写入设备 → 脱敏:MRN 位移映射为 MIMIC-IV subject_id、日期偏移、cart_id 随机重映射 → 波形以 study_id(随机生成,无时序含义)归档为 WFDB → 与 MIMIC-IV v2.2 患者匹配后经 PhysioNet 发布(DOI 10.13026/4nqg-sb35)→ 全量文件附 SHA256SUMS.txt 哈希清单。上游数据库 MIMIC-IV 本身另发 DOI(Johnson et al., 2023, Scientific Data),引用时应同时引用两层级。
§4 数据结构
§4.0 目录树
mimic-iv-ecg-1.0/
├── files/ # 波形主目录
│ ├── p1000/ # 组目录:subject_id 千位分组(1000000-1000999)
│ │ └── p10001725/ # 患者目录:subject_id 全量
│ │ └── s41420867/ # 研究目录:study_id
│ │ ├── 41420867.hea # WFDB 头文件(导联/增益/采样率)
│ │ └── 41420867.dat # WFDB 信号文件(12 导联 × 5,000 点)
│ └── p1002/
│ └── p10023771/
│ ├── s42745010/
│ │ ├── 42745010.hea
│ │ └── 42745010.dat
│ ├── s46989724/...
│ └── s42460255/...
├── record_list.csv # 80 万条波形索引(subject_id/study_id/path)
├── machine_measurements.csv # 机器测量 + 机器报告(174.2 MB)
├── machine_measurements_data_dictionary.csv
├── waveform_note_links.csv # → MIMIC-IV-Note 心脏科报告链接
├── SHA256SUMS.txt # 全量哈希
└── LICENSE.txt # ODbL v1.0
§4.1 DAIMS 字段字典
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| subject_id | int | 患者 ID,关联 MIMIC-IV 全模块 | 10001725 | 患者级分组/多模态 join | 无(脱敏移位后稳定) | 无缺失 | 1000000-1999999 |
| study_id | int | ECG 研究 ID,随机分配 | 41420867 | 主键 | 无 | 无缺失 | 随机整数 |
| path | str | WFDB 记录相对路径 | files/p1000/p10001725/s41420867/41420867 | 波形读取索引 | 无 | 无缺失 | 固定模式 |
| ecg_time | datetime | 采集时间(已整体偏移) | 2150-04-07 08:31:00 | 时序排序/与就诊对齐 | 偏移后绝对值无临床意义 | 可缺失 | 2008-2019 偏移区间 |
| cart_id | int | 采集心电推车(随机重映射) | 8 离散值级 | 设备分层/站点效应 | 同车多患者混叠 | 可缺失 | 随机整数 |
| report_# | text | 机器报告第 # 行(多行) | SINUS RHYTHM | 弱标签来源 | 算法误判含于内 | 空行分隔、可缺行 | 自由文本 |
| rr_interval | float | RR 间期(ms,全局 12 导联汇总) | 952 | 节律特征 | 依赖波形检出质量 | 整数哨兵值(非 NaN) | 数值/哨兵 |
| qrs_onset/qrs_end | float | QRS 起止(ms) | 12 / 108 | 形态学特征 | 同上 | 整数哨兵值 | 数值/哨兵 |
| p_axis/qrs_axis/t_axis | float | P/QRS/T 电轴(度) | 51 | 电轴特征 | 同上 | 整数哨兵值 | -180~180 |
| note_id | str | MIMIC-IV-Note 报告链接 | 10001725-EK-28 | 专家标签获取 | 仅覆盖被阅读子集 | 无对应行为缺失 | 需凭证访问 |
§4.2 标签分布
机器报告首行分布(ECGBench 精确重计,按 record_list.csv × machine_measurements.csv,截至 2026-09):
| 机器报告首行 | 记录数 | 占比 |
|---|---|---|
| sinus rhythm(窦性心律) | 381,884 | 47.7% |
| sinus bradycardia(窦性心动过缓) | 71,034 | 8.9% |
| sinus tachycardia(窦性心动过速) | 54,665 | 6.8% |
| atrial fibrillation(心房颤动) | 41,209 | 5.2% |
| sinus rhythm with borderline 1st degree a-v block | 15,428 | 1.9% |
| atrial fibrillation with rapid ventricular response | 14,925 | 1.9% |
| sinus rhythm with 1st degree a-v block | 14,788 | 1.8% |
| sinus arrhythmia(窦性心律不齐) | 13,764 | 1.7% |
| sinus rhythm with pac(s)(伴房早) | 10,539 | 1.3% |
| *** consider acute st elevation mi *** | 8,516 | 1.1% |
| ventricular pacing(心室起搏节律) | 8,445 | 1.1% |
| — warning: data quality may affect interpretation — | 7,079 | 0.9% |
| 其余 938 种首行 | 157,758 | 19.7% |
使用该分布时的三点提示:① 这是"首行"分布而非诊断分布——一条报告可含多个发现(如窦律 + 束支阻滞 + ST 改变),多标签统计需解析全文;② “*** consider acute st elevation mi ***” 是警报性表述,其精确率低于确诊性陈述,作为 STEMI 标签使用时应预期较高假阳性;③ 质量警告行(0.9%)与某些首行互斥共存关系未由官方说明,统计前先检查同一研究是否存在多行。
§4.3 关键统计
- 患者内重复度高:92.8% 的研究来自贡献多条 ECG 的患者;单人最多 260 条。分布:1 条 57,344 人(35.5%)、2 条 29,218 人(18.1%)、3-4 条 28,666 人(17.8%)、5-9 条 25,322 人(15.7%)、10-19 条 13,700 人(8.5%)、20-49 条 6,263 人(3.9%)、50-259 条 838 人(0.5%)。
- 与 MIMIC-IV 就诊重叠:约 55% ECG 与住院记录重叠、约 25% 与急诊就诊重叠(可重叠于多次就诊),其余为门诊或未覆盖就诊。
- 导联顺序:ECGBench 抽样 3,000 个 .hea 头文件,通道顺序 I、II、III、aVR、aVF、aVL、V1-V6 全部一致(aVF/aVL 与常规相反)。
- 扣留比例:约 5% 可用 ECG 官方扣留,任何自称"全量"的本地副本都缺失这批数据。
§4.4 数据层级
患者(subject_id,161,352 名)→ 研究/记录(study_id,800,035 条;一人多条,最多 260 条)→ 导联(12 通道,通道顺序见 §3.1)→ 采样点(每导联 5,000 点 @ 500 Hz)。查找表平铺无嵌套:record_list.csv 为波形层主索引,machine_measurements.csv 以"研究 × 报告行"粒度展开(join 后行数多于研究数,需聚合),waveform_note_links.csv 为波形 → 专家报告的稀疏链接。
§4.5 缺失值与信息性缺失编码
| 现象 | 编码方式 | 处理建议 |
|---|---|---|
| 机器测量无法测得(如 P 波不可见) | 整数哨兵值(非 NaN、非空值) | 依据 machine_measurements_data_dictionary.csv 与数据分布识别哨兵后置 NaN,禁止直接统计 |
| 心脏科报告不存在 | waveform_note_links.csv 无对应行 | 属信息性缺失:未被心脏科医生阅读 ≠ 正常 |
| report_# 行数不定 | 空行分隔,可缺行 | 按研究聚合全部报告行再解析 |
| 与 MIMIC-IV 就诊不重叠 | 关联 join 返回空 | 属信息性缺失:门诊 ECG 无对应住院记录 |
| v0.x 报告中的 PHI | 三个下划线 ___ 替换 | 解析文本时注意含下划线占位的句子 |
§5 划分与使用建议
§5.1 官方划分
官方未提供训练/验证/测试划分;同时官方扣留了约 5% 的可用 ECG 作为隐藏测试集(workshop/challenge 用途),发布包内不可获得。这决定了所有已发表结果都是在"非全量"数据上的自建划分结果,横向比较必须基于相同划分协议。
扣留机制的另一面常被低估:它意味着社区结果与未来官方挑战赛成绩之间不存在简单的换算关系——本地"99% 测试集"与官方隐藏集在分布上未必一致(官方可能按时间或难度分层扣留)。务实做法是把本地保留集当作开发指标、把与已发表基准(ECG-FM 协议)的对齐当作可比性锚点,而不是宣称本地结果与官方等价。
§5.2 社区惯例划分
- ECG-FM 基准(McKeen et al., 2024):在 MIMIC-IV-ECG 上发布官方基准任务(诊断标签 + LVEF<40% 预测),提供 manifest 与划分脚本,是当前社区事实标准。
- 患者级分组 K 折:借鉴 PTB-XL 社区协议(Strodthoff et al., 2021, IEEE JBHI),按 subject_id 分组做 5/10 折交叉验证,是单中心多记录数据集的通用做法。
- 时序划分:按 ecg_time 以患者内首末检查时间切分训练/测试,模拟"新患者/新时期"部署场景。
两种主流分组划分的可运行对比:
from sklearn.model_selection import GroupKFold, GroupShuffleSplit
import numpy as np
groups = rec.set_index("study_id").loc[labels.index, "subject_id"].values
# 方案 A:患者级单次切分(90/10)——快速实验默认
gss = GroupShuffleSplit(n_splits=1, test_size=0.1, random_state=42)
tr, te = next(gss.split(labels, groups=groups))
# 方案 B:患者级 5 折——论文报告用,逐折取宏 AUROC 均值±标准差
gkf = GroupKFold(n_splits=5)
for k, (tr_k, va_k) in enumerate(gkf.split(labels, groups=groups)):
pass # 每折内再从训练部分切 10% 做早停验证(仍按组隔离)
注意 GroupKFold 不做标签分层;若需分层可先按患者聚合首要标签再手动分层分配组,或改用 StratifiedGroupKFold。
§5.3 泄漏风险(重点)
本数据集的泄漏风险主要不在特征而在身份:92.8% 的研究来自多记录患者(单人最多 260 条),同一患者的前后多条 ECG 高度相关(同一心脏、同一疾病背景)。若按记录随机切分,同一患者的两条 ECG 会分属训练与测试集,模型只需"记住该患者的基线形态"即可刷高 AUROC——文献中这种错误可带来数个百分点的虚高。次级风险包括:① 纵向泄漏:用未来 ECG 预测既往标签后反向评估;② 文本-波形泄漏:机器报告由波形算法生成,把报告全文当作特征喂入多模态模型再评"波形分类"属自我实现;③ 扣留集重叠:自建测试集若含官方扣留研究的同名患者,与未来官方挑战不可比。缓解策略见坑点 2 与 §6.4。
§5.4 交叉验证建议
推荐"患者分组 × 时序分层"双约束:以 subject_id 为分组键做 GroupKFold,并在每折内保持标签分布近似(按解析后的首要诊断分层)。若做迁移评估(先在本集预训练、再迁移 PTB-XL),预训练阶段无需标签划分,但微调与早停的验证集仍必须患者级隔离。
一个常被忽略的细节:验证集的"患者"可以与训练集无关,但验证集的"设备/cart"分布应尽量与训练集同构——若某一折恰好集中了某厂商设备,测到的将是设备差异而非方法差异。建议折间做 cart 分布的卡方检查,必要时重排折边界。此外, early stopping 的监控指标建议用宏 AUPRC(对长尾类敏感),避免宏 AUROC 在极不平衡折内失稳。
§5.5 外部验证建议
至少覆盖三类外部分布:① 专家标签基准 PTB-XL(21,837 条、SCP 编码,标签体系与弱标签不同需映射);② 多中心普查类 Chapman-Shaoxing/CPSC 2018(设备与人群迁移);③ 监护场景 Amsterdam UMC 类 ICU 连续导联数据(波形条件差异极大,文献已证明直接迁移会显著退化,见 §7.8)。
§6 AI 就绪指南
§6.0 云端快速启动
v1.0 为开放数据,AWS Open Data 提供免签名只读桶(us-east-1),无需 AWS 账号:
# 列出桶内容(无需签名)
aws s3 ls --no-sign-request s3://physionet-open/mimic-iv-ecg/
# 只同步查找表(约 300 MB),先跑通再拉波形
aws s3 sync --no-sign-request \
s3://physionet-open/mimic-iv-ecg/1.0/ ./mimic-iv-ecg-1.0/ \
--exclude "files/*"
其他云端路径:① PhysioNet 网页浏览:项目页提供在线波形可视化与目录导航,适合逐例核对(如验证导联顺序);② Google BigQuery:项目页 “Request access using Google BigQuery” 提交申请后,可在 BQ 中查询三张查找表(波形本体不在 BQ,仅 CSV 层);③ wget 递归:适合无 AWS CLI 的 Linux 环境,配合 -c 断点续传。波形批量分析不建议在云端单机解压 90.4 GB 后再读,推荐 aws s3 sync --exclude 按组目录(pNNNN)分批拉取,边拉边处理。
§6.1 快速上手
# =============================================================
# 目录结构预期(data_root 指向解压后的 v1.0 根目录):
# mimic-iv-ecg-1.0/
# ├── files/pNNNN/pXXXXXXXX/sZZZZZZZZ/ZZZZZZZZ.hea|.dat
# │ └── 最小可用子集:任选一个 pNNNN 组目录即可跑通全流程
# ├── record_list.csv # path 与 subject_id/study_id 的主索引
# ├── machine_measurements.csv # 机器测量 + 机器报告(标签来源)
# └── waveform_note_links.csv # → MIMIC-IV-Note 专家报告(需凭证)
# data_root 拼接关系:pd.read_csv(data_root + "/record_list.csv"),
# wfdb.rdsamp(data_root + "/" + path) 读取单条波形。
# =============================================================
import pandas as pd
import wfdb
data_root = "/data/mimic-iv-ecg-1.0"
rec = pd.read_csv(f"{data_root}/record_list.csv")
mm = pd.read_csv(f"{data_root}/machine_measurements.csv", low_memory=False)
# 取一位患者的全部检查(一人多条是常态)
one = rec[rec.subject_id == rec.subject_id.iloc[0]]
signal, meta = wfdb.rdsamp(f"{data_root}/{one.path.iloc[0]}")
print(signal.shape) # (5000, 12) —— 注意通道顺序 aVF/aVL 互换
print(meta["sig_name"]) # ['I','II','III','aVR','aVF','aVL','V1',...,'V6']
# 机器报告首行分布速览(弱标签探查)
first = mm[mm.report_0.notna()].groupby("study_id").report_0.first()
print(first.value_counts(normalize=True).head(10))
§6.2 数据获取
| 方式 | 命令/入口 | 大小 | 前置条件 |
|---|---|---|---|
| ZIP 直下 | physionet.org ZIP | 33.8 GB | 无(开放) |
| wget 递归 | wget -r -N -c -np https://physionet.org/files/mimic-iv-ecg/1.0/ |
90.4 GB | 无(开放) |
| AWS S3 免签名 | aws s3 sync --no-sign-request s3://physionet-open/mimic-iv-ecg/1.0/ <dir> |
90.4 GB | AWS CLI |
| Google BigQuery | PhysioNet 项目页 “Request access using Google BigQuery” | 云端查询 | 提交申请 |
| Demo 样例 | MIMIC-IV-ECG Demo 项目页 | 659 条 | 无 |
# 推荐:断点续传递归下载 + 完整性校验
wget -r -N -c -np https://physionet.org/files/mimic-iv-ecg/1.0/
cd 1.0 && sha256sum -c SHA256SUMS.txt --quiet # 全量哈希校验(167.9 MB 清单)
§6.3 预处理全流程
# 依赖:pip install wfdb numpy pandas scikit-learn
import numpy as np, pandas as pd, wfdb
EXPECTED = ["I","II","III","aVR","aVL","aVF","V1","V2","V3","V4","V5","V6"]
def load_ecg(data_root: str, path: str) -> np.ndarray:
"""读取单条 ECG 并修正导联顺序,返回 (12, 5000) float32,单位 μV。"""
sig, meta = wfdb.rdsamp(f"{data_root}/{path}") # (5000, 12) 原始导联序
order = [meta["sig_name"].index(l) for l in EXPECTED] # 修正 aVF/aVL 互换
sig = sig[:, order].T.astype(np.float32) # -> (12, 5000)
# NaN 处理(个别记录存在导联脱落段)
sig = np.nan_to_num(sig, nan=0.0)
# 逐导联 z-score 标准化(幅度单位随增益变化,不宜用全局 min-max)
mu, sd = sig.mean(-1, keepdims=True), sig.std(-1, keepdims=True) + 1e-8
return (sig - mu) / sd
SENTINEL_COLS = ["rr_interval","p_onset","p_end","qrs_onset","qrs_end",
"t_end","p_axis","qrs_axis","t_axis"]
def clean_measurements(mm: pd.DataFrame) -> pd.DataFrame:
"""机器测量哨兵值 → NaN。哨兵为数据相关的特殊整数(常见为极端值),
以分位数启发式识别后剔除;禁止直接对原始列求均值。"""
out = mm.drop_duplicates("study_id").copy()
for c in SENTINEL_COLS:
v = pd.to_numeric(out[c], errors="coerce")
lo, hi = v.quantile(0.001), v.quantile(0.999)
out[c] = v.mask((v <= lo) | (v >= hi)) # 哨兵落入分布外端
return out
def weak_labels(mm: pd.DataFrame) -> pd.DataFrame:
"""机器报告首行 → 二值弱标签(示例:房颤 / 窦律 / STEMI 提示)。"""
g = mm.sort_values("report_#").groupby("study_id")
first_line = g["report_#"].first()
txt = first_line.str.lower().fillna("")
lab = pd.DataFrame(index=txt.index)
lab["af"] = txt.str.contains("atrial fibrillation").astype(int)
lab["stemi_hint"] = txt.str.contains("st elevation").astype(int)
lab["quality_warn"] = txt.str.contains("warning").astype(int)
return lab
要点:① 幅度换算依赖 .hea 的 gain/baseline,wfdb.rdsamp 已自动应用,自解析 .dat 时务必处理;② 滤波设置(bandwidth/filtering 列)不同的记录基线漂移特性不同,重采样/去基线策略应按记录自适应;③ 哨兵值识别建议同时参考官方数据字典与分布外启发式,二者交叉验证。
进阶预处理(可选滤波,用于噪声敏感的下游任务):
from scipy.signal import butter, filtfilt
def bandpass(x: np.ndarray, fs: int = 500, lo: float = 0.5, hi: float = 40) -> np.ndarray:
"""0.5-40 Hz 带通(节律分类常用);注意会削弱 ST 段形态信息,
STEMI 相关任务请改用 0.05-150 Hz 诊断带宽或完全滤波。"""
b, a = butter(4, [lo / (fs / 2), hi / (fs / 2)], btype="band")
return filtfilt(b, a, x, axis=-1)
def preprocess_pipeline(data_root, path, task: str = "rhythm"):
x = load_ecg(data_root, path) # (12, 5000) 已标准化
if task == "rhythm":
x = bandpass(x) # 节律任务:窄带去噪
elif task == "stemi":
pass # STEMI 任务:保留诊断带宽
return x.astype(np.float32)
滤波选择是任务相关的:节律分类受益于窄带去噪,而 ST 段形态任务(STEMI/缺血)在 40 Hz 以上成分被截断后会丢失 QRS 终末与 ST 段细节,两类任务的预处理配置应当显式分开记录并在论文中报告。
§6.4 PyTorch DataLoader 完整代码
<details>
<summary>点击展开完整 Dataset + DataLoader 代码(约 70 行)</summary>
# 依赖:pip install wfdb torch pandas scikit-learn
# 目录结构预期见 §6.1 注释;本例实现:弱标签多分类 + 患者级分组划分
import numpy as np, pandas as pd, wfdb, torch
from torch.utils.data import Dataset, DataLoader
from sklearn.model_selection import GroupShuffleSplit
EXPECTED = ["I","II","III","aVR","aVL","aVF","V1","V2","V3","V4","V5","V6"]
class MimicIvEcgDataset(Dataset):
"""MIMIC-IV-ECG 弱标签分类 Dataset。
- labels: DataFrame(index=study_id, columns=af/stemi_hint/...)
- 返回 (signal[12,5000], label_vec),按需在 collate 内做增强
"""
def __init__(self, data_root, record_list, labels, augment=False):
self.root, self.augment = data_root, augment
self.rec = record_list.set_index("study_id")
self.ids = labels.index.intersection(self.rec.index)
self.labels = labels.loc[self.ids]
def __len__(self):
return len(self.ids)
def __getitem__(self, i):
sid = self.ids[i]
sig, meta = wfdb.rdsamp(f"{self.root}/{self.rec.loc[sid,'path']}")
order = [meta["sig_name"].index(l) for l in EXPECTED] # 修导联顺序
x = np.nan_to_num(sig[:, order].T, nan=0.0).astype(np.float32)
mu = x.mean(-1, keepdims=True); sd = x.std(-1, keepdims=True) + 1e-8
x = (x - mu) / sd
if self.augment:
if np.random.rand() < 0.5: # 随机基线漂移
x += np.random.randn(12, 1).astype(np.float32) * 0.05
if np.random.rand() < 0.3: # 随机导联置零(鲁棒)
x[np.random.randint(12)] = 0.0
j = np.random.randint(0, 250) # 随机时移 ≤0.5 s
x = np.roll(x, j, axis=-1)
y = torch.tensor(self.labels.loc[sid].values, dtype=torch.float32)
return torch.from_numpy(np.ascontiguousarray(x)), y
# ---- 患者级分组划分(防泄漏,见坑点 2)----
data_root = "/data/mimic-iv-ecg-1.0"
rec = pd.read_csv(f"{data_root}/record_list.csv")
mm = pd.read_csv(f"{data_root}/machine_measurements.csv", low_memory=False)
first = mm.sort_values("report_#").groupby("study_id")["report_#"].first().str.lower()
labels = pd.DataFrame({
"af": first.str.contains("atrial fibrillation").astype(int),
"stemi_hint": first.str.contains("st elevation").astype(int)},
index=first.index)
meta = rec.set_index("study_id").loc[labels.index, "subject_id"]
gss = GroupShuffleSplit(n_splits=1, test_size=0.1, random_state=42)
tr_idx, te_idx = next(gss.split(labels, groups=meta.values))
tr_sub = set(meta.iloc[tr_idx]); te_sub = set(meta.iloc[te_idx])
tr_ids, te_ids = labels.index[meta.isin(tr_sub)], labels.index[meta.isin(te_sub)]
ds_tr = MimicIvEcgDataset(data_root, rec, labels.loc[tr_ids], augment=True)
ds_te = MimicIvEcgDataset(data_root, rec, labels.loc[te_ids], augment=False)
dl_tr = DataLoader(ds_tr, batch_size=64, shuffle=True, num_workers=8, pin_memory=True)
dl_te = DataLoader(ds_te, batch_size=128, shuffle=False, num_workers=8, pin_memory=True)
for x, y in dl_tr: # x: (B, 12, 5000) y: (B, 2)
break
</details>
§6.5 坑点 8 个
⚠️ 坑点 1:.hea 头文件中 aVF/aVL 顺序与其他数据集相反(分类:预处理陷阱)
问题:本数据集 12 通道的存储顺序是 I、II、III、aVR、aVF、aVL、V1-V6(第 4 通道为 aVF),而 PTB-XL、Chapman-Shaoxing 等多数 12 导联数据集该位置是 aVL。按通道索引混合多数据集训练时,两个导联被静默交换。
症状:跨数据集训练后验证损失收敛但异常;逐导联显著性图显示"第 4 通道是下壁导联形态";迁移到外部数据集时下壁/侧壁相关标签(II、III、aVF 或 I、aVL)性能不对称下降。
解决:
- 简单方法:永远按
meta["sig_name"]名称索引导联,重建标准顺序[I,II,III,aVR,aVL,aVF,V1..V6],禁止按索引切片。- 进阶方法:在 Dataset 构造时做一次全量断言(抽样校验 sig_name 与期望一致,见 §6.4 代码),把导联顺序写进数据版本记录。
- SOTA 方法:多数据集混合训练统一用导联名做通道对齐层(channel-mapping module),对缺失导联置零并输入掩码(ECG-FM 的 RLM 随机导联掩码预训练即为此设计)。
参考:ECGBench 对 3,000 个头文件的审计;ECG-FM。
⚠️ 坑点 2:按记录随机切分造成患者级身份泄漏(分类:数据泄漏)
问题:92.8% 的研究来自多记录患者,单人最多 260 条;同一患者多条 ECG 形态高度相关。按 study_id 随机切分使同一患者跨 train/test,AUROC 虚高数个百分点。
症状:测试集指标异常漂亮;按 subject_id 去重后重评,指标显著回落;不同随机种子的方差极小(因为"记住患者"而非"学会病变")。
解决:
- 简单方法:
GroupShuffleSplit(groups=subject_id)或GroupKFold,见 §6.4 代码。- 进阶方法:患者级分组 + 按患者内首条 ECG 的 ecg_time 做时序分层,避免"患者未来检查泄漏进训练"。
- SOTA 方法:报告指标时同时给出"记录级"与"患者级"两套结果以自证无泄漏;与社区基准(ECG-FM 划分)对齐便于比较。
参考:ECGBench 患者重复度审计;Strodthoff et al., 2021, IEEE JBHI(PTB-XL 分组协议)。
⚠️ 坑点 3:把机器报告当心脏病医生判读(金标准误用)(分类:标签理解)
问题:report_# 文本由心电卡判读算法自动生成,不是人工阅图结论;首行不一定是节律结论(约 19.7% 的记录首行落在 938 种长尾表述内),且算法误报/漏报系统性混入。
症状:用首行做标签时,"*** consider acute st elevation mi "这类提示性*行被当确诊标签;房颤伴 RVR 与单纯房颤、borderline 与明确一度 AV 阻滞被切成互斥类;与 MIMIC-IV-Note 心脏科报告对比时一致率明显不满。
解决:
- 简单方法:明确声明标签 = 机器报告(weak labels),评估结论限定在该语义内。
- 进阶方法:规则 + 同义词词典解析报告全文(不止首行),将提示性表述与确诊性表述分级;抽样与 MIMIC-IV-Note 专家报告比对估噪声率。
- SOTA 方法:标签蒸馏——用机器标签预训练,再用小规模人工核验子集(或 Note 模块专家文本)微调/重加权;或使用 ECG-FM 开源的解析流水线生成结构化标签。
参考:PhysioNet 官方文档(报告为机器输出);ECG-FM 标签系统。
⚠️ 坑点 4:机器测量的"无法测量"是整数哨兵值,不是缺失(分类:标签理解)
问题:rr_interval、p_onset、qrs_axis 等数值列把"测不到"编码为特殊整数(如极端值),而非 NaN/空值。直接 describe/归一化/喂模型会引入 phantom 极值。
症状:rr_interval 出现荒谬极小/极大值;z-score 后存在远超 ±10σ 的样本;以测量值做特征时模型在"无法测量"子群上行为异常。
解决:
- 简单方法:分位数启发式截断(见 §6.3 clean_measurements),超出 0.1%-99.9% 分位视为哨兵置 NaN。
- 进阶方法:结合 machine_measurements_data_dictionary.csv 的字段语义设置物理合理域(RR 间期 200-3,000 ms、电轴 -180~180°),域外置 NaN 并保留"可测量性"指示位(信息性缺失特征)。
- SOTA 方法:把"测不到 P 波"本身当作标签信号(房颤的机器学表现之一),构造测量可得性掩码与波形联合建模。
参考:ECGBench 审计(integer sentinels);machine_measurements 数据字典。
⚠️ 坑点 5:study_id 完全随机、目录顺序无时序含义(分类:工程陷阱)
问题:官方明确 study_id 是随机分配的,目录枚举顺序与检查时间先后无关;采集时间只存在于 machine_measurements.csv 的 ecg_time(且整体偏移)。
症状:按文件名/目录序构建"时序"特征或时序切分后,时序模型指标与随机基线无差异;跨时间泛化实验(train 早 / test 晚)实际做成了随机划分。
解决:
- 简单方法:一律经 record_list.csv → machine_measurements.csv 取 ecg_time 排序,禁止依赖路径顺序。
- 进阶方法:时序实验使用患者内相对时间(偏移后差值仍有效),绝对时间仅用于与 MIMIC-IV 就诊表对齐(同一偏移体系内可比)。
- SOTA 方法:按"偏移后日历年"分桶构建时间漂移监控(见 §7.6),部署后以实时数据重演同款分桶。
参考:PhysioNet v0.3 文档(identifiers are completely random)。
⚠️ 坑点 6:约 45% 的 ECG 关联不到住院记录——JOIN 后行数骤减不是 bug(分类:工程陷阱)
问题:官方口径约 55% ECG 与住院重叠、约 25% 与急诊重叠,其余为门诊/体检等无对应 MIMIC-IV 就诊的检查;且 MIMIC-IV 临床库只含 ED 与 ICU 数据,ECG 时间戳可早于或晚于某次就诊。
症状:与 admissions/icustays 关联后样本量大幅缩水,误以为关联键写错;硬性 inner join 后引入"病情更重"的选择偏倚。
解决:
- 简单方法:关联前先统计重叠率,明确任务语义(全 ECG 弱监督 vs 住院结局预测用子集)。
- 进阶方法:以 ecg_time 对齐 hadm_id 的 admit/disatime 窗口,允许 ± 时间窗并保留"无就诊"指示特征,避免隐式删失。
- SOTA 方法:多任务学习同时建模"是否有住院结局"与"结局是什么",把选择过程显式化。
参考:PhysioNet v1.0 项目页(55%/25% 重叠)。
⚠️ 坑点 7:0.9% 的质量警告记录——过滤与保留都是偏倚(分类:偏倚陷阱)
问题:7,079 条报告首行为 “— warning: data quality may affect interpretation —”,提示波形噪声大。直接丢弃会系统性移除危重/躁动/抢救场景样本(它们恰是临床最有价值的困难样本);不处理则拉低整体基线并让模型学到噪声-设备相关性。
症状:去噪后指标上升但在真实监护数据上失效;消融实验显示"过滤质量警告"带来的收益集中在少数类别。
解决:
- 简单方法:把质量警告行解析为 quality_flag 特征/标签层,评估时分层报告。
- 进阶方法:噪声感知训练(对 quality_flag=1 样本降权或使用噪声稳健损失),而非物理删除。
- SOTA 方法:以信号质量指数(SQI)模型对全量记录打分,构建"质量分层基准",报告各层性能(参考 PhysioNet 相关 SQI 文献做法)。
参考:ECGBench 首行分布。
⚠️ 坑点 8:获取路径的三个合规暗礁(Demo 误用、模块 DUA、扣留集)(分类:工程陷阱)
问题:① MIMIC-IV-ECG Demo(659 条)与全量集同名易混,Demo 无机器测量表,拿它当全量会得到与文献差一个量级的样本数;② v1.0 本体开放,但关联 MIMIC-IV 与 MIMIC-IV-Note(专家报告)仍需凭证化 + CITI 培训 + 各模块单独签 DUA;③ 约 5% 可用 ECG 被官方扣留为隐藏测试集,任何本地"全量"都缺这批数据。
症状:论文样本数与官方口径对不上;与 MIMIC-IV 关联时报权限错误;声称在"完整 MIMIC-IV-ECG"上评测却被质疑与官方挑战不可比。
解决:
- 简单方法:以 record_list.csv 行数(800,035)为唯一样本数口径;Demo 仅用于教学演示。
- 进阶方法:按 mimic.mit.edu 获取流程 逐模块申请:CITI “Data or Specimens Only Research”(提交 Completion Report 而非证书)→ PhysioNet 凭证 → 逐模块签 DUA;学生需导师作推荐人。
- SOTA 方法:复现公开基准时锁定版本(v1.0 + SHA256SUMS 校验)并在论文中报告扣留集约束,避免与未来官方 challenge 泄漏冲突。
参考:mimic.mit.edu FAQ;PhysioNet v1.0 Release Notes。
§6.6 数据增强
| 增强 | 安全性 | 说明 |
|---|---|---|
| 随机时移(≤0.5 s,环形) | ✅ | 诊断 ECG 首屏起始相位无临床意义 |
| 逐导联 z-score / 幅度缩放 | ✅ | 对抗增益差异;保持导联间相对幅度时更稳 |
| 高斯噪声 / 基线漂移注入 | ✅ | 模拟噪声;对 quality_warn 子群尤其重要 |
| 随机导联置零 / 导联掩码 | ✅ | 提升导联缺失鲁棒性(ECG-FM 的 RLM 策略) |
| 时间反转 | ❌ | 破坏 P-QRS-T 极性语义 |
| 随机翻转导联极性 | ❌ | 改变电轴与形态学诊断依据 |
| 跨患者导联拼接 | ❌ | 产生临床上不存在的向量心电 |
| 大角度旋转变换 | ⚠️ | 仅小幅(≤15°)电轴扰动可接受,需按导联几何参数化 |
§6.7 模型推荐表
| 模型 | 类型 | 适用任务 | 备注 |
|---|---|---|---|
| ResNet1d / XResNet1d | 监督 CNN | 弱标签多分类基线 | 12×5000 输入,训练快、可解释性热图好 |
| Vision Transformer(切导联 patch) | 监督 Transformer | 大数据量分类/多任务 | 需导联位置编码 |
| ECG-FM(bowang-lab) | 基础模型(开源权重) | 微调各类诊断/LVEF 任务 | 在 MIMIC-IV-ECG 预训练,含官方基准 |
| TolerantECG | 基础模型(ConvNeXt V2) | 导联缺失/噪声鲁棒场景 | PTB-XL 迁移 AUC 0.966 |
| W2V / HuBERT-ECG / ST-MEM | 自监督 | 预训练表征 | HuBERT-ECG、ST-MEM 均为开源 SSL 基线 |
| U-Net 式分割头 | 监督 | P/QRS/T 波形分割 | 可用机器测量做弱监督锚点 |
§6.8 硬件需求表
| 场景 | 显存 | 硬件建议 | 说明 |
|---|---|---|---|
| 单卡弱标签分类基线 | ≥16 GB | 1×A100/4090 | batch 64,混合精度 |
| 全量自监督预训练 | ≥80 GB 或梯度累积 | 4-8×A100,数天-数周 | 参考 ECG-FM(1.5M ECG、Transformer)配置 |
| 磁盘/内存 | — | 200 GB 磁盘;≥64 GB RAM | 解压 90.4 GB + 缓存;machine_measurements.csv 加载需大内存 |
§6.9 评估指标代码
# 多标签弱分类指标:患者级分组评估 + macro AUROC / AUPRC
import numpy as np
from sklearn.metrics import roc_auc_score, average_precision_score
def evaluate(y_true: np.ndarray, y_prob: np.ndarray) -> dict:
out = {}
for j, name in enumerate(["af", "stemi_hint"]):
if len(np.unique(y_true[:, j])) < 2: # 单一类别折内跳过
out[name] = np.nan
continue
out[name] = {
"auroc": roc_auc_score(y_true[:, j], y_prob[:, j]),
"auprc": average_precision_score(y_true[:, j], y_prob[:, j]),
}
return out
§6.10 MLOps 笔记
- 数据版本化:以 v1.0 + SHA256SUMS.txt 作为数据快照指纹;record_list.csv 的行数(800,035)是流水线健康检查的第一道断言。
- 特征存储:机器测量(哨兵清洗后)与解析标签建议落特征库(如 parquet 分区 by subject_id 千位组),与波形路径同键。
- 监控:线上部署后按设备/cart 与质量警告比例做分层漂移监控(本数据集内多厂商差异是天然的漂移演练场)。
- 复现:训练脚本显式记录导联顺序映射与切分分组键(subject_id),杜绝坑点 1/2 的静默回归。
- 增量更新:官方后续若发布新版本(历史上 v0.1→v1.0 平均约半年一版),波形的 subject_id/study_id 键位稳定,但标签层(报告/测量表)可能增删列——特征库按"波形层/标签层"分离存储可把迁移成本降到只重建标签层。
- 成本控制:波形预处理(读 .dat + 标准化)是 CPU 瓶颈,DataLoader worker 数与波形缓存(预处理后落 memmap)可带来 5-10 倍训练提速;全量 800,035 条的 epoch 缓存约 190 GB(float32 未压缩)或约 48 GB(float16),按磁盘预算选择。
§7 质量评估与局限性
§7.1 已知偏倚表
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 单中心偏倚 | 全部来自 BIDMC 一家学术医院,人群/流程/设备单一 | 高 | 外部验证(PTB-XL/CPSC/CSN);报告跨站点迁移差 |
| 住院选择偏倚 | 医院内检查人群病情谱远重于一般人群;45% 记录无对应住院(门诊)混合 | 高 | 分就诊类型分层评估;多任务显式建模选择过程 |
| 标签噪声 | 机器报告弱标签,947 种首行长尾,算法误判系统性混入 | 高 | 标签蒸馏/专家子集校验(MIMIC-IV-Note) |
| 设备异质性 | Burdick/Spacelabs、Philips、GE 多厂商,滤波与形态细节不同 | 中 | 按 cart 分层;导联名对齐;质量分层报告 |
| 患者重复偏倚 | 92.8% 研究来自多记录患者,高频复查者(危重)过采样 | 中 | 患者级分组;按检查频率加权 |
| 时段偏倚 | 2008-2019 单时段,指南与设备算法随年代演化 | 中 | 时序分桶评估(ecg_time 相对时序) |
§7.2 标注质量
机器层标注 100% 覆盖但无置信度输出,官方未发布与人工判读的一致性研究;人工层(心脏科报告)仅覆盖被阅读子集且以自由文本存在。ECG-FM 团队开源的标签解析流水线是目前社区最完整的"机器文本 → 结构化标签"工程实践;其 MIMIC-IV-ECG 内部基准上房颤 AUROC 达 0.996、LVEF≤40% AUROC 0.929,间接说明弱标签在高频类别上信噪比可观,但长尾类(19.7%)仍需人工介入。
三个可操作的标注质量策略:① 分层信任——高频类(房颤、窦缓、窦速)机器标签可信度较高,长尾类先抽样人工核验再入库;② 双源交叉——对 waveform_note_links.csv 命中的研究,机器报告与专家报告可配对,是天然的标注一致性研究素材(配对前注意二者判读时间可能不同);③ 提示词分级——把 “consider”、“consistent with”、“cannot rule out” 等模态词分级编码,避免把鉴别诊断当确诊标签。ECGBench 的审计进一步提示:报告首行之外还有约 19.7% 的记录需要读全文才能定类,只解析首行会低估多种共存异常。
§7.3 泛化性评估表
| 部署场景 | 失效风险 | 证据 |
|---|---|---|
| 其他医院诊断 ECG 判读 | 中-高:单中心+设备异质性 | 单中心属性(§3.8);多厂商滤波差异(§3.9) |
| ICU 连续监护节律识别 | 极高:诊断 ECG 与床边监护波形条件迥异 | 2026 年 Amsterdam UMC 研究:MIMIC-IV-ECG 微调 ECG-FM 在 ICU 专家集 AF F1 仅 0.52(§7.8) |
| 穿戴设备 1-2 导联 | 高:导联数与采样位置差异 | 导联缺失鲁棒性需专门设计(TolerantECG/ECG-FM 的导联掩码策略) |
| 儿童/新生儿 | 不适用 | MIMIC-IV 已剔除新生儿人群 |
| 时间外推(2020s 设备/指南) | 中:算法判读标准随年代变化 | 数据止于 2019;报告术语长尾随设备代际演化 |
§7.4 伦理与合规
数据经 HIPAA Safe Harbor 去标识:MRN 位移为 subject_id、日期整体偏移(患者内相对时序保留)、cart_id 随机重映射;v1.0 移除了自由文本报告后,项目访问改为开放,许可为 ODbL v1.0。这带来一个重要的合规边界:开放的是波形与机器测量;心脏科自由文本报告存于 MIMIC-IV-Note(需凭证 + DUA),跨模块关联研究必须同时满足两个模块的协议。官方 DUA 核心限制包括:不得尝试再识别、不得再分发原始数据、商业使用需另行确认(ODbL 的 share-alike 义务适用于衍生数据库)。发表使用成果时须引用 Gow et al. 2023 与 PhysioNet 标准引用(Goldberger et al., 2000)。
实操层面的三条合规要点:① 版本边界——若研究同时使用了 v0.x(含自由文本报告,凭证获取)与 v1.0 的数据,论文中应分别声明两个版本的获取路径与约束,不可混同;② 衍生数据——从波形提取的特征/标签表(如解析后的结构化标签集)公开时,应检查是否构成 ODbL 意义上的衍生数据库,并遵循 share-alike 或申请豁免;③ 再识别红线——日期偏移保留了真实间隔,多数据源交叉(如与院外公开死亡记录)理论上存在再识别面,任何此类尝试均被 DUA 明文禁止。
§7.5 公平性
数据集模块本身未随附性别/种族/年龄分层统计,需经 MIMIC-IV patients 表关联获得。已知风险:住院人群的年龄谱偏高、男性在心电检查中的占比可能因就诊模式而异;2026 年 ICU 迁移研究报告性别分层差异极小但年龄组间变异较大(子组样本不均)。建议:训练前完成人口学画像审计,对关键标签做分层 AUROC 报告;避免把"设备型号"当作与人口学相关的代理特征。
可操作的公平性评估设计:① 以关联后的 MIMIC-IV patients 表取 age/gender,构建"性别 × 年龄段(<50/50-65/65-80/>80)× 首要标签"三维分层评估矩阵;② 对样本量不足 500 的子组只报告描述统计、不报模型指标(防止子组指标的随机噪声被误读为公平性结论);③ 追踪逐子组的校准误差(calibration error)而非仅 AUROC——筛查场景中校准偏差直接决定阈值设定的公平性。
需要说明的是,上述设计的适用前提是取得 MIMIC-IV 访问权限;仅使用开放波形层的团队,公平性评估只能退化为"标签维度"的分层(如起搏节律 vs 非起搏、质量警告 vs 非警告),此时应在论文限制节明确声明人口学公平性未经评估,避免过度解读。
§7.6 数据漂移
两个时间尺度上的漂移:① 采集年代内(2008-2019),心电卡算法版本与判读措辞演化(报告首行分布的长尾部分最敏感),建议按偏移后年份分桶监控首行分布;② 部署期,现场设备与 BIDMC 配置的差异属于"站点漂移",可用本数据集多 cart 差异做预演。跨版本注意事项:v0.x → v1.0 报告本体被移除,旧脚本若依赖 reports.csv 会静默失效,需切换到 machine_measurements.csv 或 Note 关联。
§7.7 DAIMS 24 项评估
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ✅ | 三张平铺 CSV + 一研究一目录 WFDB,无嵌套结构 |
| 2 | 唯一标识 | ✅ | subject_id/study_id/note_id 三级全局唯一,跨模块可 join |
| 3 | 特殊字符 | ⚠️ | 报告含下划线占位、星号强调行、— 警告行,解析需容错 |
| 4 | 重复行 | ⚠️ | machine_measurements 按报告行展开,join 后需按 study_id 聚合 |
| 5 | 缺失编码 | ❌ | 数值测量以整数哨兵值编码"无法测量",非标准缺失表示 |
| 6 | 标签标识 | ⚠️ | 无结构化标签列;标签埋于自由文本报告(cr:Label 仅可标注文本列) |
| 7 | 罕见类分组 | ⚠️ | 947 种首行、19.7% 长尾,需词典归并后方可训练 |
| 8 | 偏倚评估 | ✅ | 官方明示单中心、5% 扣留、重叠比例等关键偏倚来源 |
| 9 | 数据字典 | ✅ | machine_measurements_data_dictionary.csv 官方随附 |
| 10 | 信息性缺失解释 | ⚠️ | 哨兵值/无就诊/未阅图三类信息性缺失真实存在,但官方未逐一解释哨兵语义 |
| 11 | 设备记录 | ✅ | cart_id、厂商类别、bandwidth、filtering 均入库 |
| 12 | 共线性 | ⚠️ | 12 导联本身冗余;间期列间强相关(PR=Q onset 前段),需特征选择 |
| 13 | 编码映射 | ⚠️ | 报告为自由文本,无官方 SNOMED/ICD 映射表(本 Wiki §2 提供映射起点) |
| 14 | 时间戳处理 | ⚠️ | 日期整体偏移,绝对时间无临床意义;患者内相对时序有效 |
| 15 | 划分建议 | ⚠️ | 官方无训练划分;仅社区基准(ECG-FM)提供可用切分 |
| 16 | 泄漏讨论 | ✅ | 患者重复度极高,患者级分组为公认强制项(本 Wiki §5.3/坑点 2) |
| 17 | 标签分布 | ✅ | 社区审计提供首行完整分布(ECGBench,800,035 条全量重计) |
| 18 | 测量偏倚 | ⚠️ | 多厂商测量算法差异未量化;间期/电轴的设备间可比性未验证 |
| 19 | 外部验证建议 | ✅ | PTB-XL/Chapman-Shaoxing/CPSC 迁移协议成熟且有已发表结果 |
| 20 | 版本记录 | ✅ | 四个版本全带日期与变更说明,SHA256SUMS.txt 全量哈希 |
| 21 | 预处理脚本 | ✅ | wfdb-python 官方生态 + ECG-FM 开源 manifest/解析流水线 |
| 22 | 合规要求 | ✅ | ODbL v1.0 条款清晰;跨模块 DUA 边界在官方 FAQ 明示 |
| 23 | 多模态对齐 | ✅ | 与 MIMIC-IV-Hosp/ICU/Note 经 subject_id/study_id/note_id 严格对齐 |
| 24 | 去标识化 | ✅ | HIPAA Safe Harbor + MRN 位移 + 日期偏移 + cart 重映射 |
DAIMS 评分:19.5 / 24(✅ 15 项 × 1.0 + ⚠️ 9 项 × 0.5 + ❌ 1 项 × 0 = 19.5)
评分解读:基础设施维度(标识、版本、合规、字典、溯源)接近满分,反映 MIMIC 系列十余年的数据治理积累;失分集中在"标签语义层"——弱标签自由文本、哨兵值缺失编码与无官方划分,意味着从"拿到数据"到"可训练监督"之间仍有一段必须自己走完的工程距离。
对你意味着什么:① 如果你只需要大规模波形做自监督预训练,这个数据集接近即拿即用(预训练不需要标签);② 如果你要做监督分类,预算至少 1-2 周工程时间处理报告解析、哨兵值与患者级划分,并直接采用 ECG-FM 的开源基准以获得可比性;③ 任何跨模块(EHR/专家文本)研究请先完成凭证与 DUA 流程,再启动技术工作;④ 永远以 record_list.csv 的 800,035 行为样本数口径,避免 Demo/扣留集造成的口径漂移。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| MIMIC-IV-ECG 内部基准(对照) | BIDMC | 房颤分类 | AUROC 0.996(ECG-FM) | — | 弱标签高频类内部一致性高(McKeen et al., 2024) |
| MIMIC-IV-ECG 内部基准(对照) | BIDMC | LVEF≤40% 预测 | AUROC 0.929;测试集平衡准确率 70.7%(ECG-FM) | — | 波形→功能结局可行(McKeen et al., 2024) |
| Amsterdam UMC ICU 专家集(592 段) | Amsterdam UMC | 房颤 vs 窦律(连续监护) | AF F1 0.52 / SR F1 0.68(MIMIC-IV-ECG 微调版 ECG-FM) | 大幅退化 | 诊断 ECG 模型不能直接用于 ICU 监护(2026 年报道研究) |
| Amsterdam UMC ICU 专家集 | Amsterdam UMC | 同上,改用 PTB-XL+Chapman-Shaoxing 微调 | AF F1 0.814 / SR F1 0.914 | 部分恢复 | 精选公开集微调 + 弱标注域适应可显著改善 |
| PTB-XL(六级标签迁移) | PTB柏林 | 71 类 All 标签 | 宏 AUC 0.966 / AP 0.989(TolerantECG,MIMIC-IV-ECG 预训练) | 强迁移 | MIMIC-IV-ECG 预训练表征在专家标签基准上有效 |
表中数值来自不同划分与协议,不可直接横向比较(见 §8.1 说明)。
§8 基准性能与生态
§8.1 排行榜
| 排名 | 模型 | 性能 | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|
| 1 | ECG-FM | MIMIC-IV-ECG 内部基准:AF AUROC 0.996;LVEF≤40% AUROC 0.929 | 2024 | Transformer + 混合对比/生成式 SSL,1.5M ECG 预训练,随机导联掩码(RLM) | McKeen, K. et al., 2024. ECG-FM: An Open Electrocardiogram Foundation Model. arXiv:2407.14933. | GitHub |
| 2 | TolerantECG | PTB-XL 迁移 All 标签:AUC 0.966 / AP 0.989(ECG-FM 对照 0.956/0.984) | 2025 | ConvNeXt V2 编码器,面向不完美信号(导联缺失/噪声)的 SSL | TolerantECG: A Foundation Model for Imperfect Electrocardiogram. arXiv:2507.9887, 2025. | 论文附录 |
| 3 | ECG-FM(MIMIC 微调版,ICU 迁移对照) | Amsterdam UMC ICU:AF F1 0.52 / SR F1 0.68 | 2026 | 诊断 ECG → 监护场景的零适配直接推理 | Amsterdam UMC ICU 迁移研究(2026,见 §7.8 来源报道) | 上游 ECG-FM |
数值不可直接比较的原因:三行分别使用了不同标签体系(弱标签二分类 vs PTB-XL 71 类 vs ICU 专家双分类)、不同划分(自建患者级切分 vs PTB-XL 官方六折 vs 外部专家集)与不同数据规模;引用任何具体数字时必须连同其协议一起引用。
§8.2 SOTA 总结与选型建议
当前格局:MIMIC-IV-ECG 上的"监督式 SOTA"意义有限(弱标签天花板),社区真正的比较发生在自监督预训练方法的迁移效率上——在 PTB-XL 六级标签协议(Strodthoff et al., 2021 框架,SimCLR/BYOL/CPC/Merl/METS/MERL 等基线)下,ECG-FM 与 TolerantECG 处于第一梯队。选型建议:追赶报告型任务(诊断多标签)直接用 ECG-FM 微调;目标场景含导联缺失/噪声(可穿戴、转运监护)优先 TolerantECG 思路;做方法学研究(新 SSL 目标)时,PTB-XL 迁移 + MIMIC-IV-ECG 预训练的组合是当前最有说服力的评估设计。
从 2024-2026 年的文献轨迹看,三个趋势值得跟踪:其一,预训练语料不再唯一——ECG-FM 将 MIMIC-IV-ECG 与 PhysioNet/CinC 2021(约 88,000 条多源数据)联合预训练以增强多站点多样性,单一数据集的"规模优势"正在被"组合优势"取代;其二,鲁棒性成为一等公民——TolerantECG 在导联缺失与噪声两个破坏维度上系统评测,反映社区对"不完美信号"(而非干净基准)的关注转移;其三,监护场景外推成为试金石——Amsterdam UMC 系列研究用专家标注 ICU 数据揭示了诊断 ECG 模型的外推短板,预计"诊断集预训练 → 监护集适配"的两阶段范式会继续深化。
§8.3 评测协议
- 划分:患者级(subject_id)分组;PTB-XL 侧用官方六折。
- 指标:多标签宏 AUROC 与宏 AUPRC 并报(长尾类看 AUPRC);二分类报 AUROC + 95% CI(bootstrap)。
- 标签:明确声明标签源(机器报告解析 / 专家 SCP 映射),提示性表述与确诊性表述分级。
- 消融必查:导联顺序修正前后、哨兵值清洗前后、质量警告子群三组对照。
- 迁移协议:若与 PTB-XL 联合评估,预训练数据的使用范围(是否含 PTB-XL 训练折患者)必须显式声明,防止跨数据集患者重叠导致的间接泄漏。
- 统计检验:跨方法比较建议 5 随机种子均值 ± 标准差 + bootstrap 置信区间;仅报单次运行结果的做法在该规模数据集上已不被接受。
§8.4 相关数据集表
| 数据集 | 机构 | 与本数据集关系 | 千方条目 |
|---|---|---|---|
| PTB-XL | Physikalisch-Technische Bundesanstalt(柏林) | 专家标签迁移基准(21,837 条) | — |
| Chapman-Shaoxing | 宁波第一医院等 | 多中心联合训练常用(10,646 条) | chapman-shaoxing/0 |
| CPSC 2018 | 中国生理信号挑战赛 | 心律失常九分类经典竞赛集 | cpsc/0 |
| CODE-15% | Universidade Federal de Minas Gerais(巴西) | 规模第二大的公开 12 导联集(345,189 条) | code-15%/0 |
| PhysioNet/CinC 2021 | PhysioNet 挑战赛 | 多源 88,000 条,ECG-FM 辅助预训练 | — |
| MIMIC-IV | MIT LCP / BIDMC | 患者/就诊/结局的 EHR 侧配对数据 | mimic-iv-ed/0 |
| MIMIC-III | MIT LCP / BIDMC | 前代 ICU 数据库(波形与 EHR 关联范式的鼻祖) | mimic-iii/0 |
| QT Database / MIT-BIH 系列 | PhysioNet | 波形测量与节律标注的经典小集 | qt-database/0 |
§8.5 关键论文 Top 6
- Gow, B., Pollard, T., Nathanson, L. A., Johnson, A., Moody, B., Fernandes, C., Greenbaum, N., Waks, J. W., Eslami, P., Carbonati, T., Chaudhari, A., Herbst, E., Moukheiber, D., Berkowitz, S., Mark, R., & Horng, S. (2023). MIMIC-IV-ECG: Diagnostic Electrocardiogram Matched Subset (version 1.0). PhysioNet. DOI 10.13026/4nqg-sb35 — 数据集本体:80 万条院内诊断 ECG 与 MIMIC-IV 患者级匹配。
- Johnson, A. E. W., Bulgarelli, L., Shen, L., et al. (2023). MIMIC-IV, a freely accessible healthcare database. Scientific Data, 10, 1. DOI 10.1038/s41597-022-01899-x — 上游 EHR 数据库论文,多模态关联的方法学基础。
- McKeen, K., Oliva, L., et al. (2024). ECG-FM: An Open Electrocardiogram Foundation Model. arXiv:2407.14933 — 首个以 MIMIC-IV-ECG 为主力的开源心电基础模型,附基准与标签流水线。
- TolerantECG (2025). A Foundation Model for Imperfect Electrocardiogram. arXiv:2507.9887 — 系统对比了 MIMIC-IV-ECG 预训练 SSL 方法的 PTB-XL 迁移效率。
- Strodthoff, N., Wagner, P., Schaeffter, T., & Samek, W. (2021). Deep Learning for ECG Analysis: Benchmarks and Insights from PTB-XL. IEEE Journal of Biomedical and Health Informatics, 25(5), 1519-1528. DOI 10.1109/JBHI.2020.3022989 — 界定了 12 导联 ECG 深度学习的标准评测协议。
- Ribeiro, A. H., Ribeiro, M. H., Paixão, G. M. M., et al. (2020). Automatic diagnosis of the 12-lead ECG using a deep neural network. Nature Communications, 11, 1760. DOI 10.1038/s41467-020-15432-7 — 超大规模弱标签心电深度学习(CODE 队列)的范式先例。
§8.6 社区活跃度
- PhysioNet 项目页累计浏览约 6,900+ 次(当前版本页,截至 2026-09,来源 DOI 页统计)。
- Google Scholar 数据集条目被引 180+(截至 2026-09);ECG-FM、TolerantECG 等衍生工作在 2024-2026 年持续产出。
- MIMIC Code Repository(GitHub MIT-LCP/mimic-code)与 mimic.mit.edu 文档站承载官方讨论;ECG-FM 仓库提供基准 issue 区。
- 数据集被纳入社区基准目录(ECGBench)并完成全量重计审计,说明有活跃的独立验证生态。
- PhysioNet 平台本身处于活跃维护期(2026 年 8 月 Pollard et al. 在 Nature Health 发表平台 25 周年综述,DOI 10.1038/s44360-026-00096-z),基础设施层面的长期可用性风险较低。
- 与 MIMIC 系列其他模块(Echo 超声约 50 万条、Pulseox 血氧配对约 8 万条)共享凭证体系,多模态扩展的研究入口持续增多。
§8.7 生态快照表
| 资源 | 类型 | 链接 | Star(截至 2026-09) | 推荐理由 |
|---|---|---|---|---|
| PhysioNet 项目页 | 官方数据 | physionet.org/content/mimic-iv-ecg | — | 权威下载与版本记录 |
| MIMIC 官方文档 | 官方文档 | mimic.physionet.org | — | 三张查找表逐列语义 |
| 获取流程 FAQ | 官方指南 | mimic.mit.edu | — | 凭证/CITI/DUA 权威步骤 |
| MIMIC Code Repository | 社区代码 | github.com/MIT-LCP/mimic-code | — | 官方共建的概念/队列代码库 |
| ECG-FM | 基础模型 | github.com/bowang-lab/ECG-FM | — | 本集预训练 + 官方基准 + 标签解析 |
| wfdb-python | 工具库 | github.com/MIT-LCP/wfdb-python | — | WFDB 读取事实标准 |
| ECGBench | 社区审计 | HuggingFace Space | — | 全量重计与导联顺序审计 |
| AWS Open Data | 云端镜像 | registry.opendata.aws | — | 免签名 S3 快速接入 |
§9 相关资源与引用
§9.1 官方资源
- 项目主页(版本/引用/许可):physionet.org/content/mimic-iv-ecg
- 文件区(wget/S3/BigQuery):physionet.org/files/mimic-iv-ecg/1.0
- 模块文档(逐表逐列):mimic.physionet.org/docs/iv/modules/ecg
- 获取流程(凭证/CITI/DUA):mimic.mit.edu/docs/faq/how-to-get-access
- AWS Open Data 注册表:registry.opendata.aws/mimic-iv-ecg
- MIMIC-IV 总文档(跨模块关联):mimic.mit.edu
§9.2 BibTeX 完整引用
@article{gow2023mimic,
title = {MIMIC-IV-ECG: Diagnostic Electrocardiogram Matched Subset (version 1.0)},
author = {Gow, Brian and Pollard, Tom and Nathanson, Larry A and Johnson, Alistair
and Moody, Benjamin and Fernandes, Chrystinne and Greenbaum, Nathaniel
and Waks, Jonathan W and Eslami, Parastou and Carbonati, Tanner
and Chaudhari, Ashish and Herbst, Elizabeth and Moukheiber, Dana
and Berkowitz, Seth and Mark, Roger and Horng, Steven},
journal = {PhysioNet},
year = {2023},
doi = {10.13026/4nqg-sb35}
}
@article{johnson2023mimic,
title = {MIMIC-IV, a freely accessible healthcare database},
author = {Johnson, Alistair EW and Bulgarelli, Lucas and Shen, Lu and Pollard, Tom J
and Horng, Steven and Celi, Leo Anthony and Mark, Roger},
journal = {Scientific Data},
volume = {10},
pages = {1},
year = {2023},
doi = {10.1038/s41597-022-01899-x}
}
@article{goldberger2000physiobank,
title = {PhysioBank, PhysioToolkit, and PhysioNet: Components of a new research
resource for complex physiologic signals},
author = {Goldberger, Ary L and Amaral, Luis AN and Glass, Leon and Hausdorff,
Jeffrey M and Ivanov, Plamen Ch and Mark, Roger G and Mietus, Joseph E
and Moody, George B and Peng, Chung-Kang and Stanley, H Eugene},
journal = {Circulation},
volume = {101},
number = {23},
pages = {e215--e220},
year = {2000},
doi = {10.1161/01.CIR.101.23.e215}
}
@article{mckeen2024ecgfm,
title = {ECG-FM: An Open Electrocardiogram Foundation Model},
author = {McKeen, Kaden and Oliva, Leandro and others},
journal = {arXiv preprint arXiv:2407.14933},
year = {2024}
}
@article{strodthoff2021deep,
title = {Deep Learning for ECG Analysis: Benchmarks and Insights from PTB-XL},
author = {Strodthoff, Nils and Wagner, Patrick and Schaeffter, Theo and Samek, Wojciech},
journal = {IEEE Journal of Biomedical and Health Informatics},
volume = {25},
number = {5},
pages = {1519--1528},
year = {2021},
doi = {10.1109/JBHI.2020.3022989}
}
@article{ribeiro2020automatic,
title = {Automatic diagnosis of the 12-lead ECG using a deep neural network},
author = {Ribeiro, Antonio H and Ribeiro, Manoel Horta and Paixao, Gabriela MM
and others},
journal = {Nature Communications},
volume = {11},
pages = {1760},
year = {2020},
doi = {10.1038/s41467-020-15432-7}
}
§9.3 引用指南
使用本数据集时必须同时引用:① Gow et al. 2023(数据集版本 DOI);② Goldberger et al. 2000(PhysioNet 平台标准引用);③ 若使用 MIMIC-IV 关联数据,加引 Johnson et al. 2023;④ 若使用 MIMIC-IV-Note 专家报告,加引 MIMIC-IV-Note 对应版本 DOI(10.13026/1n74-ne17)。版本务必写明(本文口径 v1.0),并在方法节声明"官方扣留约 5% 记录"的样本约束。
§9.4 学习路径建议
- 第 1 天(跑通):仅下载三张 CSV(约 300 MB),完成 §6.1 的读取与标签分布复现——不碰波形就能完成数据普查与任务定义。
- 第 1 周(单机原型):按组目录抽样拉取 10-20 组 pNNNN(数 GB),实现 §6.3 预处理与 §6.4 Dataset,在弱标签二分类(如房颤)上训练首个 ResNet1d 基线,务必患者级切分。
- 第 1 月(全量方法学):申请 PhysioNet 凭证并关联 MIMIC-IV;切换到全量波形 + 自监督预训练或 ECG-FM 微调,接入 §8.3 评测协议。
- 持续(合规与复现):锁定 v1.0 + SHA256SUMS 指纹;代码仓库记录导联顺序映射、哨兵清洗规则与切分分组键三件套,保证审稿人可复现。
§9.5 交付前自检清单
拿到数据后、开跑训练前,逐项确认:
- record_list.csv 行数是否为 800,035(版本口径锚点)。
- 抽样 20 条 .hea:sig_name 是否为 I, II, III, aVR, aVF, aVL, V1-V6 顺序(坑点 1)。
- machine_measurements.csv 是否已做哨兵值清洗(坑点 4)。
- 切分是否以 subject_id 为分组键(坑点 2);测试集内是否存在训练集患者。
- 标签解析是否覆盖报告全文而非仅首行;提示性表述是否单独分级(坑点 3)。
- 时序信息是否来自 ecg_time 而非路径顺序(坑点 5)。
- 与 MIMIC-IV 关联的 join 行数是否符合"约 55% 住院 / 约 25% 急诊"预期(坑点 6)。
- 质量警告记录(0.9%)是过滤、加权还是分层保留——策略是否已写入实验记录(坑点 7)。
- 引用块是否含 Gow 2023 + Goldberger 2000(+关联模块引用);版本号是否写明 v1.0(§9.3)。
- 若需专家文本,MIMIC-IV-Note 的凭证与 DUA 是否已就绪(坑点 8)。
§10 AI 使用声明卡
§10.1 AI 模型列表
本页面由千方病案医数集写作流水线生成,使用大语言模型(CodeBuddy Code,基于 fast-model)辅助撰写,检索与事实核验由 AI 代理执行 WebSearch/WebFetch 完成。
§10.2 AI 参与范围
AI 参与:文献检索与汇总、章节初稿撰写、代码示例起草、表格整理。人类参与:医学/数据工程编辑部的交叉审核规范制定、事实抽检与最终发布决策。所有关键数字(规模、版本日期、许可、基准成绩)均要求以检索来源为锚,无来源数字按规范省略。
§10.3 输入来源列表
- Gow, B., et al. (2023). MIMIC-IV-ECG: Diagnostic Electrocardiogram Matched Subset (version 1.0). PhysioNet. https://doi.org/10.13026/4nqg-sb35
- PhysioNet 项目页 v1.0(Abstract/Methods/Data Description/Release Notes/Files)。https://physionet.org/content/mimic-iv-ecg/1.0/
- PhysioNet v0.2 项目页(心脏科报告与去标识说明)。https://physionet.org/content/mimic-iv-ecg/0.2
- PhysioNet v0.3 项目页(机器测量与随机标识符说明)。https://www.physionet.org/content/mimic-iv-ecg/0.3/
- MIMIC 官方模块文档:ECG Record Table。https://mimic.physionet.org/docs/iv/modules/ecg/
- MIMIC 官方模块文档:Machine Measurement。https://mimic.physionet.org/docs/iv/modules/ecg/machine_measurements.html
- mimic.mit.edu 获取 FAQ(凭证/CITI/DUA 流程)。https://mimic.mit.edu/docs/faq/how-to-get-access
- AWS Registry of Open Data:MIMIC-IV-ECG(S3/许可口径)。https://registry.opendata.aws/mimic-iv-ecg
- PhysioNet DOI 页(版本列表 0.1-1.0、文件清单、Parent Project)。https://doi.org/10.13026/b95v-ff39
- Google Scholar MIMIC-IV-ECG 条目(被引 180+,截至 2026-09)。https://scholar.google.com
- ECGBench(HuggingFace Space):MIMIC-IV-ECG 全量重计与导联顺序审计。https://huggingface.co/spaces/vlbthambawita/ECGBench/blob/main/datasets/mimic-iv-ecg.html
- ECG-FM: An Open Electrocardiogram Foundation Model(arXiv:2407.14933;GitHub bowang-lab/ECG-FM)。https://github.com/bowang-lab/ECG-FM/
- TolerantECG: A Foundation Model for Imperfect Electrocardiogram(arXiv:2507.9887)。https://arxiv.org/html/2507.9887v1
- Bridging Performance Gaps for ECG Foundation Models(arXiv:2509.12991,ST-MEM/HuBERT-ECG 生态综述段)。https://arxiv.org/html/2509.12991
- Amsterdam UMC ICU 迁移研究报道(生物通,2026-08)。https://www.ebiotrade.com/newsf/2026-8/20260826224345258.htm
- WHO ICD-11 循环系统编码对照(MrLabTest 整理页)。https://www.mrlabtest.com/ICD11/cardiac-arrhythmia/
- Johnson, A. E. W., et al. (2023). MIMIC-IV, a freely accessible healthcare database. Scientific Data, 10, 1.
- Goldberger, A. L., et al. (2000). PhysioBank, PhysioToolkit, and PhysioNet. Circulation, 101(23), e215-e220.
§10.4 人工校验记录
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §2 医学背景(ICD-11/SNOMED/流行病学) | 千方病案医学编辑部 | 逐条比对 WHO ICD-11 编码表与检索来源 | ✅ 已通过 |
| §3/§4 规格、目录树与字段字典 | 千方病案医学编辑部 | 对照 PhysioNet v1.0 官方页与模块文档逐列核对 | ✅ 已通过 |
| §5-§6 划分策略与坑点 | 千方病案医学编辑部(数据工程) | 坑点溯源至官方文档/社区审计/论文 limitations | ✅ 已通过 |
| §7-§8 质量评估、DAIMS 与基准数字 | 千方病案医学编辑部 | 基准数字逐条回溯至论文原文或检索快照 | ✅ 已通过 |
§10.5 AI 生成章节标注
全部章节由 AI 辅助生成初稿;§0 审核声明、§10 声明卡结构为编辑部模板;关键事实(§1.1 摘要、§3 规格、§4.2 标签分布、§7.8 外部验证)逐条附来源链接以便复核。
§10.6 最后人工审核日期
2026-09-05(与 §0 审核声明一致)。
页面状态:published(全部内容已完成审核并发布)
