信息速览
§0 导读:这个数据集解决什么问题
2020 年初,自动 12 导联心电图(12-lead ECG,十二导联心电)判读面临一个尴尬局面:几乎所有已发表的心电分类算法都在单一、小型或人群同质的数据集上训练和测试——PTB-XL 看德国门诊人群,CPSC2018 看中国体检人群,MIT-BIH 看几十年前波士顿的 48 条 Holter 片段。一个在 PTB-XL 上 AUROC 0.99 的模型,换到另一家医院的设备与人群上还能剩多少?没有人能回答,因为没有人能在同一个公开赛场上把这件事量化。
PhysioNet/Computing in Cardiology Challenge 2020(下称挑战赛)用一个激进的工程设计正面回应了这个问题:把来自 4 个国家、6 个医院系统、3 大洲的 66,361 条 12 导联 ECG 集结成一个赛场,其中 43,101 条连同 SNOMED CT 诊断标签公开(这是截至当时最大的公开 12 导联 ECG 集合),其余约 2.3 万条(含 10,000 条从未公开的 Undisclosed 库)作为隐藏测试集封存。
本条目主角 Georgia 12-Lead ECG Challenge Database(G12EC) 在这个设计里扮演了不可替代的角色:它是六个组成库中唯一一个完全为挑战赛新公开的数据库,来自 Emory 大学(美国东南部亚特兰大),公开训练段 10,344 条(男 5,551 / 女 4,793),每条 10 秒、500 Hz。选择 Emory 不是随机的——美国东南部人群在心血管流行病学上有独特的谱系(高肥胖率、高高血压与心衰负担、显著的种族构成差异),这让 G12EC 成为整个挑战赛里「跨人群泛化性」压力测试的主要砝码:验证集与测试集都掺入了隐藏的 G12EC 段,任何队伍想拿高分,都必须在 Georgia 人群上不掉链子。
G12EC 还见证了三项至今影响医学 AI 竞赛设计的规则创新:
- 强制开源复现:历史上第一次,公开竞赛要求参赛队同时提交预训练模型与训练代码,主办方在隐藏数据上复跑——不能复现的模型不得排名。这条规则后来成为 Kaggle 医学赛道与各类 grand challenge 的通行做法。
- 加权误诊评分:放弃传统 accuracy/AUC,改用由心脏科专家赋权的混淆矩阵指标——把「误诊为治疗方法相似的疾病」给部分分,「误诊为风险迥异的疾病」重罚,直接把临床代价函数写进了排行榜。
- 泛化性掉分的定量暴露:最终成绩显示,高性能算法在隐藏测试集上普遍掉分约 10%。这个「约 10% 的隐藏税」成为此后五年跨中心心电模型研究的标准参照系。
本条目面向三类读者:想直接用数据的研究者(§2、§6 给出规格与获取路径)、想复现或比较基准的算法团队(§4、§7 梳理 41 支排名队伍的方法谱系与掉分规律)、以及想设计自己的医学 AI 挑战赛的组织者(§8 提炼可迁移的设计经验)。
§1 数据集速览:十问十答
Q1:G12EC 到底是什么规模的数据?
公开训练段 10,344 条 12 导联 ECG,每条 10 秒、500 Hz 采样(5,000 个采样点/导联)。另有一个未公开例数的隐藏段,被拆进挑战赛的验证集与测试集。数据以 WFDB 格式发布:信号存为 MATLAB v4 格式的 .mat 文件,元数据存为 .hea 头文件。
Q2:数据从哪来?
美国佐治亚州亚特兰大 Emory 大学医疗系统。挑战赛论文明确说明该库「代表美国东南部的独特人口(a unique demographic of the Southeastern United States)」。这是六个组成库中唯一的美国本土来源——也是唯一为挑战赛全新公开的库。
Q3:标注是什么形式?
每条记录多标签标注,采用 SNOMED CT 临床术语编码,训练数据覆盖 111 个诊断类;挑战赛只用其中 27 个相对常见、有临床意义、可从 ECG 识别的类计分。标签同时包含人口学字段(年龄、性别),年龄超过 89 岁按 HIPAA 规则统一记为 92。
Q4:数据能免费下载吗?
能。通过 PhysioNet 的 challenge-2020 内容页下载(v1.0.2 为当前版本),提供 wget 直链与 Google Storage tar.gz 两种通道,无需申请凭证访问(credentialed access),无需提交数据使用协议。这与 PTB-XL 等库的开放程度一致。
Q5:它和 PTB-XL、CPSC2018 是什么关系?
同一个挑战赛的其他组成库(见 §2 的六库总表)。PTB-XL(21,837 条)与 CPSC(6,877 条)本身是已发布的独立数据集,G12EC 则是专为挑战赛新公开的。三者人群、设备、采样协议不同,是跨库泛化研究的标准三角。库内条目 ptb-xl(70)、cpsc(132) 分别有独立详解。
Q6:挑战赛的冠军是谁?用的什么方法?
冠军是 prna 队(Philips 研究团队,Annamalai Natarajan 等),方法为宽而深的 Transformer 网络;亚军「Between a ROC and a heart place」(自适应导联加权 ResNet);季军 HeartBeats(SE-ResNet)。前五名方案全部是深度学习,其中 Transformer、ResNet、注意力机制、域泛化技术各占一席(详见 §4)。
Q7:为什么说 G12EC 是「泛化性压力测试的砝码」?
挑战赛的验证集 = 隐藏 CPSC 段 + 隐藏 G12EC 段;测试集 = 隐藏 CPSC 段 + 隐藏 G12EC 段 + 全部 Undisclosed 库。也就是说,一支队伍即便把六个公开库的数据增强用到极致,最终成绩仍有相当权重取决于它在从未见过的 Emory 人群与完全未知的 Undisclosed 机构数据上的表现。
Q8:这个数据集有什么已知的坑?
官方坦承标签质量不均(有机器标注人工复核的、有单人工标注的、有多人工标注的),存在错误与可争议标签,且官方声明不再更新。SNOMED CT 编码是近似映射。年龄>89 统一记 92。详见 §10 避坑清单的八条。
Q9:挑战赛之后这个数据还活着吗?
非常活跃。它是 PhysioNet Challenge 2021(直接扩展赛题)的基础;此后五年内几乎所有跨中心 12 导联 ECG 论文(包括专用基础模型与 LLM-ECG 工作)都把它与 PTB-XL、CPSC 并列为标配训练源;它还是 openecg 等数据标准讨论中的常引用案例。库内条目 mimic-iv-ecg(172)、ptb-xl-plus(1025) 构成其下游数据生态。
Q10:一句话总结它的历史地位?
它让「12 导联 ECG 自动判读」从单中心自嗨第一次走向了可量化的跨中心公开竞争——并顺手立下了「医学 AI 竞赛必须开源、评分必须贴临床代价」的新行规。
§2 数据构成与规格
2.1 G12EC 本体规格
| 属性 | 值 |
|---|---|
| 官方名称 | Georgia 12-Lead ECG Challenge (G12EC) Database |
| 来源机构 | Emory University, Atlanta, Georgia, USA |
| 公开训练段规模 | 10,344 条 |
| 性别构成 | 男 5,551 / 女 4,793 |
| 记录时长 | 10 秒/条 |
| 采样率 | 500 Hz |
| 导联配置 | 标准 12 导联:I, II, III, aVR, aVL, aVF, V1–V6 |
| 文件格式 | WFDB:MATLAB v4 .mat(信号)+ .hea(头文件/标注) |
| 信号存储 | 16 bit 整数,单位 mV,头文件内含增益与分辨率字段 |
| 标注体系 | SNOMED CT 多标签(训练覆盖 111 类,27 类计分) |
| 人口学字段 | 年龄(>89 记 92)、性别 |
| 隐藏段 | 例数未公开,拆入验证集与测试集 |
| license | PhysioNet 挑战赛通行口径 CC BY 4.0 |
| 获取 | PhysioNet challenge-2020 v1.0.2 页面,wget/Google Storage 直链 |
2.2 六库全家福:挑战赛公开数据总表
理解 G12EC 必须把它放回挑战赛的六库语境——单库是拼图,六库才是赛场。官方公告与论文口径完全一致:
| 库 | 条数 | 国家/机构 | 时长 | 采样率 | 性别构成(男/女) |
|---|---|---|---|---|---|
| CPSC2018 | 6,877 | 中国南京(中国生理信号挑战赛) | 6–60 秒 | 500 Hz | 3,699 / 3,178 |
| CPSC-Extra | 3,453 | 同上(未用数据) | 6–60 秒 | 500 Hz | 1,843 / 1,610 |
| INCART(St Petersburg) | 74 | 俄罗斯圣彼得堡 | 30 分钟 | 257 Hz | 未分列 |
| PTB Diagnostic | 516 | 德国不伦瑞克(PTB) | 不定 | 1,000 Hz | 377 / 139 |
| PTB-XL | 21,837 | 德国(全国 15 个站点) | 10 秒 | 500 Hz | 11,379 / 10,458 |
| G12EC | 10,344 | 美国 Emory | 10 秒 | 500 Hz | 5,551 / 4,793 |
| Undisclosed(隐藏) | 10,000 | 美国另一机构(永不公开) | 不定 | 不定 | 不公开 |
公开段合计 43,101 条,覆盖中国、德国、俄罗斯、美国四国、3 大洲;论文口径的挑战赛数据总盘子(含隐藏段)为 66,361 条,来自 6 个医院系统。
2.3 隐藏数据的拆分策略:G12EC 的双面角色
挑战赛的评估数据结构官方有明确说明:
- 验证集(Validation Set) = 隐藏 CPSC 段 + 隐藏 G12EC 段
- 测试集(Test Set) = 隐藏 CPSC 段 + 隐藏 G12EC 段 + 全部 Undisclosed 段
- 官方声明:训练与测试数据间「极可能存在少量同患者记录」(因来源库相同),但 Undisclosed 库来自地理上独立的机构,患者与训练库重合概率「趋近于零但不为零」
- 测试数据永不发布,赛后也仅按发表必要性个案接受「代跑代码」请求
这一设计的直接后果:一支队伍的成绩由三段异质数据共同决定——同一机构的未知患者(G12EC 隐藏段,考察人群内泛化)、另一国的未知患者(隐藏 CPSC 段,考察跨国泛化)、以及完全未知的机构(Undisclosed,考察黑天鹅泛化)。G12EC 在其中同时出现在验证与测试两侧,是唯一贯穿全程的美国本土压力源。
2.4 数据文件的解剖学:一条记录长什么样
每条 G12EC 记录由两个文件构成(以官方示例 A0001 为例):
.mat 文件(MATLAB v4 二进制格式):12 导联 × 5,000 采样点的信号矩阵。Python 用 scipy.io.loadmat 直接读,MATLAB 用 load 读。信号以 16 bit 整数存储(1 单位 = 1/1000 mV),官方为统一 WFDB 格式对原始数据做过幅度与分辨率的整数化调整——这是官方明示的三处数据处理之一。
.hea 头文件(WFDB 文本格式):
- 第一行:记录名、导联数、采样率、每导联采样点数(如
A0001 12 500 7500) - 后续 12 行:每导联的文件名、存储格式、增益、基线、起始值、校验和、导联名
- 末尾若干行:年龄、性别、SNOMED CT 诊断码(多标签,空格分隔)
三个值得注意的工程细节:其一,官方对原始数据只做了三类改动——年龄/性别的 HIPAA 合规处理、诊断的 SNOMED CT 近似编码、幅度的整数化,其余原样保留;其二,部分记录时长字段显示 7,500 点(15 秒)而非 5,000 点,说明同一库内记录时长并非严格均匀,使用时应逐条读取头文件而非硬编码;其三,.mat 为 v4 老格式是刻意为之——保证 MATLAB/Python/R/Julia 全生态零门槛读取(官方基线覆盖 MATLAB、Python、R,后补 Julia)。
2.5 标签体系:111 类诊断与 27 类计分
训练数据的 111 个 SNOMED CT 诊断类分为两个层级:
27 个计分类:官方定义为「相对常见、有临床意义、更可能从 ECG 信号中识别」的类。已核实的示例包括心房颤动(164889003)与一度房室传导阻滞(270492004)。完整 27 类清单见挑战赛论文附表与官方 scoring CSV,本条目不逐条复制(存照 §9)。计分类的选取逻辑决定了排行榜的口味:稀有的、ECG 上不可见的诊断不参与排名,防止队伍靠「全输出正常」或类别先验套利。
84 个非计分类:仍在训练数据中提供,官方明确「由参赛者自行决定是否使用」——实际上顶级队伍普遍把它们用作辅助监督信号(多任务学习),利用标签间的层级关系提升计分类性能。
标签来源的异质性官方反复强调:部分库(如 PTB-XL)有系统的人工复核流程,部分库是机器初标加人工 overread,还有单人工标注与多人工标注并存的情况。G12EC 的具体标注流程未在论文中公开细节,官方统一的表述是「每个库都必然存在错误或可争议的标签……处理这些问题本身就是挑战赛的一部分」——这句近乎免责声明的话,实际上是一份诚实的标签噪声警示(详见 §10 坑 2)。
2.6 与同期 ECG 数据集的谱系关系
把 G12EC 放进更大的时间轴里看,它的位置非常清晰:
- 谱系上游:MIT-BIH Arrhythmia(1970s-80s,48 条,波士顿)确立了这个领域的基准文化;CSE(1980s)与 PTB(1990s)引入多导联与诊断学框架;PTB-XL(2020 年初发布)提供了当时最大规模。
- 同一世代:CPSC2018(2018,中国)证明了大公开赛的可行性,是挑战赛 2020 六库中最直接的模板。
- G12EC(2020):第一个以「跨人群泛化压力测试」为明确目的、从美国医疗系统释放的万例级公开 12 导联 ECG。
- 谱系下游:PhysioNet Challenge 2021 直接扩展赛题(加入 ECG 与临床变量联合任务);MIMIC-IV-ECG(库内 rid=172,约 800,000 条)把万例级推到十万例级;ECG Image Kit 等图像化数据集(库内 rid=959)则开辟了纸质 ECG 照片这一平行模态。
§3 挑战赛过程与评分设计
3.1 时间线全景
| 日期 | 事件 |
|---|---|
| 2020-02-07 | 挑战赛开幕 |
| 2020-03-16 | 排行榜上线 |
| 2020-03-31 | CinC 摘要截止延至 5 月 1 日 |
| 2020-04-25 | 非官方阶段延期 5 天(帮队伍修 bug) |
| 2020-05-11 | 首批 SNOMED CT 标注数据发布 |
| 2020-05-27 | 111 类诊断全清单发布 |
| 2020-06-08 | 增发 4 个新数据组,六库合计 43,101 条 |
| 2020-06-24 | SNOMED CT 映射更新 + 新评分指标发布 |
| 2020-07-01 | 官方阶段开始,强制提交训练代码生效 |
| 2020-07-29 | 外卡(wild card)队伍受邀参赛 |
| 2020-08-24 | 官方阶段结束 |
| 2020-09-16 | CinC 2020(意大利里米尼)宣布获胜者 |
| 2021-01 | 总结论文发表于 Physiological Measurement |
整场挑战赛 217 支队伍报名、1,395 次投稿(其中 707 次成功通过提交系统)、110 篇摘要被接收、最终 41 支队伍正式排名。每队全程最多 15 次计分投稿(官方与非官方两阶段合计),这个配额设计强制队伍把投稿次数当作稀缺资源做实验规划。
3.2 评分指标:把临床代价函数写进排行榜
2020 年挑战赛最具方法论影响的决定是弃用 accuracy 与 AUC,改用自定义的加权混淆矩阵指标。其定义:
设诊断类集合 C=[c_i],在某个数据库上计算多类混淆矩阵 A=[a_ij],其中 a_ij 是「真实为类 c_j 但被判为类 c_i」的记录数。为矩阵每个元素赋权 W=[w_ij],权重由主办方心脏科专家根据「误诊的治疗/后果相似度」判定。原始分 s = Σ_ij w_ij·a_ij。归一化后:全判对的分类器得分 1,永远输出「正常」的分类器得分 0,永远输出「全部异常」的分类器得分为负。
这个指标的临床语义非常直白:
- 真阳性:满分奖励——检出疾病本身就是价值
- 假阴性:部分奖励——漏诊有代价但不是零(部分漏诊疾病的后果与正确判读相近时仍可得分)
- 假阳性:零分甚至负激励——把正常人误诊为危险疾病会造成真实伤害(过度治疗、焦虑、资源占用)
- 相似疾病混淆:按专家赋权给部分分——把一度房室传导阻滞误判为二度阻滞,与把它误判为 ST 段抬高型心梗,在评分上的差别天壤之别
官方同时提供 AUROC、AUPRC、macro F1、accuracy 作为参考指标,但排名只看加权分。附录 CSV 中保留了全部指标的逐队逐库明细,这让 2020 挑战赛成为研究「指标选择如何改变模型排序」的天然实验场——同一支队伍在不同指标下的名次可以相差十几位。
3.3 强制开源复现:规则层面的分水岭
2020 挑战赛第一次在公开竞赛中要求:参赛队必须同时提交预训练模型与训练模型的完整代码,主办方在隐藏数据上复跑队伍的代码。若无法从训练代码复现出模型,则取消排名资格。
这个规则改写了三件事:
- 造假成本:以前「在私有数据上偷偷预训练再假装从头训」无从查证;现在提交的训练代码就是审计记录。
- 科研可复现性:41 支排名队伍的代码全部公开在官方 results 页面(单队最大 286 MB),构成一个史无前例的心电算法方法库——今天任何研究者在做 ECG 基线时都可以直接下载冠军代码起步。
- 行业跟随:此后 Kaggle 医学赛道、MICCAI challenge、各类 grand challenge 陆续采纳类似的开源审计条款。挑战赛论文自己总结:「为公开数据科学竞赛的可复现性设立了新标杆(setting a new bar in reproducibility)」。
3.4 基线模型
官方提供了两个朴素基线(各产出一个标签):
- Python 基线:Pan-Tomkins 算法检测 QRS 波,计算 RR 间期统计矩 + .hea 头文件里的人口学字段,喂给逻辑回归
- MATLAB 基线:用 PhysioNet 心血管信号工具箱与 ECGKit 从 XYZ 中位心跳计算全局电异质性(Global Electrical Heterogeneity, GEH)+ 人口学字段,同样逻辑回归
基线的存在有两个功能:给新手提供提交格式模板(.csv 输出格式、记录 ID 对齐),以及给排行榜设定「不可逾越的下限」——任何严肃队伍都应大幅超过逻辑回归。事实证明所有正式排名队伍都远超基线,但基线本身的价值在赛后才显现:它们成为检验数据管道正确性的标准试金石。
§4 模型生态:41 支排名队伍的方法谱系
4.1 最终排名前十(官方口径)
| 名次 | 队伍 | 方法 | 成员机构 |
|---|---|---|---|
| 1 | prna | 宽而深 Transformer | Philips 研究(Natarajan 等) |
| 2 | Between a ROC and a heart place | 自适应导联加权 ResNet,多时长信号训练 | Zhao 等(中国) |
| 3 | HeartBeats | SE-ResNet | Zhu 等(新加坡) |
| 4 | Triage | 散射变换(Scatter Transform)+ DNN | Oppelt 等(德国) |
| 5 | Sharif AI Team | 对抗多源域泛化 | Hasani 等(伊朗) |
| 6 | DSAIL_SNU | 深度学习技巧全集(Bag of Tricks) | 首尔国立大学 |
| 7 | UMCUVA | 预训练指数膨胀因果 CNN | UMC Utrecht(荷兰) |
| 8 | CQUPT_ECG | SE-ECGNet:多尺度 SE-Net | 重庆邮电大学 |
| 9 | ECU | 神经架构设计影响研究 | Edith Cowan 大学(澳) |
| 10 | PALab | 深度神经网络 | Jia 等(中国) |
排名 11–41 的队伍同样全部公开了论文与代码,方法覆盖图卷积网络(Leicester-Fox)、梯度提升树(CVC、Madhardmax 的 XGBoost)、CNN-LSTM 混合(Care4MyHeart)、卷积网络集成(Code Team)、规则方法与深度学习混合(Gio_Ivo)、拓扑特征随机森林(Cordi-Ak)、表示学习数字生物标志物(Technion_AIMLAB)等。方法多样性本身就是这项挑战赛的可引用发现:在加权临床指标下,没有单一架构垄断前排,数据工程与训练策略的贡献不亚于骨干网络选择。
4.2 冠军方案解剖:prna 的宽深 Transformer
冠军队伍来自 Philips 的临床 AI 团队。其方案要点:
- 宽而深(wide and deep)混合架构:Transformer 分支捕获导联间与时间步间的长程依赖,另一个深度 CNN 分支保留局部形态特征,两路特征融合后做多标签分类
- 多尺度输入:利用六库异构的时长(6–60 秒)设计多种输入窗口
- 概率输出与阈值校准:按 27 个计分类分别校准阈值——加权评分指标对每个类的假阳/假阴代价不同,统一阈值显然次优
- 数据工程优先:对六库标签噪声做针对性清洗与重加权
亚军方案(Between a ROC and a heart place)值得单独一提:其「自适应导联加权 ResNet」的核心洞察是——不同记录的导联质量参差(电极脱落、噪声导联很常见),与其平等对待 12 个导联,不如让网络学习逐记录的导联可靠性权重。这个思路直接回应了真实临床 ECG 的数据质量问题,也是跨库训练(六库设备差异巨大)时的天然适配器。
季军 HeartBeats(新加坡团队)用 SE-ResNet(Squeeze-and-Excitation 通道注意力)证明:在心电这种通道语义明确的信号上,轻量通道注意力与重型 Transformer 的差距可以很小。第五名 Sharif AI Team 的对抗多源域泛化则是全场方法学上最有「预见性」的方案——把六库显式当作六个域,用对抗训练学习域不变表征,直接瞄准测试集里的隐藏机构。当主办方公布「高性能算法在隐藏数据上掉分约 10%」时,域泛化路线的掉分幅度明显小于纯拟合路线。
4.3 方法分布的统计观察
粗略统计 41 支排名队伍的方法谱系:
- 深度学习为主体:约 9 成队伍以 CNN/RNN/Transformer 及其变体为主干
- ResNet 家族最普及:残差连接几乎成为默认选择(ResNet、SE-ResNet、宽 ResNet、lead-weighted ResNet……)
- 注意力机制全面渗透:从 SE 通道注意力到 self-attention 到 GRU+attention
- 传统 ML 未死:梯度提升树系(XGBoost/LightGBM)与特征工程路线仍挤进中游,在可解释性场景有独特价值
- 信号处理特征复归:散射变换(Triage,第 4 名)、小波特征(Eagles)、GEH 全局电异质性等经典特征与深度网络杂交的方案表现稳定
4.4 隐藏测试集的「10% 税」
挑战赛最重要的定量结论:高性能算法在验证集上可达很高分数,但在隐藏测试集上普遍出现约 10% 的相对掉分。掉分来源官方归为三类:
- G12EC 隐藏段:同机构但未见过的患者——人群内协变量漂移(季节、科室、设备批次)
- 隐藏 CPSC 段:跨国分布差异
- Undisclosed 库:完全未知的机构——设备、采集协议、人群三重漂移叠加,这是掉分最重的部分
这个「约 10%」成为此后跨中心 ECG 文献的标准参照:任何声称「跨中心鲁棒」的新方法,都要回答「你比 2020 挑战赛的 10% 税省了多少」。第五名 Sharif 的域泛化方案、以及后续大量 multi-source domain generalization 论文,都直接以此为动机。
§5 泛化性发现:跨库实验的教训
5.1 六库联合 ≠ 六库各自之和
挑战赛的一个隐含实验设计:参赛队可以自由决定用几个库训练。赛后分析显示,用满六库的队伍平均表现优于单库或双库队伍,但收益不是线性的——加入 PTB-XL(21,837 条)的边际收益最大,加入 INCART(74 条)几乎没有影响但引入了异质时长格式。G12EC 的加入对「测试集表现」的收益尤其明显:因为测试集本身就含 G12EC 隐藏段,训练时见过同分布数据(哪怕只有公开段)的队伍在对应隐藏段上掉分更少。这验证了一个朴素的域适应原理:哪怕只有少量目标域数据,也比纯源域数据好得多。
5.2 采样率与时长异构:被低估的工程坑
六库的采样率横跨 257–1,000 Hz,时长横跨 6 秒–30 分钟。统一处理的三种策略及其代价:
- 重采样到 500 Hz:多数队伍的选择。PTB(1,000 Hz)降采样损失高频细节,INCART(257 Hz)升采样引入插值伪迹
- 多分辨率分支:效果最好但工程最重,冠军与亚军都用了类似思想
- 截断到 10 秒:INCART 的 30 分钟记录被截断后,长程信息(如间歇性心律失常)完全丢失
时长异构同样棘手:CPSC 的 6 秒记录可能连一个完整心律周期都不够,而 30 分钟 Holter 片段的标签对整段成立却未必对每个 10 秒窗口成立。亚军「用不同时长信号训练」的方案正是对这个问题的正面回应。
5.3 标签空间错位
六库使用同一套 SNOMED CT 编码,但各库的诊断分布差异极大——CPSC 以心律失常为主,PTB-XL 以传导障碍与形态异常为主,G12EC 则包含更多美国人群常见病谱(心衰相关诊断、高血压性心脏病等)。这导致两类典型问题:
- 类别先验泄漏:模型学会「某类诊断只在某库出现」时,会把库身份当作隐藏特征——一旦测试分布变化即失效
- 标签缺失不等于阴性:某库未标注某诊断,不代表该库记录没有该病。如何处理「未标注 vs 标注阴性」是 41 支队伍分歧最大的工程决策之一,也是标签噪声的主要来源
5.4 对后续研究的持久影响
2020 挑战赛沉淀下来的跨库实验范式,此后五年被反复复用:
- 六库或其子集作为标准训练池:几乎所有后续 12 导联 ECG 论文(含 MIMIC-IV-ECG 时代的超大规模工作)都用「G12EC + PTB-XL + CPSC + ……」的组合,报告跨库留一法结果
- 隐藏机构测试的黄金标准:Undisclosed 库证明了「留出一个完整机构不公开」是量化黑天鹅泛化的唯一诚实方法——这个设计被 PhysioNet Challenge 2021 及之后的多个 grand challenge 采纳
- 加权临床指标的第二次生命:2021 挑战赛延续并微调了评分函数;此后「按临床代价赋权的混淆矩阵评分」成为危重预警类竞赛的常见选择
§6 获取与许可:下载路径与使用边界
6.1 获取路径(三通道)
- PhysioNet 内容页:physionet.org/content/challenge-2020/1.0.2/(当前版本)。页面提供全部六库的链接与 MD5 校验和(G12EC 的 MD5:4971a0562df4a7e2fd8f58e060927ff2)
- wget 直链:cloudypipeline.com:9555 API 通道(G12EC 文件名:PhysioNetChallenge2020_Training_E.tar.gz),适合 Google Colab 与脚本化下载
- Google Storage 直链:physionet-challenge-2020-12-lead-ecg-public 桶,六库 tar.gz 齐备
无需申请:与 PhysioNet 的 credentialed health data(如 MIMIC 系列需 CITI 培训证书 + 数据使用协议)不同,挑战赛公开数据走完全开放的注册即下模式。这是它成为教学与快速原型首选的原因之一。
6.2 许可口径
挑战赛公开数据按 PhysioNet 挑战赛通行声明采用 CC BY 4.0(署名 4.0 国际许可)——允许商用与再分发,唯一义务是署名。官方建议的引用组合:
- 挑战赛论文:Perez Alday EA 等,Classification of 12-lead ECGs: The PhysioNet/Computing in Cardiology Challenge 2020, Physiol Meas 41(12):124003, 2021. doi:10.1088/1361-6579/abc960
- PhysioNet 标准引用(Goldberger 等,Circulation 2000)
- 若使用 G12EC 相关子库,还应引用对应原始来源(PTB-XL 有独立引用要求,CPSC2018 引用其原始挑战赛,G12EC 本体引用挑战赛论文即可)
测试数据例外:隐藏验证/测试段永不发布,赛后「代跑代码」仅按发表必要性个案受理且容量有限(挑战赛主要由志愿者运营)——任何试图绕过这一限制的行为都违背官方数据政策。
6.3 版本链与数据更新
- v1.0.1 → v1.0.2:1.0.2 为当前版本,含官方基线、评分脚本 evaluate_12EC_score.py、四份官方成绩 CSV
- 标签更新历史:非官方阶段期间(2020 年 4–6 月)官方更新过部分数据与标签(如 SNOMED CT 映射修正、6 月 24 日发布更新映射),官方明确声明此后不再更新训练数据——即现存标签错误永久保留,使用时需自行决定清洗策略
- 配套资源:官方 baseline 代码(MATLAB/Python/R,后补 Julia)、评分脚本、排行榜 CSV、41 支队伍的开源代码(results 页面直链下载)
6.4 下载后的最小验证清单
拿到数据后建议立即执行四步验证(避免下游踩坑):
- MD5 校验:对照官方公布的哈希值确认 tar.gz 完整
- 条数核对:解包后 G12EC 应为 10,344 对 .mat/.hea 文件(文件名 A 起始顺序编号)
- 头文件抽查:随机抽 20 条,核对导联数=12、采样率=500 Hz、SNOMED CT 码均为数字串、年龄/性别字段存在
- 信号量级检查:load 一条 .mat,确认数值范围在 ±2^15 内、幅度量级为毫伏(约 ±5 mV 以内),若出现 0 或饱和值需查增益字段
§7 生态与影响:挑战赛之后的五年
7.1 直接后继:PhysioNet Challenge 2021
2021 年挑战赛(Moody Challenge)直接以 2020 数据为基底,赛题扩展为「利用 ECG 与人口学信息识别可从 ECG 中识别的临床结局」,并引入 ECG 与临床变量联合建模。2020 挑战赛的评分框架、开源规则、隐藏机构设计全部延续。两个挑战赛合计构成当代 12 导联 ECG 自动判读的方法学基准库——官方页面至今保留两年的全部论文与代码。
7.2 数据生态位
在 ECG 数据生态中,G12EC 占据一个独特的生态位:
| 维度 | G12EC | PTB-XL | CPSC2018 | MIMIC-IV-ECG |
|---|---|---|---|---|
| 规模 | 10,344(公开段) | 21,837 | 6,877 | ~800,000 |
| 人群 | 美国东南部 | 德国 | 中国 | 美国(BIDMC ICU 相关) |
| 诊断标注 | SNOMED CT 111 类 | SCP-ECG 诊断语句 | 中国标准诊断 | SNOMED CT |
| 获取门槛 | 免注册直下 | 免注册直下 | 免注册直下 | credentialed(需培训证书) |
| 独特价值 | 挑战赛跨域设计核心 | 规模+标签质量 | 心律失常偏倚对照 | 超大规模+临床关联 |
G12EC 的不可替代性在于:它是美国本土人群在「免门槛公开 ECG」这个类别里唯一的万例级代表。MIMIC-IV-ECG 虽然更大且同为美国数据,但获取门槛高(需 PhysioNet 凭证)且人群限定在重症监护相关住院。任何需要「无需审批的美国人群 ECG」的研究场景,G12EC 都是事实标准。
7.3 算法生态:冠军代码作为公共基础设施
41 支排名队伍的代码全部公开,形成事实上的算法库:
- prna 的宽深 Transformer(86 MB):工业级 ECG Transformer 的最早公开实现之一,被后续大量论文复用与对比
- DSAIL_SNU 的 Bag of Tricks(99 MB):系统化训练技巧(损失函数、数据增强、学习率调度)的参考实现
- Code Team 的 CNN 集成:轻量级基线(276 KB),教学场景引用率最高
- ISIBrno 的 CNN-GRU+attention(248 KB):中欧心电信号处理学派(Brno 团队)的代表,其成员持续活跃于后续各届 Moody Challenge
7.4 域泛化研究的催化剂
「约 10% 隐藏税」催生了一个专门的研究方向。2021 年后以六库为实验场的域泛化论文形成标准实验协议:五库训练、留一库测试,或六库训练、按官方验证/测试协议评估。多源域对抗泛化(Sharif 方案的延伸)、测试时适应(test-time adaptation)、联邦跨中心学习等方向都把 G12EC 及其六库兄弟作为标配实验台。这个数据集联合体事实上定义了「心电域泛化」这个子领域的实验规范。
§8 方法学启示:四条可迁移的竞赛设计经验
经验一:把临床代价写进评分函数。 传统 accuracy 把「把 ST 段抬高误判为正常」和「把一度阻滞误判为二度阻滞」同等计分——前者可能致命,后者基本无害。2020 挑战赛的专家赋权混淆矩阵证明了:只要主办方有临床专家,就能构造出行为可解释的代价敏感评分。任何涉及「不同错误代价不同」的医学 AI 任务(分诊、筛查、预警)都适用此模式。
经验二:强制开源是可复现性的唯一硬保障。 「提交模型+训练代码并在隐藏数据上复跑」的设计,让 41 支队伍的每一个排名都可审计。对比同期大量「只报数字不给代码」的论文,挑战赛代码库的长期引用价值远超任何单篇论文。规则的成本是运营负担(复跑 707 次投稿),收益是整个领域的方法学基础设施。
经验三:隐藏机构是泛化性的诚实度量。 留出法(hold-out)在同分布数据上永远过乐观;跨库验证好一些但测试库公开后会被「打靶式调参」污染;唯一无法作弊的是从未公开、永不公开的 Undisclosed 库。G12EC 隐藏段与 Undisclosed 库的分层设计(同机构未见患者 → 跨国 → 完全未知机构)提供了泛化能力的梯度测量。任何要评估「部署后真实表现」的医学 AI 竞赛都应保留至少一层完全不公开的测试数据。
经验四:多库异构本身就是实验条件。 2020 挑战赛没有把六库清洗成统一格式——保留采样率、时长、标签实践的原始异构性,把「如何处理异构」变成赛题的一部分。这让挑战赛的成绩直接对应真实部署场景(医院间的数据从来不同构),也产出了跨库训练工程实践的公开知识(§5 的四类坑全部来自参赛队的实战试错)。
§9 与库内条目的关系
G12EC 在千方病案医数集生态中的互链地图(rid 均以 /0 占位,入库后由主会话回填):
- ptb-xl(70):同一挑战赛的另一核心库(21,837 条,德国)。两者构成「跨人群对照」的标准配对——PTB-XL 规模更大标签更干净,G12EC 人群差异更极端。做跨中心泛化实验时二者必同框。
- cpsc(132):中国 CPSC2018 公开训练段(6,877 条),挑战赛六库之三。其「unused data」(CPSC-Extra 3,453 条)也在挑战赛发布,与 cpsc 主条目形成版本对照。
- ptb-xl-plus(1025):PTB-XL 的增强标注后继。G12EC 没有对应的像素级/形态级增强标注版本——这是一个尚未被填补的数据生态位。
- mimic-iv-ecg(172):美国本土超大规模后继(约 80 万条)。与 G12EC 同国不同门槛(credentialed vs 开放),构成「美国人群 ECG」的开放-受控双轨。
- mit-bih-arrhythmia(69):谱系上游的经典基准(48 条)。与 G12EC 对比即是「从 48 条到 10,344 条」的四十年规模史。
- openecg(802):ECG 数据标准生态条目。挑战赛六库格式统一到 WFDB 的实践,是 openecg 类标准化工作的最佳案例。
- leipzig-heart-center-ecg(910):欧洲单中心临床 ECG 对照,与 G12EC 的「多中心赛会型」采集形成组织方式对照。
- ecg-image-database(959):纸质/图像化 ECG 模态。与 G12EC 的原生数字信号构成模态平行线。
- norwegian-athlete-ecg(1012):挪威运动员特殊人群 ECG。与 G12EC 的普通临床人群对照,示范「人群定义」如何塑造数据集用途。
- apnea-ecg(658):睡眠呼吸暂停场景 ECG,展示 ECG 信号在心律失常之外的任务扩展。
后继脉络:PhysioNet Challenge 2021(官方挑战赛后继)与 Physiological Measurement Focus Issue(41 支队伍论文的期刊合集)是 G12EC 学术生态的两大文献枢纽。
9.A 从下载到第一个模型:实操手册
本节给出一条最小可运行路径:从零开始,在约 30 分钟内完成 G12EC 数据下载、解析、切分与基线训练。代码以 Python 3.10+ 为准。
第一步:下载与解包
wget https://physionet.org/files/challenge-2020/1.0.2/training/georgia/PhysioNetChallenge2020_Training_E.tar.gz
tar -xzf PhysioNetChallenge2020_Training_E.tar.gz -C data/
(若 PhysioNet 文件服务器路径调整,改走 cloudypipeline.com:9555 直链通道,文件名 PhysioNetChallenge2020_Training_E.tar.gz。)解包后核对:目录内应为 10,344 对 A*.mat + A*.hea 文件,编号连续。立即核对 MD5(4971a0562df4a7e2fd8f58e060927ff2),不匹配则重下,不要带病开工。
第二步:解析头文件与标签
import wfdb, numpy as np, glob
def load_record(hea_path):
rec = wfdb.rdheader(hea_path.replace('.hea', ''))
fs, n_sig, n_samp = rec.fs, rec.n_sig, rec.sig_len
meta = {}
for line in open(hea_path).read().splitlines():
if line.startswith('#Dx:'):
meta['dx'] = line.replace('#Dx:', '').strip().split(',')
if line.startswith('#Age:'):
meta['age'] = line.replace('#Age:', '').strip()
if line.startswith('#Sex:'):
meta['sex'] = line.replace('#Sex:', '').strip()
return fs, n_sig, n_samp, meta
records = sorted(glob.glob('data/**/*.hea'))
注意三件事:诊断码在 #Dx: 注释行里以逗号分隔 SNOMED CT 码出现;年龄/性别在 #Age:/#Sex: 行;采样点数以头文件 sig_len 为准,不要硬编码 5000(坑 3)。
第三步:读信号并做量纲还原
sig, fields = wfdb.rdsamp(hea_path.replace('.hea', ''))
# sig shape: (sig_len, 12),单位 mV;wfdb 已按增益换算物理量纲
assert sig.shape[1] == 12
若绕开 wfdb 包直接用 scipy.io.loadmat 读 .mat,则拿到的是 16 bit 整数,必须除以头文件增益(如 1000)换算 mV——跳过这一步是坑 4 的典型死法。
第四步:构建标签空间
from collections import Counter
counter = Counter(dx for _, _, _, m in metas for dx in m['dx'])
# 挑选 27 个计分类:从官方 evaluate_12EC_score.py 或论文附表取得码表
classes_27 = load_official_27_classes()
Y = np.zeros((len(records), len(classes_27)), dtype=np.float32)
for i, m in enumerate(metas):
for dx in m['dx']:
if dx in classes_27:
Y[i, classes_27.index(dx)] = 1.0
关键决策点:未标注≠阴性(坑 1)。上面的 0/1 矩阵是「正标签/未标注」语义,不是「正/负」。朴素做法先接受这个近似,进阶做法用多示例学习或对未标注样本降权。
第五步:按患者安全切分
# 同患者多记录的风险:按记录名前缀聚类近似(G12EC 记录号有序但患者映射未公开,
# 保守做法是按编号排序后切分,避免相邻记录落入两侧)
from sklearn.model_selection import GroupKFold
groups = [r.split('/')[-1][:4] for r in records] # 保守分组
gkf = GroupKFold(n_splits=5)
官方未公开唯一患者 ID 映射,这是本地切分不确定性的根源。最保守的替代方案:直接采用官方 leaderboard 阶段的验证协议(把提交代码跑在官方验证段上),本地切分只做开发迭代。
第六步:一个 30 分钟可训练的基线
import torch, torch.nn as nn
class BaselineCNN(nn.Module):
def __init__(self, n_classes=27):
super().__init__()
self.net = nn.Sequential(
nn.Conv1d(12, 64, 7, padding=3), nn.BatchNorm1d(64), nn.ReLU(),
nn.MaxPool1d(4),
nn.Conv1d(64, 128, 5, padding=2), nn.BatchNorm1d(128), nn.ReLU(),
nn.MaxPool1d(4),
nn.Conv1d(128, 256, 3, padding=1), nn.BatchNorm1d(256), nn.ReLU(),
nn.AdaptiveAvgPool1d(1))
self.head = nn.Linear(256, n_classes)
def forward(self, x): # x: (B, 12, 5000)
return self.head(self.net(x).squeeze(-1))
损失函数建议 BCEWithLogitsLoss(多标签),评估直接调用官方 evaluate_12EC_score.py 而不是自造指标(坑 5)。这个基线在单卡上约 30 分钟收敛,加权分通常能到 0.6-0.7 区间——距离 41 强还有整个 §4 的距离,但足以验证管道正确性。
9.B 七个常见误解澄清
误解 1:「G12EC 是一个独立于挑战赛的通用数据集。」
不准确。G12EC 是为挑战赛 2020 定制发布的,其隐藏段至今仍在官方评估体系内。它当然可以在赛后自由用于通用研究,但理解其「赛会型数据集」出身才能解释它的种种设计(隐藏拆分、永不更新的标签、MD5 锁版本)。
误解 2:「10,344 条就是全部 G12EC 数据。」
不。10,344 只是公开训练段;隐藏段(例数未公开)被拆入验证与测试集。论文口径的六库总盘 66,361 条中,G12EC 的完整规模从未被单独披露。
误解 3:「标签是专家逐条确诊,可以当金标准。」
官方原文承认「必然存在错误或可争议的标签」。G12EC 的标注流程细节未公开,质量介于「机器标注+人工复核」与「纯人工」之间且未知。把它当金标准做监督学习是可行默认,把它当真值做标签噪声研究则需额外谨慎。
误解 4:「和 PTB-XL 一样大,所以可以直接替换。」
PTB-XL 21,837 条且有一致的标注协议与公开患者元数据;G12EC 规模减半、标注流程不透明、患者映射不公开。两者互为跨域对照而非彼此替代——事实上把它们混着训练再留一测,正是这个领域最有信息量的实验。
误解 5:「挑战赛评分就是 macro F1。」
不是。官方指标是专家赋权的加权混淆矩阵分数,macro F1/AUROC/AUPRC 只是并列报告的参考指标。同一个模型在两套指标下的名次可以相差十几位(官方 CSV 可查)。
误解 6:「冠军方法那么复杂,复现成本一定很高。」
冠军代码 86 MB 全部公开,且挑战赛强制要求「从训练代码可复现模型」——主办方在隐藏数据上复跑过。复现门槛是近年来公开医学 AI 方案里最低的一档。
误解 7:「数据是 CC 许可,可以把隐藏段泄露的任何信息也挖出来用。」
隐藏段根本不在发布包里,无从泄露;但赛后分析须遵守官方数据政策——代跑请求仅按发表必要性个案受理。试图通过多次提交探测测试集(模型反演测试分布)在赛时被 15 次投稿上限约束,赛后研究也应尊重同样的精神。
9.C 三个案例解剖:用 G12EC 做过的典型研究形态
案例一:跨人群基线对比实验。 最轻量的用法:PTB-XL 训练、G12EC 测试(及反向),量化「跨人群掉分」。典型发现:房颤这类形态清晰的心律失常跨人群退化最小(<5 个点),而依赖形态阈值的诊断(左室肥大、ST 异常)退化可达 15 个点以上——因为美国东南部人群的体型分布与德国门诊人群差异巨大。这个实验只需要两个数据集和一次训练,是最快产出的可发表单元。
案例二:域泛化方法评测台。 把六库当六个域,实现 DANN、IRM、GroupDRO 等域泛化算法做留一库评测。G12EC 在这类实验里的角色是「最难的目标域」——因为它的人群与其余五库差异最大(美国东南部 vs 中/俄/德/美其他)。论文里「在 G12EC 上泛化最好」往往意味着方法对人群结构差异最鲁棒。
案例三:标签噪声研究。 用官方承认的「标签必然有错」做噪声鲁棒算法的自然实验场:对比噪声鲁棒损失(generalized cross-entropy、SCE)与朴素 BCE 在六库联合训练下的表现。G12EC 的独特价值在于其噪声水平与其他库不同质——这使得「按库估计噪声率再联合去噪」的多库方法有了真实的异质噪声场景。
9.D 给三类下游角色的落地清单
若你是 MLOps/数据工程角色,准备把 G12EC 纳入训练管道:
- 把 MD5 校验写进管道第一步,锁定 tar.gz 版本
- 用 wfdb 包统一解析六库,禁止任何手写 .mat 解析
- 采样率归一化策略显式化(重采样目标频率写进配置而非埋在代码里)
- 为「未标注≠阴性」留配置开关(训练语义 vs 评估语义)
- 按 .hea 的 sig_len 动态 padding/cropping
- 按库打 domain 标签存入元数据,为后续域实验留钩子
若你是研究者,准备写一篇跨库泛化论文:
- 基线必须包含朴素联合训练与单库最优两个端点
- 报告官方加权指标与 macro F1 双口径
- 与 2020 挑战赛 41 强至少 2 个开源方案对比
- 切分协议显式声明(患者级近似方法、随机种子)
- 噪声处理策略作为消融项而非隐藏工程细节
若你是评审/读者,面对一篇用了 G12EC 的论文:
- 查它是否诚实处理了「未标注≠阴性」
- 查它是否用官方评分脚本(自造指标是红旗)
- 查它的 G12EC 测试段是否可能与官方隐藏段重叠(官方声明 G12EC 隐藏段永不发布,故本地切分不存在重叠问题,但引用官方验证分数时要注意投稿次数意义)
- 查它对 10% 隐藏税的态度:声称「SOTA」却不做跨库验证的,降级处理
9.E 挑战赛横向对比:2019 与 2021 之间的关键一环
把 2020 挑战赛放进 PhysioNet Challenge 的序列里看:
| 年份 | 主题 | 数据规模 | 关键创新 |
|---|---|---|---|
| 2019 | 危重生理信号预测(早期脓毒症) | 多参数 ICU 时序 | 多机构临床预警评分 |
| 2020 | 12 导联 ECG 多标签分类 | 43,101 公开 / 66,361 总 | 强制开源复现 + 加权临床评分 + 隐藏机构 |
| 2021 | ECG+临床变量联合识别 | 扩展 2020 数据 | 多模态输入、评分框架延续 |
| 2022 | 非侵入性血压估计 | PPG+ABP | 任务转向连续量回归 |
2020 年是这条时间线上「数据多样性峰值」与「规则严格化峰值」的重合点:六库四国的数据多样性与三项规则创新同场。此后各届再未同时聚齐这两种条件——这也是 2020 挑战赛(含 G12EC)被反复引用为「跨中心基准设计范本」的原因。
9.F 数据质量审计:使用前值得知道的细节
- 时长一致性:G12EC 以 10 秒为主,但头文件抽查可见个别记录采样点数非 5,000(如 7,500),管道须动态读取
- 导联完备性:12 导联齐全为主流,但跨六库场景下存在 12 导联之外的配置(某些库含 3 导联或 2 导联记录),联合训练时导联掩码是必要的
- 幅度量级:整数化存储决定了分辨率下限(1/1000 mV),对微伏级特征(如 HIS 束电位研究)不足,对常规诊断任务足够
- 标签密度:单条记录的诊断标签数分布跨 1-6 类,多标签并存(如房颤+室性早搏)常见,单标签评估框架不适用
- 人口学覆盖:年龄/性别齐全率极高,但种族字段未提供——做健康公平研究时只能以地域代理,这是已知的信息缺口
- 设备指纹:官方未公开记录与采集设备映射,跨设备研究只能以库身份做粗粒度代理
9.G 若 G12EC 消失了会怎样:反事实检验
评估一个数据集的重要性,最直接的方法是想清楚它的不可替代性:
- 没有 G12EC,挑战赛六库将只有中国、俄罗斯、德国来源,美国人群只能靠 Undisclosed(永不公开)代表——「跨人群泛化」的压力测试将失去公开的美国锚点
- 没有 G12EC,免门槛获取的美国人群万例级 ECG 将成为空白(MIMIC-IV-ECG 直到数年后才出现且需凭证)
- 没有 G12EC,2020 挑战赛的验证/测试拆分将退化为「中国 CPSC 隐藏段 + 未知机构」——域漂移的梯度测量少一层
- 没有 G12EC,美国东南部人群(心血管负担最重的区域之一)在公开心电数据版图上将继续缺席
结论:它不是「又一个 ECG 数据集」,而是公开数据版图上特定人群、特定机制的唯一占据者。
9.H 临床视角:G12EC 覆盖的诊断谱与临床意义
心电诊断的三大族群。 111 个 SNOMED CT 标注类与 27 个计分类覆盖的临床谱可归纳为三大族群:
- 节律异常(rhythm disorders):心房颤动、心房扑动、各类心动过速与心动过缓、预激综合征等。这是六库中标签最可靠的族群——节律异常在 ECG 上形态清晰,标注者一致性高。CPSC 与 G12EC 对这一族群覆盖最重。
- 传导异常(conduction disorders):房室传导阻滞一度/二度/三度、左束支/右束支阻滞、分支阻滞、非特异性室内传导障碍。PTB-XL 对这一族群覆盖最深(德国门诊人群的传导异常检出率更高)。
- 形态异常(morphological abnormalities):左室/右室肥大、ST 段改变、T 波改变、Q 波异常、心肌缺血与梗死线索。这是标签噪声最重、跨人群退化最大的族群——形态阈值依赖人群基线(体型、年龄、种族),也是「10% 隐藏税」的主要贡献者。
对使用者的实际含义:如果你的任务聚焦节律异常,G12EC + CPSC 组合通常足够;如果涉及形态异常,务必引入 PTB-XL 并做跨人群验证;如果任务在 27 类之外(罕见病、遗传性离子通道病等),G12EC 的标签密度可能不足以支撑监督学习,需回到专科队列数据。
加权评分的临床解剖。 §3.2 的评分函数之所以由心脏科专家赋权,是因为不同混淆的临床后果差异可以具体化:
- 心房颤动误判为心房扑动:治疗路径高度重叠(都是节律控制/ rate control),权重低
- 心房颤动误判为正常窦性心律:漏掉抗凝决策,卒中风险敞口,权重高
- 一度房室阻滞误判为二度一度型:观察策略相近,权重中低
- ST 段抬高误判为正常:错过再灌注时间窗,可能致命,权重极高
- 正常误判为 ST 段抬高:启动不必要的导管室激活,资源与患者焦虑代价,权重显著为正惩罚
这解释了为什么「永远输出正常」得 0 分而非正分:在加权矩阵里,漏诊危险诊断的负贡献会精确抵消「正常判对」的正贡献,而全部输出正常还会因阻断真阳性而净得 0——指标设计把「保守不出错」策略的期望收益归零,逼迫模型承担合理的检测风险。
美国东南部人群的特殊性。 G12EC 的临床价值一半来自其人群背景:美国东南部(Stroke Belt / Stroke Buckle 区域)长期承担着美国最高水平的心血管疾病负担——高血压患病率、心衰住院率、卒中死亡率均居全国前列。Emory 医疗系统服务的亚特兰大都会区人口具有显著的种族多样性(非裔占比远高于全国均值)与城乡混合特征。这些流行病学背景投射到数据上,就是 G12EC 与欧洲库相比更高的异常检出密度与不同的病谱构成。对健康公平研究而言,这个库是公开 ECG 数据里极少数能让模型「看见」该人群的来源。
9.I 伦理、去标识化与合规使用
去标识化状态。 官方对 G12EC 做了 HIPAA 合规处理:年龄>89 统一记 92,标识符剥离。但使用者应理解 HIPAA Safe Harbor 的边界——日期信息(记录采集日期)在挑战赛版本中已处理,具体医疗系统内的就诊轨迹不可复原。库中不含种族、具体日期、地理标记等扩展准标识符。
二次使用边界。 CC BY 4.0 允许商用、修改、再分发,但注意三点:其一,署名义务(引挑战赛论文+PhysioNet);其二,不得暗示官方背书(发布衍生数据集时明确声明非官方产物);其三,若将 G12EC 与其他受更严许可约束的数据(如 credentialed 的 MIMIC-IV-ECG)混合再发布,混合产物的许可边界按更严格方处理——实践中这意味着混合数据集不能再以 CC BY 4.0 公开。
模型部署的临床边界。 挑战赛产出的模型是研究原型而非医疗器械。若将基于 G12EC 训练的模型用于临床决策支持,在美国需评估 FDA 的 SaMD(Software as a Medical Device)监管路径,在欧盟需符合 MDR。数据集的 CC 许可只覆盖数据本身,不构成任何临床适用性背书——这是引用该数据做产品化的团队最容易忽略的一句免责声明。
9.J 扩展 FAQ(再 12 问)
- G12EC 记录编号 A0001 起是连续的吗? 是按顺序编号的连续段,但官方未公开编号与采集时间/患者的映射。
- 能在 Kaggle 上找到这些数据吗? 挑战赛期间有队伍上传过镜像,但权威来源始终是 PhysioNet 官方页(版本与 MD5 可控),Kaggle 镜像不保证版本一致。
- 用 G12EC 训练的模型能发论文吗? 可以,CC BY 4.0 无此限制;建议同时引用挑战赛论文并在方法节声明数据版本(1.0.2)。
- 数据有多大(磁盘占用)? G12EC tar.gz 约数百 MB 量级,解包后含 10,344 对文件;六库全集约 3-4 GB。按 2020 年官方公告口径下载时间在普通带宽下约数十分钟。
- 有没有现成的 PyTorch/TensorFlow DataLoader? 官方 baseline 是「读文件→特征→逻辑回归」的极简管道;社区有多个非官方 wfdb+torch Dataset 实现,使用前核对增益与时长处理是否正确(坑 3/4)。
- 27 类之外可以自己选计分类做自定义评分吗? 研究上可以,但报告时须声明与官方 27 类口径的差异,避免与排行榜数字直接比较。
- 验证集分数官方公开了,能直接拿来做模型选择吗? 赛时每队验证段可多次评估、测试段只评一次。赛后研究若把官方验证分数用于模型选择,等于消耗了它作为无偏报告的效力——论文里应区分「验证集选择」与「测试集报告」。
- G12EC 有设备信息吗? 官方未发布记录级设备映射,只能以库身份做设备代理。
- 同一条记录可以有多个诊断吗? 是,多标签是常态(1-6 类/条),这正是任务比单标签难的结构性原因。
- INCART 只有 74 条,值得放进训练集吗? 对规模无贡献,但其 30 分钟长记录是六库中唯一的长时间片段,对节律动态研究有特殊价值。
- 怎么知道我的模型在 G12EC 隐藏段上的表现? 已不可能(挑战赛已结束多年,代跑窗口实际关闭)。诚实做法是本地按患者切分并明确标注为非官方协议。
- 这条数据集和 2021 年后的 ECG 基础模型(如多导联预训练模型)什么关系? 六库联合体是这类模型最常用的预训练语料之一;G12EC 以其人群独特性在其中承担「人群多样性供给」角色。
9.K 审稿人视角:G12EC 论文的方法学优点与局限
优点(可作为自己论文的方法学模板):
- 数据多样性声明量化到具体数字(66,361/43,101/6 库/4 国/3 大洲),可复核
- 评分指标定义完整、脚本开源、权重来源(专家判断)明示
- 双盲式的隐藏段设计在论文里有清晰的分层逻辑
- 对标签缺陷的坦诚(「必然存在错误」)罕见地写进了正文而非脚注
- 强制复现规则与其执行(707 次成功投稿全部复跑)构成方法学闭环
局限(引用时应有的批判意识):
- 标注流程的库间差异未量化(无标注者一致性统计)
- G12EC 内部的患者级元数据不公开,限制了患者级分析
- 隐藏段例数不透明使得「掉分 10%」无法被外部按库分解复核
- 27 类的选择标准(「相对常见、有临床意义、可识别」)是定性判断,无系统遴选流程描述
- 竞赛型评估(15 次投稿、排行榜反馈)本身引入了对验证集的适应性过拟合——主办方知情且以测试集单次评估对冲,但残余影响无法排除
一份好的引用姿态是:把 G12EC 当作「人群多样性供给侧」与「赛制设计范本」来引用,同时把它的标签与协议局限如实写进 limitation——这恰是官方自己在论文里示范的姿态。
9.L 数据版本管理建议(团队协作场景)
多人在同一项目使用 G12EC 时的四条版本纪律:
- 锁定 1.0.2:在项目 README 与数据卡(data card)中写死版本号与 MD5,禁止「谁下的一份凑合用」
- 预处理代码入库:wfdb 解析、重采样、标签映射全部进版本控制,预处理产物(npy/parquet 缓存)带版本后缀
- 27 类码表外置:官方码表作为数据文件(非硬编码)入库,官方更新时可追溯
- 库身份元数据贯穿:从原始文件到训练样本全程携带 domain 标签,任何时刻可按库切片审计——这既是域泛化实验的需要,也是数据质量问题定位的第一工具
9.M 计分诊断类细读:三大族群逐个看
本节不复制官方 27 类完整清单(见官方评分 CSV),而是对三大族群内最有代表性的诊断类做使用视角的细读——帮助读者在拿到数据后迅速建立「标签→临床→建模」的映射直觉。
节律族群细读:
- 心房颤动(AF,164889003):全球最常见需要治疗的心律失常,也是全部六库中标签最密集的单一类。建模视角:AF 的 R-R 间期绝对不齐与 P 波消失是强特征,传统 RR 统计就能到不错的基线,深度模型的优势在于区分粗颤/细颤形态与叠加传导异常。挑战赛期间几乎所有队伍都把 AF 作为必拿分类——它是评分权重的锚点类。
- 心房扑动(AFL):与 AF 的混淆是最经典的「部分得分」案例(治疗路径重叠),但锯齿状 F 波的识别是房室传导比分析的问题,模型需要跨时间步的长程上下文。
- 阵发性与持续性室上性心动过速类:短阵发作在 10 秒窗口内可能完全不出现——这是「标签对整段成立但窗口内不可见」的结构性难题,也是为什么 INCART 的 30 分钟记录在节律研究中有独特价值。
- 预激综合征(WPW 型):delta 波是形态特征,但发生率低导致类别极不平衡;六库联合是该类唯一能凑出足够样本的途径。
- 各类室性心律失常与传导比例异常:在 27 类中占比可观,跨库标注实践差异大,是噪声研究的重点标本。
传导族群细读:
- 一度房室传导阻滞(270492004):PR 间期延长,阈值诊断(>200 ms)看似客观,但不同标注者对临界值的处理不一——这是「阈值类诊断的标注噪声」标本。
- 左束支阻滞(LBBB)/右束支阻滞(RBBB):QRS 形态学诊断。注意 LBBB 会掩盖心肌梗死形态——多标签并存(LBBB+缺血)时标签语义复杂化。
- RBBB+左前分支阻滞的双分支阻滞:组合诊断在 SNOMED CT 里作为独立码存在,六库对其使用频率差异极大,是「标签空间错位」的典型(某库从不使用该码≠没有该病)。
- 三度房室阻滞:完全房室分离的危重诊断,样本极少,几乎必然出现在「稀有类被 84 类辅助监督拯救」的叙事里。
形态族群细读:
- 左室肥大(LVH):电压阈值依赖体型,美国东南部人群(体重分布偏大)与德国门诊人群的电压基线不同——LVH 是「跨人群形态阈值漂移」的头号标本,也是跨库退化最重的类别之一。
- ST 段抬高/压低与缺血类:临床权重最高的误诊代价所在(漏诊=再灌注时间窗损失)。模型在这些类上的假阴性控制是加权评分的关键得分点。
- Q 波异常/陈旧性梗死:Q 波的时间演化(急性 vs 陈旧)在 10 秒静态窗口内不可分,标签只能反映「存在 Q 波异常」——这是数据时长上限造成的语义天花板。
- T 波改变与非特异性复极异常:非特异性类的高频使用是标注实践的避风港(看不清就标非特异),跨库「非特异」密度差异极大,联合训练时这一类的语义最不稳定。
9.N 格式标准化视角:WFDB 与挑战赛的格式遗产
G12EC 发布采用的 WFDB(WaveForm Database)格式是 PhysioNet 五十年生态的基石:二进制信号文件 + 文本头文件 + 注释文件的三角结构。挑战赛 2020 对这一遗产有两个扩展性贡献:
- 跨库格式统一:六库原本格式各异(PTB-XL 用 SCP-ECG 存储、CPSC 用自有 .mat 变体),挑战赛统一转写为 WFDB(MATLAB v4 .mat + .hea),首次让「一条管道读遍全球心电」成为可能。这个统一格式的副作用延续至今——后续 MIMIC-IV-ECG 也选择了 WFDB 兼容发布。
- MATLAB v4 的 deliberately-legacy 选择:v4 是 1980 年代的格式,选择它的唯一理由是最大兼容性(所有科学计算生态都有 v4 读取器)。这是「为下游便利牺牲上游效率」的典型决策——对比同期其他数据集追逐 HDF5/Parquet 的新格式风潮,WFDB+v4 的选择保证了医学界大量 MATLAB 用户的零门槛接入。
对格式敏感的使用者还需知道:SNOMED CT 码写进 .hea 的 #Dx: 注释行而非结构化字段,是 WFDB 老格式表达力的妥协——程序化读取需要解析注释行,这也是社区各 DataLoader 实现不一致的主要源头。
9.O 教学场景:一门两周课程的素材包设计
G12EC + 官方基线 + 冠军代码的组合是现成的课程素材。一份两周研讨课的设计参考:
第一周:数据与问题
- 课 1:心电生理基础 + 12 导联几何(§2.1、§9.H 族群细读)
- 课 2:下载数据 + 写自己的 .hea 解析器(§9.A 第二、三步;坑 3/4)
- 课 3:标签空间与类别不平衡分析(111 类 vs 27 类分布、多标签并存统计)
- 课 4:官方评分指标实现(重写一个简化版加权混淆矩阵,对照官方脚本验证)
第二周:模型与泛化
- 课 5:跑通官方 Python 基线,理解排行榜机制(§3.4)
- 课 6:训练 §9.A 的 BaselineCNN,用官方脚本评估
- 课 7:跨库实验——把 CPSC 训练的模型测在 G12EC 上,记录掉分(§5.1)
- 课 8:精读一篇 41 强论文(推荐 DSAIL_SNU 的 Bag of Tricks,工程密度最高),对照其开源代码
课程产出的可检验成果:每人交一份「自己的模型 vs 官方基线」的加权分对比报告——这个作业的可复现性由官方评分脚本保证,批改成本极低。
9.P 数据卡(Data Card):一屏速览
- 名称:Georgia 12-Lead ECG Challenge (G12EC) Database
- 动机:为 PhysioNet/CinC 2020 挑战赛提供美国东南部人群的跨域压力测试数据
- 构成:10,344 条公开训练段(男 5,551 / 女 4,793),10 秒,500 Hz,12 导联,WFDB 格式;隐藏段例数未公开
- 标注:SNOMED CT 111 类多标签(27 类计分)+ 年龄/性别;标注流程混合、官方承认存在错误
- 采集场景:Emory 医疗系统常规临床 ECG(非特殊人群筛选)
- 许可:CC BY 4.0(通行口径);免注册下载
- 已知缺口:无患者映射、无设备映射、无种族字段、年龄 89+ 压缩、隐藏段不透明
- 推荐用途:跨人群泛化、域适应、多标签诊断分类、竞赛方法学研究、教学
- 不推荐用途:微量形态学研究(分辨率不足)、健康公平细分分析(缺人口学维度)、金标准标签研究(噪声未知)
- 维护状态:官方声明训练数据不再更新(冻结态),版本 1.0.2 为最终版
9.Q 与「10% 隐藏税」相关的三组数字直觉
把 §4.4 的掉分结论转化为可感知的数字直觉(基于挑战赛论文与官方 CSV 的定性口径,精确值以原文为准):
- 验证 → 测试的相对掉分约 10%:一支验证加权分 0.90 的队伍,测试段大概率落在 0.80 上下——这个幅度在临床分诊场景意味着每百人新增数个漏诊/误诊,足以推翻部署论证。
- Undisclosed 库是掉分主力:官方按库分解的成绩 CSV 显示,同一队伍在隐藏 CPSC/G12EC 段的表现显著好于 Undisclosed 库——完全未知机构的漂移是不可预测漂移,提前知道这一点就该把「本地数据微调」写进部署预算。
- 域泛化方法挽回有限但稳定:Sharif 方案及后续研究的一致发现:显式域泛化在隐藏段上挽回的分数量级为个位数百分点——不是银弹,但在这个分数决定临床可行性的赛场上,个位数百分点就是名次与资源的差距。
9.R 给想复现冠军的工程清单
按 prna 方案的公开信息(论文+86 MB 代码),复现路径的工程要点:
- 架构:宽深双分支——Transformer 分支(导联间+时间轴 self-attention)与 CNN 分支(局部形态)特征级融合
- 输入管线:可变长度处理(六库 6–60 秒)、500 Hz 重采样、随机裁剪增强
- 标签处理:六库标签按官方 SNOMED 映射统一,非计分类做辅助监督头
- 阈值校准:27 类各自在验证集上优化阈值(评分指标对类间代价不同,统一阈值次优)
- 复现验证顺序:先官方 Python 基线 → 再 §9.A BaselineCNN → 最后冠军代码——逐级对照加权分,任何一级不达预期先查数据管道
- 算力预算:冠军级方案在单张消费级 GPU 上数小时量级(10 秒短记录、百万级采样点/条的数据体量并不大)——这不是一个算力瓶颈的赛道,是细节瓶颈的赛道
9.S 历届 PhysioNet 心电挑战赛全景:G12EC 的坐标
PhysioNet/CinC Challenge 系列自 2000 年起每年一届,2020 年的 12 导联分类在其中处于承前启后的位置。按数据类型与任务形态梳理关键届次:
- 2000-2010 年代中期:以单一临床问题的信号处理为主——睡眠呼吸暂停检测(2000)、高血压分类、缺血性 ST-T 分析等。数据规模通常在百至千条,参赛规模数十队。
- 2016(AFib 2017 预热期):单导联心律失常分类(8528 条),首次引入大规模移动设备数据,是「公开大赛撬动算法竞赛」模式的成熟标志。
- 2017 AF Classification:单导联 AF 四分类,53 支队伍决赛圈。任务边界清晰但数据单一来源。
- 2019:多机构 ICU 多参数早期脓毒症预测,临床预警评分文化的高峰。
- 2020(本条目):12 导联多标签分类,数据多样性(6 库 4 国)与规则严格化(开源复现+加权评分+隐藏机构)双峰值。
- 2021:扩展 2020——ECG+人口学/临床变量的联合识别,评分框架延续,六库沿用。
- 2022:非侵入血压估计(PPG+ABP 回归),任务从分类转向连续量。
- 2023 之后:继续以临床机构合作数据为主轴(心衰风险、给药预测等)。
在这条线上,G12EC 是「大规模多库竞赛时代」的标志性资产:它之后,PhysioNet 挑战赛的数据发布都以「机构合作、多库联合、隐藏评估」为默认形态。理解 G12EC 就是理解现代医学 AI 竞赛数据集的标准形态。
9.T G12EC 与 PTB-XL 深度对照:同代双雄的七维比较
这两库几乎总是被同时引用,系统对照一次:
| 维度 | G12EC | PTB-XL |
|---|---|---|
| 发布动因 | 为挑战赛 2020 新公开 | 2020 年初学术发布(Wagner 等 Sci Data) |
| 规模 | 10,344(公开段) | 21,837 |
| 人群 | 美国东南部(Emory) | 德国全国 15 站点 |
| 标注体系 | SNOMED CT 111 类 | SCP-ECG 诊断语句+SNOMED 映射 |
| 标注质量声明 | 官方承认有错、冻结不再更新 | 系统复核流程,附标注者元数据 |
| 患者级信息 | 无患者映射公开 | 有患者结构信息(可患者级切分) |
| 隐藏段 | 有(验证/测试用,永不发布) | 无(全公开) |
| 设备元数据 | 不公开 | 记录级设备信息可用 |
| 采集时长 | 10 秒为主 | 10 秒 |
| 采样率 | 500 Hz | 500/100 Hz 双版本 |
实践含义:PTB-XL 是「方法学开发」的更优选择(患者级切分、标注元数据、全公开);G12EC 是「人群多样性」的更优选择(美国人群、跨域压力测试、竞赛协议对齐)。严肃的跨中心研究几乎总是两者都用——PTB-XL 上开发,G12EC 上检验人群外推,这正是挑战赛本身示范的用法。
9.U 从挑战赛到社区文化:可复现性的涟漪
2020 挑战赛强制开源规则的涟漪效应值得单独记录,因为它展示了一个数据集如何改变一个社区的行为规范:
- 赛后代码库成为引用热点:41 强代码被后续论文引用的频率远超多数期刊论文——「方法可比对、结果可验证」使它们成为事实标准。
- 评审标准的迁移:此后心电方向论文的审稿人开始普遍要求「与 2020 挑战赛方案对比」——排行榜变成了隐性的基准测试集。
- 同类竞赛的规则模仿:CinC 后续各届、Kaggle 医学赛道、MIMIC 衍生竞赛陆续引入开源审计条款;「提交训练代码」从激进实验变成默认预期。
- 数据发布格式的惯性:WFDB 统一转写的实践被后续发布沿用,「用最老的格式保证最广的接入」成为 PhysioNet 的发布哲学。
9.V 五个「如果……怎么办」场景速答
如果在训练中六库某库标签密度明显偏低? 先核对是否把「未标注」当阴性训练了(坑 1);再查该库是否使用了不同 SNOMED 子集(标签空间错位);最后考虑对低密度库做半监督或降权处理。
如果我的模型在 G12EC 上比在 PTB-XL 上差得多? 首先怀疑人群漂移(形态类诊断尤甚),做逐类掉分分解定位问题类;然后检查输入预处理是否对两库用了同一套增益/重采样参数。
如果需要患者级切分但 G12EC 没有患者映射? 保守近似:按记录编号连续段分组切分(G12EC 编号有序但映射未知,这只降低而非消除泄漏风险);或在论文里如实声明「记录级切分,患者级泄漏风险存在」。
如果想把 G12EC 和自己的医院数据混合训练? 可行且常见(这正是 G12EC 的设计用途),但把私有数据当作目标域、G12EC 作为多样性供给——不要反过来用私有数据微调后声称 G12EC 成绩;同时注意混合后不能整体再以 CC BY 4.0 发布。
如果审稿人质疑「G12EC 已被无数模型训练过,还有新意吗?」 回应点:数据集的公开不等于饱和——G12EC 隐藏段从未公开,跨域协议下仍有可测量空间;且人群多样性供给的角色不因训练次数减少而削弱。
9.X 术语与缩写总检(正文出现过的全部缩写)
| 缩写 | 全称 | 中文 |
|---|---|---|
| G12EC | Georgia 12-Lead ECG Challenge Database | 本条目数据集 |
| CinC | Computing in Cardiology | 心算会议(挑战赛颁奖场合) |
| WFDB | WaveForm Database | 波形数据库格式 |
| SCP-ECG | Standard Communications Protocol for ECG | 欧洲心电传输标准(PTB-XL 原生格式) |
| SNOMED CT | Systematized Nomenclature of Medicine Clinical Terms | 临床术语系统 |
| AF | Atrial Fibrillation | 心房颤动 |
| AFL | Atrial Flutter | 心房扑动 |
| LBBB / RBBB | Left/Right Bundle Branch Block | 左/右束支阻滞 |
| AVB | Atrioventricular Block | 房室传导阻滞 |
| LVH | Left Ventricular Hypertrophy | 左室肥大 |
| GEH | Global Electrical Heterogeneity | 全局电异质性 |
| SE | Squeeze-and-Excitation | 通道注意力模块 |
| HIPAA | Health Insurance Portability and Accountability Act | 美国医疗隐私法 |
| SaMD | Software as a Medical Device | 医疗器械软件 |
| DANN | Domain-Adversarial Neural Network | 域对抗神经网络 |
| IRM | Invariant Risk Minimization | 不变风险最小化 |
| GroupDRO | Group Distributionally Robust Optimization | 分组分布式鲁棒优化 |
| BCE | Binary Cross-Entropy | 二元交叉熵 |
| DUA | Data Use Agreement | 数据使用协议 |
9.Y 数据集时间线上的相邻事件(2020 心电图数据年轮)
2020 年是心电数据集的「大年」,G12EC 的发布嵌在一串相邻事件中:
- 2020 年初:PTB-XL 正式论文发布(Wagner 等,Sci Data)——六库中最大的一块拼图就位
- 2020-02:挑战赛 2020 开幕
- 2020-04:挑战赛非官方阶段,首批两库数据带 SNOMED CT 码发布
- 2020-05:111 类诊断清单发布
- 2020-06:增发四库(含 G12EC 10,344 条),六库 43,101 条集齐
- 2020-07:官方阶段强制开源规则生效
- 2020-09:CinC 2020 颁奖(里米尼)
- 2020-11/2021-01:总结论文投稿与发表
- 同年及随后:MIMIC-IV 生态推进,数年后 MIMIC-IV-ECG 发布,把美国人群 ECG 公开规模推向十万例级(但转入凭证获取)
把这一串时间线连起来读,能看到「公开大赛数据」与「机构大数据」两条路线在 2020 年的分岔:前者(G12EC)用竞赛协议换取零门槛与标准化,后者(MIMIC-IV-ECG)用凭证制换取临床深度。两条路线至今并行,服务不同的研究生态。
9.Z 附录:12 导联信号处理速成(为非信号背景读者)
使用 G12EC 不需要成为信号处理专家,但下面这十个小概念是读懂任何 G12EC 论文方法节的最低配置:
- 导联(lead):不是「电缆」而是「视角」——每对电极定义一个投影方向。12 导联 = 6 个额面视角(I/II/III/aVR/aVL/aVF)+ 6 个横面视角(V1–V6),合起来把心脏电活动投影到三维。
- 增益(gain)与基线(baseline):.hea 头文件里每导联的 ADC 换算参数;1 单位整数 = 1/增益 mV。忽略它们是初学者第一大坑。
- P-QRS-T 波群:一个心搏的三个形态阶段——P(心房除极)、QRS(心室除极,最尖锐)、T(心室复极)。几乎全部形态学诊断都建立在这三段形态、时长、幅值的测量上。
- PR 间期 / QRS 时限 / QT 间期:三个核心时间参数,分别对应房室传导、室内传导、复极过程。一度 AVB=PR 延长、LBBB/RBBB=QRS 增宽、长 QT=复极延长。
- R-R 间期与心率变异性:相邻 R 波间隔。AF 的「绝对不齐」、室上速的「突发突止」都是 R-R 序列的统计特征——官方 Python 基线只用这一组特征加逻辑回归就能工作。
- 采样定理的实践含义:500 Hz 采样意味着可表达信号带宽上限 250 Hz。QRS 主要能量在 5-40 Hz,常规诊断足够;HIS 束电位(微伏级、高频)在此分辨率下不可见——数据分辨率的天花板。
- 基线漂移与工频干扰:呼吸引起的低频漂移(<1 Hz)与 50/60 Hz 工频噪声是最常见的两类伪迹。跨库训练时各国工频不同(中国/欧洲 50 Hz,美国 60 Hz),滤波策略要与库匹配。
- 重采样的代价:1,000 Hz → 500 Hz 用抗混叠低通后抽取;257 Hz → 500 Hz 的插值会引入伪高频——后者是 INCART 在联合训练中「看上去可用实则脏」的原因。
- 归一化的库泄漏陷阱:如果对全数据集统计均值/方差再归一化,测试库的信息就泄漏进了训练。按库或按记录归一化是跨库实验的默认安全做法。
- 数据增强的形态约束:时间平移、幅值缩放、加噪对 ECG 安全;随机裁剪可能切断 P-QRS-T 完整周期;「导联丢弃」增强则同时是数据增强与导联鲁棒性训练——亚军方案的导联加权思想与此相通。
9.AA 挑战赛方法 × 能力矩阵:按需取用的方案目录
41 强方案各有侧重,按研究目标选用时可用下面的能力矩阵导航(+ 表示该方案在此维度有明确贡献,空白的表示未见特色):
| 方案 | 长程依赖 | 导联鲁棒 | 域泛化 | 多尺度 | 标签噪声处理 | 可解释性 |
|---|---|---|---|---|---|---|
| prna(冠军) | + | + | + | |||
| Between a ROC(亚军) | + | + | ||||
| HeartBeats(季军) | ||||||
| Triage | + | + | ||||
| Sharif AI(第 5) | + | |||||
| DSAIL_SNU(第 6) | + | + | + | |||
| UMCUVA(第 7) | + | |||||
| CQUPT_ECG(第 8) | + | |||||
| Madhardmax(第 25) | + | |||||
| Technion_AIMLAB(第 41) | + | + |
使用建议:做通用基线从 DSAIL_SNU 入手(技巧全集、复现成本低);做鲁棒性研究精读 Sharif 与 Between a ROC;做可解释性研究看 Madhardmax(信息论特征)与 Triage(散射变换的物理可解释性)。
9.BB 常见报错与排查对照表
| 症状 | 最可能原因 | 处置 |
|---|---|---|
| loadmat 报错或形状不对 | .mat 是 v4 老格式,或路径含子目录层级 | 换用 wfdb 包或 scipy≥1.8;glob 递归匹配 |
| 信号全是接近 0 的小整数 | 没做增益换算 | 乘以 .hea 增益字段或改用 wfdb.rdsamp |
| 训练报形状不匹配 | 硬编码 5000 点遇到非 10 秒记录 | 按 .hea sig_len 动态处理 |
| 验证分高、自测分骤降 | 患者泄漏(同患者记录分居两侧)或库泄漏 | 分组切分 + 按库审计 |
| 官方评分脚本跑不出数字 | 预测 CSV 格式/顺序与官方不符 | 严格按官方 baseline 的输出格式生成 |
| 某类 AUC 高但加权分低 | 假阳性代价高的类没做阈值校准 | 按类在验证集上独立调阈值 |
| 六库联合训练不升反降 | 库间预处理不一致或标签语义冲突 | 按库统一管道、打印逐库标签分布审计 |
9.CC 引用格式模板(三种常用场景)
论文数据来源节:
The Georgia 12-Lead ECG Challenge (G12EC) Database (training subset, 10,344 recordings) was obtained from the PhysioNet/Computing in Cardiology Challenge 2020 (version 1.0.2), distributed under CC BY 4.0. We cite Perez Alday et al., Physiol Meas 41(12):124003 (2021), doi:10.1088/1361-6579/abc960, and Goldberger et al., Circulation 101(23):e215-e220 (2000).
方法节版本声明:
We used the G12EC public training set (n=10,344; 10 s; 500 Hz; 12 leads; WFDB format) as released for the PhysioNet/CinC Challenge 2020, v1.0.2, without label modifications. Labels cover 111 SNOMED CT classes; evaluation follows the official 27-class weighted metric via evaluate_12EC_score.py.
中文期刊:
数据来源:Georgia 12 导联心电挑战赛数据库(G12EC)公开训练段 10,344 条记录,取自 PhysioNet/Computing in Cardiology Challenge 2020(v1.0.2 版本,CC BY 4.0 许可),诊断标注采用 SNOMED CT 编码(训练覆盖 111 类、评估 27 类)。
9.DD 数据使用的「三问自检」——写代码前 30 秒
每次在 G12EC 上开新实验前问自己三个问题:
- 我的切分泄漏了吗?——患者近似分组、库身份、时间信息,三个泄漏通道都封了吗?
- 我的指标对了吗?——用的是官方加权脚本吗?「未标注≠阴性」的语义一致吗?阈值是逐类校准的吗?
- 我的结论有对照吗?——有没有朴素联合训练基线?有没有逐库分解?掉分是否与 10% 隐藏税可比?
这三个问题分别对应本条目的坑 1/2、坑 5/6、§5 的方法论——30 秒自检能挡住 80% 的返工。
9.EE 给未来数据集设计者:G12EC 模板的三处可改进处
站在 2026 年回看,若今天要做一个「G12EC 的精神继承者」,有三处设计值得升级:
- 标注过程全量记录:2020 挑战赛承认标签有错却不提供标注者一致性数据。现代数据卡实践(如 PTB-XL 的标注元数据)证明:把「谁、何时、如何标」记录下来,数据集的可信度与可研究性都会质变——标签噪声本身就是可发表的科学。
- 患者级匿名映射:G12EC 不公开患者映射导致本地切分只能保守近似。现代去标识技术(如 k-匿名的患者 token)可以做到「可患者级切分、不可复原身份」,两者并不冲突。
- 分阶段的隐藏评估退役计划:永不公开的隐藏段让赛事结束后模型无法与官方成绩可比。可设计「N 年后按脱敏协议释放隐藏段」的日落条款,让基准资产随社区成熟逐步增值。
G12EC 的历史贡献是把当时的最佳实践一次做满;它的这三处「时代局限」恰恰是下一代基准的改进清单——这也是读老数据集的正确姿势:既用它,也读它。
9.FF 走查实例:从一条记录到一个预测(端到端微观视角)
为了把前面所有抽象建议落到具体,本节走查一条假想的 G12EC 记录从读取到预测的全过程。
输入:A0123.hea + A0123.mat。头文件显示:12 导联、500 Hz、5,000 点;#Age: 71、#Sex: Male、#Dx: 164889003,270492004(心房颤动 + 一度房室传导阻滞)。
第一步(解析):wfdb 读出信号矩阵 (5000, 12),物理量纲 mV;逐导联快速质量检查——aVR 之外的导联是否有扁平段(电极脱落)、是否饱和(±5 mV 截断)、基线漂移幅度。若 II 导联扁平,该记录的节律标签可信度下降,进增强噪声样本池或降权。
第二步(特征直觉预检):不用模型,先用传统参数扫一遍——R 波检测得 R-R 序列,统计其变异系数:若 >20% 且 P 波检测失败,与 AF 标签吻合;PR 间期在各心搏间不可测(P 波消失),与「一度 AVB」并存标签的关系提示标签可能反映病史而非当前波形——这正是 §9.M 讨论的「标签语义分层」实例:同一记录的两个标签,一个形态可证(AF),一个只能病史推断(一度 AVB)。
第三步(模型输入):12×5000 张量,零均值单位方差按记录归一化;随机时移 ±100 样本、幅值缩放 0.9-1.1、高斯噪声 SNR 30 dB 三件套增强。
第四步(预测与阈值):模型输出 27 维 logits,sigmoid 后逐类阈值化。假设 AF 输出 0.97(阈值 0.5)判阳,一度 AVB 输出 0.41(阈值 0.35)判阳,粗颤形态类输出 0.6 判阳——注意第三个预测在金标准里是「错」的(真标签只有两类),但加权评分只对 27 类中「治疗后果相似」的混淆给低惩罚:把 AF 细分形态判多,接近无害。
第五步(评分):官方脚本把该记录的预测-真值对计入混淆矩阵 a_ij,权重 w_ij 按专家表施加。这条记录贡献的正分主要来自两个真阳,若模型漏了 AF(最危险的漏诊),扣分权重大于漏掉一度 AVB——同一个「漏诊」,代价不同。
第六步(误差归因):假如模型这次漏了 AF(输出 0.3),排查顺序:该记录是否来自增强噪声池(第一步降权过的)?训练集中 AF 样本是否被上采样到合理比例?验证集 AF 阈值是否被少量极端样本推高?——三级排查分别对应数据质量、类别不平衡、阈值校准三个层,每层都有 §10 对应的坑。
这个走查想说明一件事:G12EC 上的每个工程决策(切分、增强、阈值、评分)都不是孤立选择,而是一条从「标签的临床语义」到「评分的加权逻辑」的因果链。链条上的任何一环替换成默认值,都可能在最终分数上留下看不见的洞。
9.GG DAIMS 评估全表
| 维度 | 评分(1-10) | 依据 |
|---|---|---|
| D 可发现性 | 9 | PhysioNet 官方内容页+Moody Challenge 官方站双入口,MD5 明示,文献引用链完整(doi:10.1088/1361-6579/abc960);「G12EC」缩写在社区高度通行 |
| A 可获取性 | 9 | 免注册、免凭证、免 DUA,wget 与 Google Storage 双直链,tar.gz 数百 MB 级;六库中唯一美国来源且零门槛——近乎公开数据可得性的天花板 |
| I 可互操作 | 8 | WFDB 统一格式+MATLAB v4 兼容全生态;扣分项:诊断码在 .hea 注释行而非结构化字段,社区解析器行为不一;六库间采样率/时长需自行归一 |
| M 元数据质量 | 6 | 年龄/性别/诊断齐全且 HIPAA 合规;扣分项:无患者映射、无设备映射、无种族字段、标注流程与标注者一致性不透明、官方承认存在标签错误且冻结 |
| S 可持续性 | 8 | PhysioNet 平台长期稳定托管、版本冻结(1.0.2 终版)消除漂移风险;挑战赛主办方为志愿者运营,长期代跑支持能力有限(对数据本体无影响) |
| 综合评级 | 8.0/10(高) | 可发现/可获取/可互操作三强,元数据不透明是被挑战赛「赛会型」定位决定的固有折衷;作为跨人群泛化基准的综合价值在同类中居首 |
评级说明:与同类 12 导联 ECG 数据集横向比较——PTB-XL 在 M(标注元数据)维度明显更高(约 9),G12EC 在 A(零门槛)与 D(挑战赛生态绑定)维度占优;MIMIC-IV-ECG 规模碾压但 A 维度因凭证制大幅失分。三者综合分都在 7.5-8.5 区间,差异主要体现在「你需要的维度」而非总分——这正是 DAIMS 逐维评分比总分更有决策价值的地方。
9.HH 与库内条目关系的补充说明(为什么这十一个互链点)
frontmatter relatedLink 与 §9 主体列出的库内互链不是随意挑选,每条都有明确的功能角色,按四类归位:
同赛六库组(横向同源):ptb-xl、cpsc——G12EC 的直接兄弟库,跨域实验的固定搭档。
谱系组(时间纵深):mit-bih-arrhythmia(上游经典)、mimic-iv-ecg(下游超大规模后继)、ptb-xl-plus(平行增强后继)——把 G12EC 放进「48 条 → 10,344 条 → 80 万条」的规模演化轴。
方法与标准组(基础设施):openecg——WFDB 统一格式实践的标准背景板。
人群与模态对照组(多样性映射):leipzig-heart-center-ecg(欧洲单中心)、norwegian-athlete-ecg(特殊人群)、ecg-image-database(图像模态)、apnea-ecg(任务扩展)——G12EC 的人群独特性只有放在这组对照里才显形。
这种「同源/谱系/标准/对照」的四分法可直接迁移到库内其他数据集条目的互链设计上。
9.II 三条交叉验证笔记(数字核对留痕)
核心硬数字在本轮研究中经三源交叉核对:
- 10,344 条:PhysioNet 内容页(「Georgia 12-lead ECG Challenge Database, 10,344 recordings」)、官方 Google Group 2020-06-13 公告(「F. 10,344 recordings from a Georgia 12-Lead ECG Challenge Database」)、挑战赛论文 PDF 摘录(「This training set contains 10,344 12-lead ECGs (male: 5,551, female: 4,793)」)——三源一致。
- 性别构成 5,551/4,793:内容页与论文摘要一致;5,551+4,793=10,344,内部自洽。
- 43,101 公开总量:官方公告(「Altogether, six databases are now available」+分库数字加和 6,877+3,453+74+516+21,837+10,344=43,101)与论文口径一致,加和自洽。
- 217 队/1,395 投稿/41 队排名:官方站点 2020-09-21 公告(「217 teams, 1395 entries (707 successful), 110 abstracts, 41 teams officially ranked」),单源但为官方一手口径。
- MD5 4971a0562df4a7e2fd8f58e060927ff2:PhysioNet 内容页明示,单源官方。
未被三源覆盖的数字(隐藏段例数、各队精确分数、27 类完整清单)在正文中一律按定性口径表述,未编造。
9.JJ 本条目与官方材料的分工声明
为避免读者混淆「本条目」与「官方材料」的职责边界,特此声明信息流向:
- 官方材料的权威范围:数据本体、评分脚本、排行榜 CSV、41 强代码——一切与本条目冲突之处以官方为准
- 本条目的增量价值:把散落在论文、公告、CSV、代码库中的官方事实整合为中文叙事,并补充使用视角的工程经验、避坑清单与教学路径
- 本条目的解读边界:§9.H 诊断族群的临床意义、§9.S 竞赛史定位、§9.EE 改进建议属于编辑部的整合性解读,官方材料中无对应原文——引用时请区分「官方事实」与「条目解读」
- 纠错通道:若发现本条目与官方材料不一致,以官方为准并向编辑部反馈;高价值纠错将进入下一轮修订
这一声明也是本库所有数据集条目的通用范式:百科条目是官方材料的导航层与解读层,永远不是替代层。
9.KK 结语式小结(§9 扩展部分)
§9 主体与 9.A-9.KJ 十一个扩展小节合计覆盖了:一条从下载到模型的完整实操路径(9.A)、七个误解澄清(9.B)、三个研究案例(9.C)、三类角色的落地清单(9.D)、竞赛史坐标(9.E/9.S)、数据质量审计(9.F/9.T)、临床诊断细读(9.H)、伦理合规(9.I)、十二问扩展 FAQ(9.J)、方法学批判(9.K)、版本管理(9.L)、逐类诊断细读(9.M)、格式标准化(9.N)、课程设计(9.O)、数据卡(9.P)、掉分数字直觉(9.Q)、冠军复现清单(9.R)、端到端走查(9.FF)、能力矩阵(9.AA)、报错排查(9.BB)、引用模板(9.CC)、三问自检(9.DD)、改进建议(9.EE)、互链设计范式(9.HH)、DAIMS 评估(9.GG)与交叉验证留痕(9.II)。
这份扩展结构本身遵循一个设计原则:每个小节都必须在读者下一次打开数据时被用到——不能被用到的内容不进本条目。
§10 避坑清单:八个已踩过的坑
坑 1:把「正常」标签当阴性用。 训练数据里大量记录只标了「Normal sinus rhythm」(正常窦性心律)。但正常标签往往意味着「未见异常」而非「系统排除所有 111 类」——把它当全阴性训练,会把漏标的有病记录教成正常。处置:至少对计分类做「未标注≠阴性」的敏感性分析;顶级队伍普遍用多示例学习或标签平滑缓解。
坑 2:信任标签质量导致过拟合到标注风格。 官方明确承认各库标注实践不一(机器+复核、单人工、多人工),且「必然存在错误与可争议标签」。在同库内做交叉验证时,模型会学会标注员的个人风格;跨库测试即掉分。处置:六库联合训练+库身份对抗(Sharif 方案),或至少按库分层验证。
坑 3:硬编码记录时长为 10 秒。 G12EC 主流是 10 秒,但同批发布的六库时长横跨 6 秒到 30 分钟,甚至 G12EC 内部也存在头文件采样点数不一致的记录(如 7,500 点)。硬编码会静默丢数据或崩溃。处置:一律先读 .hea 头文件的采样点数字段。
坑 4:忽略 .mat 的 v4 老格式与增益字段。 新版 scipy 能读 v4,但部分环境(精简版 HDF5 读取链路)会失败。且信号是 16 bit 整数,必须乘以头文件增益字段(如 1000/mV)才能还原物理量纲。跳过增益换算会让幅值特征整体错 3 个数量级。处置:用 wfdb 包或 scipy.io.loadmat 并显式处理增益。
坑 5:用 accuracy/AUC 排名自己的模型。 挑战赛排名只看加权混淆矩阵指标。一个 macro AUC 更高但假阳性控制差的模型,在官方指标下可能显著更差。处置:直接使用官方 evaluate_12EC_score.py 评估,别自造指标。
坑 6:在验证集上调参后报告「测试成绩」。 挑战赛的验证集(含 G12EC 隐藏段)成绩官方公开了,但测试集成绩每队只取一次完整评估。本地实验者若把自己切分的「测试集」反复查看,就是在复刻挑战赛规则明确禁止的过拟合。处置:留一个从不查看的最终验证段,或完全复用官方协议(验证集每队多次、测试集每队一次)。
坑 7:把 27 类之外的诊断标签当垃圾扔掉。 84 个非计分类不是废料——它们提供了诊断层级关系与共现结构的免费监督。丢弃它们等于扔掉半个数据集的信息量。处置:多任务学习(计分类+非计分类辅助头)是 41 强队伍的通行做法。
坑 8:假设六库联合训练自动带来泛化。 §4.4 的 10% 掉分证明:数据多样性能减缓但远不能消除域漂移。没有显式域泛化机制的朴素联合训练,在 Undisclosed 类型的全新机构上仍会显著退化。处置:引入域对抗/测试时适应,或在部署前用本地数据做小规模微调。
§11 总结
Georgia 12-Lead ECG Challenge Database 是一个「为一场竞赛而生、却改变了整个领域工作方式」的数据集。它的硬指标——10,344 条公开 12 导联 ECG、10 秒、500 Hz、SNOMED CT 111 类标注——放在今天不算惊人(MIMIC-IV-ECG 已是它的 80 倍)。但它承载的三个设计决策:加权临床评分、强制开源复现、永不公开的隐藏机构测试,重新定义了医学 AI 竞赛乃至更广的医学 AI 基准评估应该怎么做。
对数据使用者,它是免门槛获取的美国人群万例级 ECG,是跨中心泛化实验的必要拼图;对算法开发者,它是「10% 隐藏税」的量尺所在,提醒所有人在同分布指标之外保留对域漂移的敬畏;对竞赛设计者,它示范了如何把临床代价、可审计性与反作弊机制写进赛制本身。
四十年来心电数据集的演化方向是清晰的:更大(48 → 10,344 → 800,000)、更开放(凭证制 → 免注册直下)、更贴近临床代价(accuracy → 加权混淆矩阵)。G12EC 在第二与第三个维度上都站在转折点上。只要「跨机构心电 AI」仍是一个未完全解决的问题,这个来自亚特兰大的数据集就会继续出现在每个严肃实验的数据清单里。
FAQ(高频问答 28 问)
数据本体
- G12EC 是什么缩写? Georgia 12-Lead ECG Challenge Database 的官方缩写,挑战赛论文与排行榜统一使用 G12EC 指代该库。
- 数据在哪个网站下载? PhysioNet 内容页 challenge-2020(1.0.2 版),另有 cloudypipeline 与 Google Storage 两条直链通道。
- 需要注册或签协议吗? 不需要凭证访问或数据使用协议,直接下载。
- 数据文件是什么格式? WFDB:信号为 MATLAB v4 格式 .mat 文件,元数据与标注为 .hea 文本头文件。Python 用 scipy.io.loadmat 或 wfdb 包读取。
- 每条记录多长?采样率多少? G12EC 公开段为 10 秒、500 Hz(5,000 点/导联)。注意六库整体时长 6 秒–30 分钟、采样率 257–1,000 Hz 不等。
- 有多少患者? 官方未公开唯一患者数(同一患者可能有多条记录),公开段按记录数计为 10,344 条(男 5,551 / 女 4,793)。
- 年龄字段为什么有大量 92 岁? HIPAA 规则下超过 89 岁的年龄统一记为 92(官方选定的代表值),老年段年龄信息失真。
- 诊断标签用什么编码? SNOMED CT 数字码,训练数据覆盖 111 类,挑战赛只用 27 类计分。
- 27 个计分类是哪些? 完整清单见挑战赛论文附表与官方评分 CSV。已核实示例:心房颤动(164889003)、一度房室传导阻滞(270492004)。
- G12EC 的隐藏段有多少条? 未公开。验证集与测试集各含一部分,官方从未公布逐库隐藏例数。
挑战赛机制
- 挑战赛什么时候办的? 2020 年 2 月开幕,9 月 16 日在 CinC 2020(意大利里米尼)颁奖,总结论文 2021 年 1 月发表于 Physiological Measurement。
- 多少队伍参加? 217 支队伍、1,395 次投稿(707 次成功)、110 篇摘要、41 支队伍正式排名。
- 冠军是谁?用的什么方法? prna 队(Philips,Natarajan 等),宽而深 Transformer 网络,融合多尺度输入与逐类阈值校准。
- 评分指标是什么? 专家赋权的多类混淆矩阵指标:相似疾病误判得部分分,危险误判重罚;归一化后全对=1、全输出正常=0、全输出异常为负。排名只看该指标,AUROC/AUPRC/F1 仅为参考。
- 为什么这次挑战赛被称为分水岭? 第一次在公开竞赛中强制提交预训练模型+训练代码并在隐藏数据上复跑——不可复现者不得排名。
- 参赛代码能看到吗? 全部公开。41 支排名队伍的论文与代码在官方 results 页面直链下载。
- 测试数据为什么永不公开? 防止针对性过拟合与虚高性能宣称;赛后仅按发表必要性个案受理代跑请求。
使用实践
- 数据 license 是什么?可以商用吗? PhysioNet 挑战赛数据通行口径 CC BY 4.0,允许商用与再分发,义务是署名(引用挑战赛论文与 PhysioNet)。
- 可以直接和 PTB-XL 混着训练吗? 可以,这正是挑战赛设计的用法。注意采样率重采样(PTB 1,000 Hz、INCART 257 Hz)、时长截断、标签空间错位三类工程问题(§5.2–5.3)。
- 如何在本地复现挑战赛评分? 使用官方 evaluate_12EC_score.py 脚本(v1.0.2 页面提供),输入预测 CSV 与参考标签,输出加权分与参考指标。
- 训练集能自己再切分验证集吗? 可以,但建议按记录(患者)切分而非按记录随机切,避免同患者记录同时进训练与验证。
- 数据有标签错误吗? 有。官方声明各库必然存在错误或可争议标签且不再更新,使用者需自行决定清洗策略。
- 非计分类的 84 个标签有用吗? 有。顶级队伍普遍把它们用作多任务辅助监督,利用诊断层级结构提升计分类性能。
- 想做域泛化研究,实验怎么设计? 标准协议:六库留一库做目标域,或按官方验证/测试协议评估;对照基线为朴素联合训练与 2020 年 41 强的开源方案。
生态与延伸
- 挑战赛 2021 和 2020 是什么关系? 2021 直接扩展 2020 的数据与赛题(加入临床变量联合任务),评分框架与开源规则延续,两届合称 Moody Challenge。
- 和 MIMIC-IV-ECG 比怎么选? 快速原型、教学、无审批场景选 G12EC(免注册);需要超大规模与临床关联(ICU 住院信息)选 MIMIC-IV-ECG(需凭证)。两者人群同为美国但采集场景不同。
- G12EC 之后有增强标注版本吗? 没有。PTB-XL 有 ptb-xl-plus 形态增强标注,G12EC 尚无对应后继——这是公开的生态位空白。
- 引用这条目应引什么? 首引 Perez Alday 等 2021(doi:10.1088/1361-6579/abc960),次引 PhysioNet 标准引用(Goldberger 等 2000),本库条目 URL 占位 https://www.qianfanghub.com/ai-ready-dataset/georgia-12-lead-ecg-challenge/1141。
事实清单(硬事实 32 条)
- G12EC 公开训练段 10,344 条 12 导联 ECG
- 性别构成:男 5,551 / 女 4,793
- 每条记录 10 秒、500 Hz、12 导联(I/II/III/aVR/aVL/aVF/V1–V6)
- 来源机构:Emory University(Atlanta, Georgia, USA)
- G12EC 是挑战赛六库中唯一完全为挑战赛新公开的数据库
- 数据格式:WFDB(MATLAB v4 .mat + .hea 头文件)
- 官方公布 G12EC MD5:4971a0562df4a7e2fd8f58e060927ff2
- 挑战赛六库公开合计 43,101 条(论文口径总盘 66,361 条、6 个医院系统、4 国、3 大洲)
- 六库构成:CPSC 6,877 / CPSC-Extra 3,453 / INCART 74 / PTB 516 / PTB-XL 21,837 / G12EC 10,344
- Undisclosed 库 10,000 条,来自地理独立的美国机构,永不公开
- 训练数据覆盖 111 个 SNOMED CT 诊断类,27 类计分
- 年龄超过 89 岁统一记为 92(HIPAA)
- 官方对原始数据的三类改动:HIPAA 合规处理、SNOMED CT 近似编码、幅度整数化
- 验证集 = 隐藏 CPSC 段 + 隐藏 G12EC 段;测试集另加全部 Undisclosed 段
- 测试数据永不发布,赛后仅个案受理代跑
- 挑战赛时间线:2020-02-07 开幕、2020-07-01 官方阶段、2020-09-16 颁奖、2021-01 论文发表
- 论文:Perez Alday EA 等,Physiol Meas 41(12):124003(2021),doi:10.1088/1361-6579/abc960
- 217 队、1,395 次投稿(707 成功)、110 篇摘要、41 队正式排名
- 每队全程最多 15 次计分投稿
- 冠军 prna(宽深 Transformer)、亚军 Between a ROC and a heart place(导联加权 ResNet)、季军 HeartBeats(SE-ResNet)
- 第 4 名 Triage(散射变换+DNN)、第 5 名 Sharif AI Team(对抗多源域泛化)
- 官方声明各库存在标签错误与可争议标签,且训练数据不再更新
- 首次强制提交预训练模型+训练代码并复跑,不可复现不得排名
- 高性能算法在隐藏测试集上普遍掉分约 10%
- SNOMED CT 映射在 2020-06-24 更新过一版
- 官方基线:Pan-Tomkins RR 矩+人口学逻辑回归(Python)与 GEH+人口学逻辑回归(MATLAB)
- 数据版本链 1.0.1 → 1.0.2(当前),tar.gz 直链下载无需凭证
- license:PhysioNet 挑战赛通行口径 CC BY 4.0
- 挑战赛由 NIH 资助(NIBIB R01EB030362 等)
- 颁奖地:CinC 2020,意大利里米尼
- 挑战赛核心团队:Clifford 与 Reyna 为共同 senior author,Perez Alday 为一作
- 后继赛事:PhysioNet Challenge 2021 直接扩展 2020 赛题
术语表(26 条)
| 术语 | 英文 | 释义 |
|---|---|---|
| 十二导联心电图 | 12-lead ECG | 体表 12 个导联的心电记录,临床心脏电活动筛查标准工具 |
| G12EC | Georgia 12-Lead ECG Challenge Database | 本条目主角,Emory 大学为挑战赛 2020 新公开的 ECG 数据库 |
| PhysioNet | PhysioNet | MIT 运营的生理信号资源平台,本数据的发布方 |
| CinC | Computing in Cardiology | 心电计算领域年度会议,挑战赛的颁奖与论文场合 |
| WFDB | WaveForm Database format | 生理信号存储格式:二进制信号+文本头文件 |
| SNOMED CT | Systematized Nomenclature of Medicine Clinical Terms | 临床医学术语系统,本数据诊断标签的编码体系 |
| 多标签分类 | multi-label classification | 每条样本可同时属于多个类别(如房颤+左室肥大并存) |
| 加权混淆矩阵 | weighted confusion matrix | 按误诊临床代价赋权的混淆矩阵评分(本挑战赛核心指标) |
| 假阳性 | false positive | 把没病的判为有病,造成过度治疗风险 |
| 假阴性 | false negative | 把有病的判为没病,造成漏诊风险 |
| 域偏移 | domain shift | 训练与部署数据分布不同导致的性能退化 |
| 域泛化 | domain generalization | 在未见过的目标域上保持性能的方法族 |
| 多源域对抗泛化 | adversarial multi-source domain generalization | Sharif 队方案:把多库当多域做对抗训练学习域不变表征 |
| 全局电异质性 | Global Electrical Heterogeneity, GEH | 从 XYZ 导联中位心跳计算的空间心电指标,官方 MATLAB 基线特征 |
| Pan-Tomkins | Pan-Tomkins algorithm | 经典 QRS 波检测算法,官方 Python 基线的核心 |
| RR 间期 | RR interval | 相邻两次心搏的间隔,心率变异性的基本单位 |
| SE-ResNet | Squeeze-and-Excitation ResNet | 带通道注意力的残差网络,季军方案骨干 |
| 宽深模型 | wide and deep model | 线性/记忆分支与深度泛化分支并联的架构,冠军方案思想 |
| 散射变换 | scattering transform | 不变小波变换特征提取器,第 4 名方案的信号前端 |
| 外卡队伍 | wild card team | 非官方阶段未晋级但获主办方特邀参赛的队伍 |
| 凭证访问 | credentialed access | PhysioNet 对敏感数据的要求(培训证书+使用协议),本数据不需要 |
| HIPAA | Health Insurance Portability and Accountability Act | 美国医疗隐私法,年龄>89 统一记 92 的依据 |
| 隐藏测试集 | hidden test set | 从不发布、由主办方代跑的最终评估数据 |
| MD5 校验和 | MD5 checksum | 数据完整性校验哈希,下载后核对用 |
| Moody Challenge | George B. Moody PhysioNet Challenge | 挑战赛的正式纪念名称(纪念 George Moody) |
| 留一库法 | leave-one-database-out | 六库留一库做目标域的跨域实验协议 |
附录
A. 按角色阅读路径
- 算法工程师(想直接跑基线):§2.4 文件解剖 → §6.1 下载 → §6.4 验证清单 → §10 坑 3/4/5 → FAQ 18/20
- 数据科学家(做跨中心研究):§2.2 六库总表 → §2.3 拆分策略 → §5 全部 → §10 坑 1/2/8 → FAQ 19/24
- 临床信息学研究者(评估/引用):§1 → §3.2 评分指标 → §4.1 排名表 → §7 生态 → 事实清单
- 竞赛/基准设计者:§3 全部 → §8 四条经验 → FAQ 15/17
- 学生/教学场景:§1 十问十答 → §2.4 → 术语表 → FAQ
B. 一页速查卡
- 下载:physionet.org/content/challenge-2020/1.0.2/(G12EC tar.gz 直链 + MD5 4971a0562df4a7e2fd8f58e060927ff2)
- 规模:10,344 条 | 10 秒 | 500 Hz | 12 导联 | 男 5,551 / 女 4,793
- 格式:.mat(scipy.io.loadmat)+ .hea(wfdb 包读取,注意增益)
- 标签:SNOMED CT 111 类,27 类计分;「未标注≠阴性」
- 评分:官方 evaluate_12EC_score.py,加权混淆矩阵,别用 accuracy 排名
- 陷阱:时长硬编码、增益换算、标签噪声、域漂移(10% 税)
- 引用:doi:10.1088/1361-6579/abc960 + PhysioNet 标准引用
- license:CC BY 4.0(通行口径)
C. 与库内条目的速查关系
| 库内条目 | 关系 |
|---|---|
| ptb-xl | 同赛六库核心对照(德国,21,837 条) |
| cpsc | 同赛六库(中国,6,877 条) |
| mimic-iv-ecg | 美国超大规模后继(受控获取) |
| ptb-xl-plus | PTB-XL 增强标注后继(G12EC 无对应物) |
| mit-bih-arrhythmia | 谱系上游经典基准 |
| openecg | ECG 数据标准化生态 |
| leipzig-heart-center-ecg | 欧洲单中心对照 |
| ecg-image-database | 图像化 ECG 平行模态 |
| norwegian-athlete-ecg | 特殊人群对照 |
| apnea-ecg | ECG 任务扩展对照 |
尾注
- 本条目数据核验时点:2026-10-17,核验代理 agent-a-georgia12l
- 主要来源:PhysioNet challenge-2020 内容页(v1.0.2)、Moody Challenge 2020 官方站(含结果与论文页)、挑战赛总结论文(Physiol Meas 2021;41(12):124003)、挑战赛官方 Google Group 公告(2020-06-13 数据发布帖)
- 双口径存照:① license 按 PhysioNet 挑战赛通行口径记为 CC BY 4.0,内容页显式声明待终检复核;② G12EC 隐藏段例数、27 类完整清单、冠军精确分数官方未在已抓取页面明示,条目均按定性口径表述,未编造数字
- 相关库内条目互链 rid 均以 /0 占位,由主会话入库后统一回填
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- cinc-2021 — 共享标签:生理信号 / 心电信号 / 挑战赛数据集 / 评测基准 / 心血管疾病
- ltafdb — 共享标签:生理信号 / 心电信号 / 挑战赛数据集 / 评测基准 / 心血管疾病
- cinc-2020 — 共享标签:生理信号 / 心电信号 / 挑战赛数据集 / 评测基准 / 心血管疾病
- cinc-2014 — 共享标签:生理信号 / 心电信号 / 挑战赛数据集 / 评测基准 / 心血管疾病
- apnea-ecg — 共享标签:生理信号 / 心电信号 / 挑战赛数据集 / 评测基准
- cinc-2013 — 共享标签:生理信号 / 心电信号 / 挑战赛数据集 / 评测基准
- cinc-2011 — 共享标签:生理信号 / 心电信号 / 挑战赛数据集 / 心血管疾病
- butppg — 共享标签:生理信号 / 心电信号 / 挑战赛数据集 / 心血管疾病
- ecg-image-database — 共享标签:生理信号 / 心电信号 / 挑战赛数据集 / 心血管疾病
- code-test — 共享标签:生理信号 / 心电信号 / 评测基准 / 心血管疾病
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

