PhysioNet/CinC 2020 (cinc-2020) — AI-Ready Wikipedia

Classification of 12-lead ECGs——6 库 43,101 条公开 12 导联 ECG(总量 66,361)的 27 类 SNOMED CT 心脏异常多标签分类挑战赛:首创 reward 部分得分制与强制训练代码公开,冠军 Philips Transformer 0.533,CC BY 4.0 完全开放

来源 6 库公开训练汇编(WFDB 格式 + SNOMED CT 标签):CPSC 2018/Extra、St Petersburg INCART、PTB、PTB-XL、Georgia G12EC + 隐藏验证/测试集(含来源不披露的 Undisclosed American 10,000 条);分库明细见正文附录发布时间: 2026-09-27最后更新: 2026-09-27 阅读 14
PhysioNet/CinC 2020 (cinc-2020) — AI-Ready Wikipedia

信息速览

数据集名称PhysioNet/CinC 2020 (cinc-2020) — AI-Ready Wikipedia
数据类型原始数据,人工标注
规模66,361 条 12 导联 ECG 记录(公开训练 43,101 条/6 库 + 隐藏验证与测试 23,260 条);来自 6 个医院系统、4 国、3 大洲;患者级数量未跨库统一披露
接入方式6 库公开训练汇编(WFDB 格式 + SNOMED CT 标签):CPSC 2018/Extra、St Petersburg INCART、PTB、PTB-XL、Georgia G12EC + 隐藏验证/测试集(含来源不披露的 Undisclosed American 10,000 条);分库明细见正文附录
AI 就绪度

INFOBOX — PhysioNet/CinC 2020 一屏速览

维度 内容
本质 12 导联 ECG 心脏异常多标签分类挑战赛数据集——6 库汇编,2020 届 PhysioNet/CinC 挑战赛(“Classification of 12-lead ECGs”)
组织方 Emory University DBMI 主导(Perez Alday、Reyna、Clifford 等 14 人),东南大学/山东建筑大学/UPV-EHU 参与;Google/MathWorks/Moore Foundation 赞助
任务 从 12 导联 ECG + 年龄性别,识别 27 类计分心脏异常(SNOMED CT 多标签,3 对按同义计分)
数据 总量 66,361 条,公开训练 43,101 条/6 库(cpsc_2018 6,877 + cpsc_2018_extra 3,453 + INCART 74 + PTB 516 + PTB-XL 21,837 + G12EC 10,344)
标签 全库 115 种 SNOMED CT 诊断码(27 计分 + 88 不计分);窦性心律 20,846 条最多,PVC 188 条最少
评分 reward 部分得分制(generalized weighted accuracy):误诊指向相似治疗/结局者获部分分,全标正常=0、全阳输出负分
规模 217 队 / 1,395 次提交 / 707 次成功 / 41 队获排名;首次强制公开训练代码
榜首 prna(Philips Research North America)test 0.533——wide+deep Transformer;亚军 0.520、季军 0.514
泛化 validation→test 平均降 50%;hidden CPSC→G12EC 降 47%,→undisclosed 再降 57%——跨库泛化是真正的考题
获取 PhysioNet 公开直下(Access Policy: Anyone),WFDB 格式;部分地区文件区受法律/政策限制(本库核验时 files 区 403)
许可 汇编本体 CC BY 4.0;子库原生许可各异(INCART/PTB ODC-BY、PTB-XL CC BY 4.0、CPSC 原库未明示)
库内互链 cinc-2021(直接扩展版)、cpsc(来源子库)、ptb-xl(来源子库)、cinc-2019(前届)

PhysioNet/CinC 2020 是"把 12 导联心电图自动诊断从单库玩具推向跨库实战"的那一届挑战赛:组织方把中国、俄罗斯、德国、美国四国六个医院系统的 43,101 条公开心电记录拼成一个标签体系异构、采样率异构、患病率异构的训练池,把 27 类心脏异常的 SNOMED CT 编码标签和一条前所未有的评分规则摆上台面——误诊不等于零分,把房颤误成房扑只扣一点分,把正常误成需要急诊处理的情况要倒扣——然后要求所有参赛者公开从训练到推理的全部代码。217 支队伍打了 1,395 次提交之后,榜首 Philips 的 Transformer 模型也只在隐藏测试集上拿到 0.533 分,比它的验证集分数掉了 10 个百分点。这个"高分幻觉破灭"的过程本身就是数据集最有价值的部分:它用一场公开竞赛证明了在多源异构心电数据上,跨机构泛化才是真正的难题。

导语读法三则:

  1. 只想下数据:直奔 §5 获取与许可——注意 6 库公开、验证/测试不公开、部分地区文件区封锁三个事实。
  2. 要复现榜单分数:直奔 §3 评分规则与 §4 排行榜——reward 部分得分制的 3 对同义合并规则是复现的前提,普通 F1/AUC 复现不出官方分。
  3. 关心"为什么我的模型跨库就崩":直奔 §4.4 泛化落差与 §7 方法学启示——2020 届把这题用 41 支队伍的数据量化了。

§0 导读:这个数据集解决什么问题

心电图是临床最常用的检查之一,但人工判读耗时且依赖经验,于是"自动 12 导联 ECG 诊断"成为机器学习社区的长青赛道。2020 年之前,这条赛道有个公开的秘密:绝大多数论文只在单一、小型、同质的数据集上训练和测试——同一个数据库拆出来的训练/测试集共享采集设备、人群构成和标签习惯,模型分数很好看,换个医院就没人敢保证。论文摘要原话:大多数算法"focus on identifying small numbers of cardiac arrhythmias that do not represent the complexity and difficulty of ECG interpretation"。

这场赛事还带着 2020 年的特殊时间印记:全球新冠疫情让原定意大利 Rimini 的 CinC 2020 年会改为"线下+远程并行",年度 hackathon 取消、摘要截止两次顺延、获奖者改在 9 月 16 日的混合会场上宣布。赛事本身没有中断——这在 2020 年的学术会议中并不多见——而远程可参与的准入门槛反而让本届参赛规模创下当时纪录。这一年,"心电 AI 的泛化焦虑"与"医疗系统对远程监护的急迫需求"在同一个数据集上交汇。

CinC 2020 的回答是"用公开竞赛把泛化问题变成考题"。它做了四件前人没做过的事:

第一,多源异构汇编。 六个来源库横跨四国三洲:中国南京 ICBEB 会议发起的 CPSC 2018(11 家医院)及其未用数据 CPSC-Extra、俄罗斯圣彼得堡的 INCART 长程 Holter 库、德国 PTB 的两个经典库(PTB 与 PTB-XL)、美国佐治亚州的 G12EC 挑战赛专属库,外加一个来源机构永不披露的 Undisclosed American 库压箱底做测试。六个库的采样率(257/500/1000 Hz)、记录时长(6 秒到 30 分钟)、标签粒度、患病率分布全都不同。

第二,统一到 SNOMED CT 的多标签体系。 各库原始标签被近似映射到 SNOMED CT 码,全库 115 种诊断码中选出 27 类"相对常见、有临床意义、可从 ECG 识别"的作为计分类;房颤可以和窦性心律并存、右束支阻滞可以和左前分支阻滞并存——多标签是临床现实,不是工程麻烦。

第三,reward 部分得分制。 官方心脏病学团队给误诊矩阵逐格定权:把房颤误成房扑(两者都需抗凝思路)获部分分,把窦性心律误成需要起搏器的高度房室阻滞则重罚;全对分类器 1 分、永远输出"正常"的分类器 0 分、对所有类输出阳性的分类器是负分。这是"误诊的临床代价不相等"第一次被写进公开竞赛的计分公式。

第四,强制训练代码公开。 官方原文:“For the first time in a public competition, we will require code both for your trained model and for training your model.”(公开竞赛史上第一次。)无法从训练代码复现出模型的队伍直接失去排名资格。此后这成了 PhysioNet/CinC 挑战赛的标配。

竞赛的结局颇具教育意义:217 支队伍、1,395 次提交,榜首分数只有 0.533;官方论文测算,所有队伍的成绩从验证集到测试集平均掉 50%,从与训练同源的 hidden CPSC 到异源的 hidden undisclosed 平均掉逾六成。单库精调的"高分"在异构数据面前集体失效——这正是这个数据集留给后来者最重要的先验。

与相邻届次的三重关系(详见 §6):

  • 对 2019(cinc-2019):主题从脓毒症预警切回 ECG 诊断主线——挑战赛"隔几年回访心电图"的节奏在 2017(单导联房颤)→2020(12 导联多标签)→2021(降导联)形成一条最完整的能力跃迁线;
  • 对 2021(cinc-2021):直接父子关系——数据扩容、标签重构、任务变量化三件事都发生在下一届;本条目写"2020 是什么",cinc-2021 条目写"2020 变成了什么";
  • 对 2023(cinc-2023):reward 部分得分制与代码强制两件赛制遗产仍在;数据组织方式从"医院系统汇编"演进为"Chagas 主题语料"——体例的稳定性是 PhysioNet 系列可比性的来源。

三分钟版本:

  • 它是什么:6 国 6 库汇编的 12 导联 ECG 多标签诊断挑战赛数据集,公开 43,101 条(CC BY 4.0),另有 23,260 条隐藏验证/测试永久不公开。
  • 它考什么:27 类 SNOMED CT 心脏异常的多标签概率输出,按"误诊代价加权"的 reward 部分得分制排名。
  • 它证明了什么:跨机构泛化是 12 导联 AI 诊断的主瓶颈——验证分平均虚高 50%,跨库逐级掉 47%/57%。
  • 谁赢了:Philips Research North America 的 prna(wide+deep Transformer)0.533 分,41 支上榜队伍之首。
  • 怎么用:PhysioNet 直下 WFDB 数据 + 官方开源评分器 + 41 队公开代码;记住 3 对同义合并与 500 Hz 统一重采样两件事即可开工。

§0 读法三则:

  1. 本条目是"挑战赛数据集"类:本体是 6 库汇编 + 一套官方评分/榜单/代码生态,与库内 cinc-2021(直接扩展版)是父子关系,与 cpsc、ptb-xl(来源子库独立条目)是汇编-原件关系——引用时勿混。
  2. 全文统计数字均出自 PhysioNet 官方内容页、moody-challenge 官网公告与挑战赛论文(Physiol Meas 41(12):124003)三处互证;发表日期、CPSC 时长等口径冲突处已在坑点清单存照。
  3. 检索时若以 “weighted auROC” 或 “六类异常” 定位本数据集会一无所获——官方指标是 reward-matrix generalized weighted accuracy,计分类是 27 类(坑 2、坑 3)。

编辑规范声明:本条目所有硬数字遵循三条纪律——(a)只采官方一手来源(PhysioNet 内容页、moody-challenge 官网及其存档 CSV、挑战赛论文与冠军论文),第三方转述一律回源核对;(b)推算值(如隐藏集 23,260 条为差值推算)显式标注推算属性;(c)与常见简报/任务 brief 的口径冲突(六类/四库/PTB-XXL/auROC)逐条存照至坑点清单与附录 G,不静默取舍。

§1 数据集速览:十问十答

Q1:"43,101 条"和"66,361 条"哪个是数据集规模?
两个都对,取决于口径。公开可下载的训练数据是 43,101 条(6 库);论文摘要给出的全部汇编规模是 66,361 条——差额 23,260 条是隐藏验证集与隐藏测试集(含 hidden CPSC、hidden G12EC、hidden undisclosed 三部分与 validation),官方承诺永不公开测试数据。检索与训练只用 43,101。
→ 深入:§2.2 隐藏集结构;§2.1 六库加和校验。

Q2:六个库各是什么来头?
cpsc_2018:2018 年中国生理信号挑战赛(南京 ICBEB)公开训练集 6,877 条,11 家中国医院;cpsc_2018_extra:同赛事的未用数据 3,453 条(官方特别声明这不是 CPSC 的测试集);st_petersburg_incart:圣彼得堡 INCART 12 导联心律失常库的 74 条(从 32 条 30 分钟 Holter 中提取);ptb:德国 PTB 诊断 ECG 库 516 条;ptb-xl:PTB-XL 大库 21,837 条(占公开训练的一半);georgia:佐治亚州东南部人群的 G12EC 专属库 10,344 条。
→ 深入:§2.6 逐库画像;§2.1 加和校验;坑 2("四库"说法辨误)。

Q3:每条记录里有什么?
12 导联 ECG 波形(.mat 二进制)+ WFDB 文本头(.hea)。头文件除信号参数外还有六行元数据:#Age(年龄,>89 岁按 HIPAA 规则记 92)、#Sex(性别)、#Dx(SNOMED CT 诊断码,可多个)、#Rx(处方)、#Hx(病史)、#Sx(手术/症状)——后三项多数记录为 Unknown,实际可用元数据就是年龄+性别+诊断。

Q4:27 类计分异常是哪些?
房颤/房扑、各型束支阻滞(左、右、完全性、不完全性)、分支阻滞、电轴偏移、一度房室阻滞、窦缓/窦速/窦性心律不齐/窦性心律、房早/室早/室上性早搏/室性早搏、起搏心律、PR 间期延长、QT 间期延长、QRS 低电压、非特异性室内传导障碍、Q 波异常、T 波异常/倒置。完整 27 码清单见 §2.4;其中 3 对(CRBBB/RBBB、PAC/SVPB、PVC/VPB)按同义计分。

Q5:评分公式是什么?
官方 reward 部分得分制:算多类混淆矩阵,再乘一个由心脏病学专家逐格标定的权重矩阵 W(按误诊的治疗/结局相似性),归一化到"全对=1、全标正常=0"。真阳性满分、假阴性(漏诊)部分得分、假阳性零分或倒扣——全阳输出的分类器得负分。官方称 generalized weighted accuracy。
→ 深入:§3 全章;§3.5 数值小例;坑 4(分数语义)、坑 3(auROC 辨误)。

Q6:比赛规模多大?战果如何?
217 支队伍提交 1,395 次算法,707 次成功计分;70 支队伍的代码在全部隐藏数据上跑通,41 支获得最终排名。冠军 prna(Philips Research North America)测试分 0.533,亚军 Between a ROC and a heart place 0.520,季军 HeartBeats 0.514。完整前十见 §4.2。

Q7:冠军用的什么方法?
wide + deep 双路 Transformer:deep 路用 6 层 1D 卷积把原始波形编码后送入 8 层 8 头 Transformer encoder;wide 路从 300 多个手工心电特征里用随机森林筛出 22 个(HRV、P 波时限等)直接拼接。15 秒输入窗口比 10 秒平均高 3.7 分——节奏类异常需要更长的观察窗。
→ 深入:§4.3 冠军方案解剖与配置速查表。

Q8:为什么榜单分数比同期的 Kaggle 类比赛低这么多?
三个原因:reward 矩阵把"看起来只差一点"的误诊也计入代价;测试集含一个与训练分布完全异源的 undisclosed 库;27 类里稀有类(PVC 仅 188 条训练样本)极难。官方测算 validation→test 平均降 50%——排行榜分数本身就是泛化能力的体检报告。

Q9:我现在能拿到什么?
PhysioNet 内容页公开下载 43,101 条训练数据(WFDB 格式,按 6 库文件夹组织,Access Policy: Anyone 无需注册资质),许可 CC BY 4.0。验证/测试集不公开(官方明言请求也不会有回复);部分地区(含本库核验环境)文件区受法律/政策限制返回 403。
→ 深入:§5.1 资产清单;§5.3 地区封锁实测;§5.5 下载读取代码。

Q10:为什么它对 AI-Ready 重要?
它是"开放数据+开放代码+开放评测"三位一体的标杆:数据 CC BY 4.0 直下、官方评分程序开源、41 支队伍的训练代码全部公开存档、双论文(挑战赛论文+扩展论文)复现路径完整。同时它也是"开放≠可及"的现实教材:hidden 数据永不开放、部分地区访问受限、标签质量官方自认参差——AI-Ready 评估的三面镜子它都照得到。

1.1 数据集信息卡(检索引用速查)

字段 内容
正式名称 Classification of 12-lead ECGs: The PhysioNet/Computing in Cardiology Challenge 2020
常用简称 PhysioNet/CinC Challenge 2020;CinC 2020;challenge-2020
发布平台 PhysioNet(physionet.org/content/challenge-2020/)
版本 / DOI v1.0.2(2022-07-29)/ 10.13026/dvyd-kd57;latest 10.13026/m77n-sx13
官方论文 Physiol Meas 41(12):124003(2020),doi 10.1088/1361-6579/abc960
组织机构 Emory University DBMI 等;MIT LCP 承载发布
活动窗口 2020-02-07(开赛)~ 2020-09(收官);数据集维护至 2022-07-29
规模 公开 43,101 条 / 总量 66,361 条 / 6 库 / 4 国
任务 27 类心脏异常多标签分类(SNOMED CT)
指标 reward 部分得分制(generalized weighted accuracy)
许可 CC BY 4.0(Access Policy: Anyone)
官方榜单 41 队;冠军 prna(Philips)0.533

一分钟总结卡:

如果你只有一分钟 记住这三行
数据 6 库 66,361 条 12 导联 ECG;43,101 条公开(CC BY 4.0),六库加和严丝合缝
任务 27 类 SNOMED CT 多标签 + 年龄性别;reward matrix 部分得分制(首次用于 ECG 分类)
结论 跨机构泛化平均掉近半(-47%/-57%/-50%);冠军 prna 0.533,全套代码与模型公开

§2 数据构成与规格

2.1 总量与六库构成

论文摘要口径:66,361 条 12 导联 ECG 来自 6 个医院系统、4 个国家、3 个大洲。公开训练部分 43,101 条按 6 个文件夹分发(官方 2020-06-08 公告定版口径"6 databases with 43,101 labeled recordings"):

库文件夹 原始身份 记录数 男/女 采样率 时长 角色
cpsc_2018 中国生理信号挑战赛 2018 公开集(南京 ICBEB,11 家医院) 6,877 3,699/3,178 500 Hz 官方页写 6-60 s(第三方实测最长 144 s,坑 5) 训练
cpsc_2018_extra CPSC 2018 未用数据(官方声明非其测试集) 3,453 1,843/1,610 500 Hz 同上 训练
st_petersburg_incart 圣彼得堡 INCART 12 导联心律失常库 74 未分列 257 Hz 30 min/条(32 条 Holter 提取) 训练
ptb PTB Diagnostic ECG Database(柏林 PTB) 516 377/139 1000 Hz 短程 训练
ptb-xl PTB-XL 心电大库 21,837 11,379/10,458 500 Hz 10 s 训练
georgia(G12EC) Georgia 12-Lead ECG Challenge Database(挑战赛专属) 10,344 5,551/4,793 500 Hz 10 s 训练
合计 — 43,101 — — — 加和校验 ✓

校验:6,877 + 3,453 + 74 + 516 + 21,837 + 10,344 = 43,101,与官方分库数字逐项一致。

计数口径的两点说明:其一,官方页与官方公告两处的分库数字完全一致(本表即官方口径),未采用任何第三方转载值;其二,"训练库总条数"在 27 类清单(§2.4)中的口径是任意标签(any label)——一条记录挂两码会在两类中各计一次,因此 27 类条数之和(约 53,000+)大于 43,101,这不是数据矛盾而是多标签计数的固有性质(CPSC 原库文献中"first label 合计 6,877"与"any label 合计 7,359"的双口径即同一现象)。

库构成上的三个要点:

  1. PTB-XL 占公开训练的 50.7%。这个比例决定了训练池的总体画像(10 秒、500 Hz、德国人群、标签以形态学类为主)——任何"全库统计"都首先是 PTB-XL 的统计。
  2. INCART 是唯一的长程库(30 分钟 Holter、257 Hz),且只有 74 条——它在训练里几乎可以忽略,但它的存在提醒使用者:这不是一个"每条 10 秒"的同质库。
  3. CPSC 与 G12EC 是患病率最"重"的两库(心律失常临床检出率高),而 PTB-XL 相对偏正常/形态学异常——跨库患病率差异正是官方 reward 榜单上 hidden CPSC 分数虚高(冠军 0.761)而 hidden undisclosed 崩塌(冠军 0.492)的结构性原因。

2.2 隐藏集:23,260 条永不公开的另一半

总量 66,361 − 公开 43,101 = 23,260 条隐藏数据(官方未给逐库拆分,本条目按差值存照)。已知结构:

  • validation set:official phase 期间供参赛者计分选档,官方公布过每队的 validation 分数(榜首 0.587);
  • hidden CPSC set:与训练同源(CPSC 拆分),冠军在此得全场最高的 0.761;
  • hidden G12EC set:与训练同源(Georgia 拆分);
  • hidden undisclosed set:来自"geographically distinct from the Georgia database"的美国某机构,10,000 条全部保留为测试,来源机构官方刻意不披露——为防测试集被识别,永久疑点;
  • CPSC 2018 原始赛事的 2,954 条测试数据也被封存于最终私有库(不随 2020 挑战赛公开)。

官方对测试数据的政策原文:“We are not planning to release the test data at any point, including after the end of the Challenge. Requests for the test data will not receive a response.”——永不释放、请求不回。竞赛结束后官方仅"基于出版必要性与容量"有限代跑代码。这意味着任何"在 challenge-2020 上报告的分数"都只能对照 41 队榜单或自行用训练集交叉验证,不存在可下载的官方测试集。

这套隐藏集设计同时是一套防污染机制:validation 与 test 分开计分(前者实时反馈、后者只在收官时揭晓);test 中的 undisclosed 部分连"来自哪家医院"都不告诉参赛者,杜绝了"按域定向调参"的可能;官方沙箱只收输出 CSV 不收训练过程,杜绝了测试标签的任何形式回流。2021 届沿用同一机制并增加导联子集维度——这套设计已成为医学 AI 竞赛的参考实现。

官方防污染机制的四道闸门,值得所有 benchmark 建设者借鉴:

  1. 物理隔离:测试数据不进训练分发渠道,submission 只收代码不收预测文件——分数由官方在沙箱内生成;
  2. 提交配额:15 次计分上限 + 失败不占额——既允许试错,又防"对测试集的隐式梯度下降";
  3. 来源保密:undisclosed 库的机构身份永不披露,连其人口学背景都不给——杜绝从公开信息反推测试集;
  4. 复现门槛:训练代码必须能重新生成提交的模型——防止用测试集信息"污染"训练过程后伪装成干净模型。

validation set 的定位则不同:它在 official phase 期间对参赛者开放计分,官方公布过每队的 validation 分数——它既是选档工具,也是事后复盘中"验证分虚高"现象的对照数据(§4.2、§7.2)。验证集本身同样不随数据集公开,但其分数痕迹(41 队榜单的 validation 列)永久留档于官方 CSV。

2.3 文件格式与元数据

全部数据为 WFDB 格式:信号存于 MATLAB v4 二进制 .mat 文件(16 bit、逐导联 checksum),元数据存于文本头 .hea。官方示例 A0001.hea 逐行给出 12 导联的增益/基线/checksum/导联名,尾部六行元数据:

#Age: 74
#Sex: Male
#Dx: 426783006
#Rx: Unknown
#Hx: Unknown
#Sx: Unknown
  • #Dx 是唯一参与训练监督的字段:SNOMED CT 码,一记录可挂多码(多标签);
  • #Age 按 HIPAA 脱敏:>89 岁统一记 92(本库 >89 岁样本的均值)——研究高龄人群者须知这是合成值;
  • #Rx/#Hx/#Sx 多数为 Unknown,不构成可用特征;
  • 文件在库内按 g1/g2/… 子文件夹组织,每 1000 条一夹——下载与并行处理时可按夹分片。

元数据字段可用性一览:

字段 覆盖率 可用性判断
#Dx 诊断码 全量(无标签记录可用但无监督信号) 核心监督来源
#Age 年龄 全量(>89 岁合成值为 92) 可用;高龄细分不可信
#Sex 性别 全量 可用
#Rx 处方 多数 Unknown 不可用
#Hx 病史 多数 Unknown 不可用
#Sx 手术/症状 多数 Unknown 不可用

读取路径:MATLAB load、Python scipy.io.loadmat,或官方 baseline 模型示例;PhysioNet WFDB toolbox 亦可直接流式读取。

WFDB 头文件逐字段解剖(以官方示例 A0001.hea 的一个信号行为例):

A0001.mat 16+24 1000/mV 16 0 28 -1716 0 I
字段 示例值 含义
文件名 A0001.mat 该导联信号所在的二进制文件(12 导联共指同一 .mat)
格式 16+24 16 bit 采样 + 24 bit 偏移存储(MATLAB v4 格式的 WFDB 扩展记法)
增益/单位 1000/mV 每 mV 对应 1000 个 ADC 单位——原始整数除以 1000 才是 mV
ADC 位深 16 模数转换分辨率
基线 0 对应 0 物理单位的 ADC 值
首样本 28 该导联第一个采样值
校验和 -1716 全样本和校验,用于文件完整性验证
导联名 I 标准 12 导联名(I, II, III, aVR, aVL, aVF, V1-V6)

头文件首行(A0001 12 500 7500)则依次给出记录名、导联数(12)、采样率(500 Hz)、每导联样本数(7500 = 15 秒)。官方 baseline 的读取函数对上述字段有完整处理(含基线校正),生产代码建议直接复用。

WFDB 头文件逐字段解剖(官方示例 A0001.hea 的信号行结构):

A0001.mat 16+24 1000/mV 16 0 28 -1716 0 I
字段 示例值 含义
文件名 A0001.mat 该导联信号所在的二进制文件(12 导联共指同一 .mat)
格式 16+24 16 bit 采样 + 24 bit 偏移存储(MATLAB v4 格式的 WFDB 扩展记法)
增益/单位 1000/mV 每 mV 对应 1000 个 ADC 单位——原始整数除以增益才是 mV
ADC 位深 16 模数转换分辨率
基线 0 对应 0 物理单位的 ADC 值
首样本 28 该导联第一个采样值
校验和 -1716 全样本和的逐字节补码校验,用于完整性验证
导联名 I 标准 12 导联名(I, II, III, aVR, aVL, aVF, V1-V6)

头文件首行(A0001 12 500 7500)则依次给出记录名、导联数(12)、采样率(500 Hz)、每导联样本数(7500 = 15 秒)。官方 baseline 的读取函数对上述字段有完整处理(含基线校正),生产代码建议直接复用。

2.4 27 类计分标签全清单

官方 dx_mapping(计分部分)27 类如下(Kaggle 镜像的 SNOMED_mappings_scored.csv、CinC2020-374 论文 Table 1、2021 姊妹论文 Table 5 三源一致;括号为训练库总条数):

# 诊断 SNOMED CT 码 缩写 训练库条数
1 窦性心律 Sinus rhythm 426783006 NSR 20,846
2 电轴左偏 Left axis deviation 39732003 LAD 6,086
3 T 波异常 T wave abnormal 164934002 TAb 4,673
4 房颤 Atrial fibrillation 164889003 AF 3,475
5 窦性心动过速 Sinus tachycardia 427084000 STach 2,402
6 右束支阻滞 Right bundle branch block 59118001 RBBB 2,402
7 窦性心动过缓 Sinus bradycardia 426177001 SB 2,359
8 一度房室阻滞 1st degree av block 270492004 IAVB 2,394
9 房性早搏 Premature atrial contraction 284470004 PAC 1,729
10 左前分支阻滞 Left anterior fascicular block 445118002 LAnFB 1,806
11 不完全性右束支阻滞 Incomplete RBBB 713426002 IRBBB 1,611
12 QT 间期延长 Prolonged QT interval 111975006 LQT 1,513
13 窦性心律不齐 Sinus arrhythmia 427393009 SA 1,240
14 左束支阻滞 Left bundle branch block 164909002 LBBB 1,041
15 Q 波异常 Q wave abnormal 164917005 QAb 1,013
16 非特异性室内传导障碍 NS intraventricular conduction disorder 698252002 NSIVCB 997
17 T 波倒置 T wave inversion 59931005 TInv 1,112
18 QRS 低电压 Low QRS voltages 251146004 LQRSV 556
19 电轴右偏 Right axis deviation 47665007 RAD 427
20 房扑 Atrial flutter 164890007 AFL 314
21 室上性早搏 Supraventricular premature beats 63593006 SVPB 215
22 起搏心律 Pacing rhythm 10370003 PR 299
23 PR 间期延长 Prolonged PR interval 164947007 LPR 340
24 心动过缓 Bradycardia 426627000 Brady 288
25 室性早搏 Ventricular premature beats 17338001 VPB 365
26 完全性右束支阻滞 Complete RBBB 713427006 CRBBB 683
27 室性早搏(另一码)Premature ventricular contractions 427172004 PVC 188

同义合并计分 3 对(官方 Notes 列原文):713427006↔59118001(CRBBB/RBBB)、284470004↔63593006(PAC/SVPB)、427172004↔17338001(PVC/VPB)——“distinct diagnoses, but we scored them as if they were the same diagnosis”。复现官方分数必须先按此合并。

类分布的三个极端:窦性心律 20,846 条是计分标签中无可争议的众数(约占计分标签总量的三分之一);PVC(188 条)与 SVPB(215 条)是最稀有的计分类——模型在稀有类上的微小绝对改善即可大幅改变 reward 排名;Brady、LPR、PVC 三个类在部分来源库中完全缺席(如 PTB 库无任何 Brady),跨库类别覆盖极不均衡。

27 类 × 六库完整分布表(官方 dx_mapping_scored.csv 全列,列序:CPSC / CPSC-Extra / INCART / PTB / PTB-XL / Georgia / 合计):

诊断 缩写 CPSC Extra INCART PTB PTB-XL G12EC 合计
一度房室阻滞 IAVB 722 106 0 0 797 769 2,394
房颤 AF 1,221 153 2 15 1,514 570 3,475
房扑 AFL 0 54 0 1 73 186 314
心动过缓 Brady 0 271 11 0 0 6 288
完全性右束支阻滞 CRBBB 0 113 0 0 542 28 683
不完全性右束支阻滞 IRBBB 0 86 0 0 1,118 407 1,611
左前分支阻滞 LAnFB 0 0 0 0 1,626 180 1,806
电轴左偏 LAD 0 0 0 0 5,146 940 6,086
左束支阻滞 LBBB 236 38 0 0 536 231 1,041
QRS 低电压 LQRSV 0 0 0 0 182 374 556
非特异性室内传导障碍 NSIVCB 0 4 1 0 789 203 997
起搏心律 PR 0 3 0 0 296 0 299
房性早搏 PAC 616 73 3 0 398 639 1,729
室性早搏 PVC 0 188 0 0 0 0 188
PR 间期延长 LPR 0 0 0 0 340 0 340
长 QT LQT 0 4 0 4 118 1,391 1,513
Q 波异常 QAb 0 1 0 0 548 464 1,013
电轴右偏 RAD 0 1 0 0 343 83 427
右束支阻滞 RBBB 1,857 1 2 0 0 542 2,402
窦性心律不齐 SA 0 11 2 0 772 455 1,240
窦性心动过缓 SB 0 45 0 0 637 1,677 2,359
窦性心律 NSR 918 4 0 80 18,092 1,752 20,846
窦性心动过速 STach 0 303 11 1 826 1,261 2,402
室上性早搏 SVPB 0 53 4 0 157 1 215
T 波异常 TAb 0 22 0 0 2,345 2,306 4,673
T 波倒置 TInv 0 5 1 0 294 812 1,112
室性早搏(另一码) VPB 0 8 0 0 0 357 365

逐列读这张表能立刻看清六库的"性格":CPSC 列只在 AF/LBBB/RBBB/PAC/IAVB/NSR 六个码上非零(9 类体系的映射残余);PVC 188 条全部来自 CPSC-Extra;LAD/LAnFB/LPR/QRSV 几乎是 PTB-XL 与 G12EC 的二人转;LQT 的 92% 在 G12EC;INCART 与 PTB 两列加起来不到 150 条——它们贡献的是信号多样性而非标签体量。

27 之外的 88 个不计分诊断码仍在训练数据中随附(冠军论文口径:全库 115 种唯一码)——官方允许参赛者自由使用这些额外标签做辅助任务(多任务学习、预训练过滤等),只是不计分。这 88 类是"免费的多任务语料",实践中多数强榜队伍都用了。

27 类的跨库覆盖注解(逐库完整分布大表见附录 B):

  1. 全库通吃类:NSR 六库均有——PTB-XL 独占 18,092 条(87%),"正常"判定实践跨库差异是标签噪声主要来源之一;
  2. PTB-XL 主导类:LAD 5,146/6,086(85%)、LQT 1,391/1,513(92%)、TInv 812/1,112、SB 1,677/2,359、IRBBB 1,118/1,611——形态学细分类的样本池几乎全在德国库;
  3. CPSC 主导类:AF 1,221/3,475(35%)、RBBB 1,857/2,402(77%)、LBBB 236/1,041——心律失常临床检出类的主力;
  4. Georgia 独供类:LAnFB 1,626/1,806(90%)、起搏心律 PR 296/299(99%)——分支阻滞与起搏类几乎全部依赖东南美人群;
  5. CPSC-Extra 独供类:PVC 427172004 全部 188 条来自 CPSC-Extra——稀有类的来源高度集中;
  6. INCART/PTB 边际贡献:INCART 对 AFL/AF 各 2 条、PTB 对 AF 15 条——两库的价值在信号多样性(30 分钟长程 / 1000 Hz 高分辨率)而非标签体量。

2.5 与来源子库的关系边界

challenge-2020 的六个库中四个是既有公开库的再发布(cpsc_2018/cpsc_2018_extra ← CPSC 2018;st_petersburg_incart ← INCART;ptb ← PTB;ptb-xl ← PTB-XL),georgia 为挑战赛专属首发布。使用时须区分三条边界:

  1. 汇编版 vs 原生版:官方明言未修改原库数据与标签,但做了三件事——年龄 HIPAA 一致化、标签映射 SNOMED CT、WFDB 重编码。逐样本层面与原生库一致(第三方验证:CPSC 6,877 条在两个版本中字节级相同),但元数据格式不可直接互换。
  2. 本条目 vs 子库独立条目:库内 cpsc(132)、ptb-xl(70) 已有独立条目,各自承载采集设备、人群细节、原始标签体系(如 PTB-XL 的 5 superclass/23 subclass/44 statement 三层标签)——本条目只写挑战赛汇编口径、计分体系与榜单,不重复子库内部细节。
  3. 2020 版 vs 2021 版:cinc-2021 在本数据集基础上加了 Chapman-Shaoxing/Ningbo(+45,152)、UMich(19,642)、Undisclosed American 扩容等,计分类重构为 26 类、同义对增到 4 对——两届的标签表、榜单、DOI 全部不可混用(坑 6)。

汇编版与原库的数字对照速查:

比对项 challenge-2020 汇编口径 原库口径
CPSC 训练量 6,877(cpsc_2018)+ 3,453(extra) 6,877 公开 + 2,954 封存测试
CPSC 测试集 不可得(封存于最终私有库) 原库叙事中的 2,954 条
PTB-XL 标签 压平为 SNOMED CT 码 5 superclass / 23 subclass / 44 statements 三层
年龄字段 >89 岁统一记 92(HIPAA) 原库保留真实高齡(CPSC 原始数据)
格式 统一 WFDB(.mat+.hea) 各库原始格式(CPSC 为 .mat struct 携带元数据)

2.5bis 双许可路径决策(我该引哪个 license)

你的数据从哪来?
├─ 经 challenge-2020 下载(无论哪个库)
│    → 一律 CC BY 4.0;署名 = 数据集 DOI + 论文 + PhysioNet 引用(§5.4)
│      附注:PTB/PTB-XL 部分官方建议同时引用 Parent Projects
└─ 经原库渠道下载(要三层标签/原始格式等)
     ├─ PTB-XL → CC BY 4.0(原库口径)
     ├─ PTB → ODC-BY 1.0(数据库许可,署名义务)
     ├─ INCART → ODC-BY 1.0
     └─ CPSC 2018 → 原渠道未明示 → 走 challenge-2020 渠道最稳

一个实务提醒:学术发表中"数据来源"与"数据许可"最好分开声明——"数据来自 challenge-2020(CC BY 4.0)"既准确又避开了逐库追溯的歧义;仅在复用原库独有资产(PTB-XL 三层标签、CPSC 原始 >89 岁年龄)时才需要回到原库许可语境。

2.6 六库逐库画像

六个来源库不是六份等价的数据——它们各自带着不同的采集语境、标签习惯与人群结构。逐库画像如下(供训练前的分层设计与跨库诊断参考)。

cpsc_2018(6,877 条)——患病率最重的中国库

一句话人设:心律失常检出密度最高的短片段库,标签体系自成一体、时长高度可变。
2018 年中国生理信号挑战赛的公开训练集,数据来自南京 ICBEB 会议组织的 11 家医院协作。标签体系是自成一体的 9 类(Normal/AF/IAVB/LBBB/RBBB/PAC/PVC/STD/STE),在 challenge-2020 的 27 类体系中经 SNOMED CT 映射并入——原 9 类中的 STD/STE 两类不在 27 类计分清单内,成为 88 个不计分标签的一部分。这个库的特点是心律失常临床检出密度高(AF 1,221 条、RBBB 1,857 条),记录时长大规模可变(第三方逐文件实测 6-144 s、1,650 种不同长度、中位约 12 s,仅 2,416 条是标准 10 s)——任何固定窗口的预处理都必须以最短记录为准,而"时长与类别相关"本身就是一个可被模型走捷径利用的泄漏通道(早搏类系统性地更长)。多标签结构:470 条挂两码、6 条挂三码。

cpsc_2018_extra(3,453 条)——同一赛事的"剩余部料"

一句话人设:与主库同分布的"扩量包",跨库研究中天然的同源对照组。
官方特别用一段话澄清:这是 CPSC 2018 的未用数据(unused data),不是 CPSC 2018 的测试集——后者(2,954 条)已被封存进最终私有库。性别构成(男 1,843/女 1,610)与主库相近,工程上可把两者视作同分布库。对做跨库泛化的研究者,这个库是"同源扩量"的天然工具:主库+extra 合并 10,330 条仍然只算"一个域"。

st_petersburg_incart(74 条)——长程 Holter 的孤本

圣彼得堡 INCART 12 导联心律失常库的 74 条标注记录,从 32 条 30 分钟动态心电(Holter)中提取,257 Hz 采样——是六库中唯一的"分钟级"长程库,与其余五库的"秒级"静息记录在信号统计上差异显著。它在训练池中的体量(74/43,101 ≈ 0.17%)几乎可以忽略,但它的存在有两个提醒:其一,"challenge-2020 都是 10 秒片段"的说法是错的;其二,若想测模型对长程记录的适应性,这个 74 条的孤本是公开数据里少数的选择(其 scored 标签贡献极薄——AF 2 条、AFL 2 条、SA 2 条、NSIVCB 1 条)。

ptb(516 条)——经典对照库的"客串"

德国联邦物理技术研究院(Physikalisch-Technische Bundesanstalt, PTB)的诊断 ECG 库,PhysioNet 上的经典老库(健康对照与各类心脏病患者的静息记录),1000 Hz 高采样率是它的独门特征。在 challenge-2020 里它是六库中最小的静息库(516 条,男 377/女 139),计分标签贡献有限(AF 15、RBBB 2、AFL 1、Brady 11、STach 11、SA 2、SVPB 4、LQT 4、TInv 1 等)。它的价值更多在信号学层面:1000 Hz 的高分辨率对形态学特征提取与重采样基准研究有用。

ptb-xl(21,837 条)——体量与标签的双料主力

一句话人设:占半壁江山的德国大库,形态学细分类的唯一主力,读任何"全库统计"前先想起它。
PTB-XL 是 PTB 的大型公开心电库,10 秒、500 Hz。它占 challenge-2020 公开训练的 50.7%,且是形态学/节律细分类的绝对主力:LAD 5,146 条(占该类 85%)、LQT 1,391(92%)、TInv 812(73%)、SB 1,677(71%)、IRBBB 1,118(69%)、NSR 18,092(87%)。原库自带的三层标签(5 superclass/23 subclass/44 diagnostic statements)在汇编中被压平为 SNOMED CT 码——需要三层结构的用户请回原库(本库 ptb-xl 条目)。读 challenge-2020 的任何"总体统计",第一步都应想清楚"这是不是其实是 PTB-XL 的统计"。

georgia(G12EC,10,344 条)——挑战赛专属的美国东南部库

Georgia 12-Lead ECG Challenge Database 是为挑战赛新建的专属库,代表美国东南部独特人群(官方原文 “a unique demographic of the Southeastern United States”,10 秒、500 Hz)。它是两个类别的几乎唯一来源:LAnFB(左前分支阻滞,1,626/1,806 = 90%)与起搏心律 PR(296/299)。它在挑战赛中的特殊地位还在于:hidden G12EC 测试拆分与训练集同源——它是隐藏测试数据中与训练分布最近的一块,也是"队伍分数在它上面相对虚高"的那一块(§4.4)。

2.7 标签质量:官方自白与使用者预案

challenge-2020 的标签是"汇编"而非"重标"——官方原文明言两件事:

“there are bound to be some errors or debatable labels in each database”(每个库里注定有一些错误或可争议的标签)

“Although we have updated some of the data and labels from the unofficial period of the Challenge, many errors will persist… There will also be no more updates to the training data from this point onwards.”(unofficial 期后修订过一批,但大量错误将永久保留;训练数据从此冻结不再更新。)

标签质量的三层混合结构(2021 姊妹论文的正式表述,同样适用于 2020 汇编):

质量层级 生成方式 典型来源库 对训练的影响
机器生成 设备/算法自动输出的诊断直接入库 部分美国库记录 噪声最高,系统性偏置最重
单人 overread 一位医生复核机器结果 CPSC 系(临床常规判读) 中等;个体判读习惯引入方差
多人裁定 心脏病学专家组审阅定标 PTB-XL 部分 fold 质量最高;但"专家共识"本身仍有观察者间变异

——三种质量层级在同一名义标签体系下混存,且逐条未标明层级。这决定了两个工程事实:第一,标签噪声不是 bug 而是本数据集的设计内特性——官方甚至把"如何处理标签问题"写成了挑战的一部分;第二,任何在 challenge-2020 上报告的分数都应默认含噪声容忍,清洗与不清洗的分数差异应当作为敏感性分析报告。

使用者预案四则:按库分层抽检标签(错误率非均匀分布);对稀有类(PVC 188 条等)的标注错误敏感度最高——样本越少单条错误权重越大;训练时引入标签噪声建模(噪声鲁棒损失)或直接做多任务(把 88 个不计分码当辅助监督稀释噪声);报告结果时注明"未清洗"口径,避免与后续清洗版分数混比。

标签质量自查流程(训练前 30 分钟版):

  1. 每库随机抽 30 条,对照 .hea 的 #Dx 与波形目测核对(重点看 NSR 是否真的"正常");
  2. 统计各库的多标签率(CPSC 470 条挂两码)与"无计分标签"记录占比——后者只能当负样本或丢弃;
  3. 用附录 B 的逐库分布表核对抽样比例与全库画像一致;
  4. 把抽检发现的疑似错标样本写入数据卡片(datasheet),随代码库一起版本化——这是官方"标签质量参差"警告的落地动作。

2.8 快速核对清单:下载数据后的六问

拿到数据包后,按这六问逐项核对,可避免 90% 的上手事故:

  1. 文件夹齐吗? 六个库文件夹(cpsc_2018 / cpsc_2018_extra / st_petersburg_incart / ptb / ptb-xl / georgia)一个不少,各库条数对上 §2.1 表;
  2. 记录数对吗? 合计 43,101;任何缺库少条都说明下载不完整或版本不符(应为 v1.0.2);
  3. 头文件可读吗? 任取几条 .hea,首行格式应为 记录名 12 采样率 样本数,尾部 #Dx 行是 SNOMED CT 码;
  4. 采样率混存吗? 是的(257/500/1000 Hz)——训练前统一重采样(§8.2);
  5. 时长混存吗? 是的(6 s-30 min)——INCART 是 30 分钟 Holter,别当 10 秒片段读;
  6. 标签编码统一吗? 全部应为 SNOMED CT 数字码;出现文字诊断说明拿错了版本(可能是原库文件混入)。

§3 评分体系:reward 部分得分制如何定义"好诊断"

3.1 为什么不用准确率、F1 或 AUC

传统多标签指标把所有误诊一视同仁:把房颤误成窦性心律和把房颤误成房扑,在 0-1 loss 里同样扣分。但临床上这两件事的后果完全不同——房扑与房颤的处理策略高度重叠(都涉及心室率控制与抗凝决策),而把一个正常人判成房颤会触发一连串不必要的检查与用药。官方心脏病学团队的立场是:误诊的临床代价不相等,评分就应该不相等。这一立场在 2020 届落地为 reward 部分得分制,并延续为 PhysioNet/CinC 2021、2023 等后续各届的评分基因。

值得强调的是官方设计的对称性:漏诊(false negative)不是零分——如果真值是房颤而你输出房扑,你仍然因为"指向相似治疗"获得部分分;假阳性才是零分或倒扣的主角——一个"什么都说阳性"的分类器会得到负分,比"什么都说正常"(恰好 0 分)更低。这条设计直接封死了"用高召回掩盖低精度"的刷分路径。

3.2 公式与归一化

官方定义(内容页 Evaluation 节原文):设 C=[ci] 为诊断集合,对某数据库计算多类混淆矩阵 A=[aij],其中 aij 是真值为 ci 而被判为 cj 的记录数;权重矩阵 W=[wij] 由心脏病学专家按"治疗或结局的相似性/风险差异"逐格标定;得分为:

s = Σij wij · aij

这是传统 accuracy 的广义化(W 为单位阵时退化为普通准确率)。随后做两次归一化锚点校准:一个永远输出真值的分类器得 1 分;一个永远输出"正常"(窦性心律)的静止分类器得 0 分。由此,分数的语义是"比’躺平输出正常’好多少、离’全对’还差多少"——0.533 意味着冠军补齐了躺平基线到满分之间约一半的差距,而不是"53.3% 准确率"。

锚点行为的两个推论:其一,分数可以为负——"对每条记录输出全部 27 类"的莽模型比"全输出正常"的懒模型更糟,这在传统指标里不可见;其二,测试集的类分布(NSR 占比高)决定了懒模型的"躺平分"天然偏高,官方用归一化把它强制压回 0——不熟悉这套语义的人直接拿 0.533 与其他比赛的 accuracy 比较,会同时低估两者。

对多标签记录,预测集合与真值集合的差异按上述矩阵在集合层面结算(官方开源的 evaluation-2020 评分程序给出了全部实现细节,坑 7 有使用要点)。

3.3 权重矩阵怎么来

W 的每一格来自"相似治疗或结局"的临床判断:束支阻滞各型之间互相混淆代价低(同为传导异常、处理保守),把窦性心律误成需要紧急处理的节律则重罚。官方同时说明:最优的 W 取决于机构自身的资源、人群、诊疗习惯——挑战赛选用的 W 只是"一个例子"(原文:“the choice of W for the Challenge is just one example”)。这意味着把 2020 榜单分数直接移植到自己的部署场景做模型选型时,应当按自己的临床代价重标 W 重跑评测——官方开源的评分代码支持这一点。

W 标定的三档直觉(教学归纳,具体权重以官方开源矩阵为准):

误诊方向 临床后果 权重档位
房颤↔房扑、束支阻滞各型互混 处理策略重叠,预后相近 高部分分
一度房室阻滞↔窦缓等"观察即可"类互混 均为保守随访情形 中部分分
正常↔需起搏/急诊处理的节律 触发不必要的有创检查或漏诊急症 零分或负分

3.4 复现官方分数的四条铁律

  1. 先合并同义对再计分:CRBBB/RBBB、PAC/SVPB、PVC/VPB 三对按同义处理(§2.4)——不合并则逐类混淆矩阵结构与官方不同,分数必然对不上。
  2. 只用 27 类计分:88 个不计分码可以用于训练,但预测输出的计分集必须限定 27 类。
  3. 按官方归一化锚点校准:全对=1、全正常=0 两个锚点必须先于任何报表计算。
  4. 别拿 accuracy/F1/AUC 近似:reward 分数与这些指标只在特殊分布下单调相关——冠军论文明确写的是"official generalized weighted accuracy metric";任务候选 brief 中流传的"weighted auROC"在官方评估体系中不存在(坑 3)。

3.5 一个数值小例(读懂 reward 的最小样本)

以下为教学构造示例(非官方数据),用三类简化标签演示部分得分的直觉——真值:房颤(AF);预测:房扑(AFL):

  • 传统 0-1 指标:错,得 0 分;
  • reward 制:AF→AFL 属"相似治疗/结局"的误诊(同为室上性心律失常、抗凝决策重叠),W 矩阵给这对高分——得接近满分的部分分;
  • 若预测的是 NSR(把房颤说成正常):漏诊,得分低——漏掉需要抗凝的心律属高风险错误;
  • 若真值 NSR 而预测 AF:假阳性,零分或倒扣——引发不必要抗凝的代价。

再举官方规则的锚点行为:一个把所有记录都输出"窦性心律"的分类器,在高度不均衡的测试集上会有大量真阴性(NSR→NSR 对角线)——但官方公式把这些"躺平得分"校准为恰好 0 分;一个把所有记录都输出全部 27 类阳性的分类器则被负分惩罚。分数的零点不是"随机猜"而是"懒医生",满分不是"多"而是"对"——这是 reward 制与传统指标最根本的语义差异。精确的权重数值以官方 evaluation-2020 开源实现为准(勿用本节教学示例复现任何数字)。

§4 挑战赛全程:217 支队伍如何被"泛化"淘汰

4.1 赛程、规则与参与规模

挑战赛分两个阶段:unofficial phase(2020-02-07 ~ 04-30,数据"beta 测试"期,1-5 次计分提交,参加官方阶段的强制前置)与 official phase(2020-05-11 ~ 08-23,1-10 次计分提交);全程合计 15 次计分上限(失败提交不占额)。关键节点:03-16 leaderboard 上线;05-01 CinC 摘要截止;06-08 训练数据扩充至 43,101 条定版;07-01 起强制提交预训练模型+训练代码;07-29 两支 wild card 入场;09-13~16 意大利 Rimini 的 CinC 2020 现场宣布结果(2020 年特批远程参会);09-17~24 最终分数发布。

两阶段赛制对比:

维度 unofficial phase official phase
窗口 2020-02-07 ~ 04-30(原 04-24,后延 5 天) 2020-05-11 ~ 08-23
计分提交限额 1-5 1-10
数据状态 2 个 tranche(“beta 数据”,v1.0.0/1.0.1) 分批扩至 6 库 43,101(v1.0.2 前身)
强制性质 参加官方阶段的准入门槛 正式排名依据
其他 leaderboard 03-16 上线 wild card 于 07-29 邀 2 队

参与漏斗(论文 Results 口径):

阶段 数量 流失原因
注册参赛队伍 217 —
提交算法 1,395 —
成功计分 707(unofficial 397 + official 310) 代码错误、格式不符
测试集全程跑通 70 队 模型在 undisclosed 集失败(采样率差异)、训练代码不可复现
最终排名 41 队 未按时交 preprint / 未到场答辩 / 终稿逾期 / 未回应审稿
CinC 接收摘要 110 篇 —

一半以上的队伍在"让代码在陌生环境里跑通"这一关就被淘汰——这正是强制提交训练代码的立法意图:官方要把"可复现性"从美德变成门槛。

4.2 官方最终榜(前十)

官方 official_scores.csv(41 队完整榜单见附录 D,moody-challenge 官网永久存档;列为 Test Set Score,括号内为 validation 分数):

排名 队伍 分数 论文 方法一句话
1 prna 0.533(0.587) A Wide and Deep Transformer Neural Network for 12-Lead ECG Classification 手工特征+1D-CNN+Transformer 编码器,Philips
2 Between_a_ROC_and_a_heart_place 0.520(0.672) Adaptive lead weighted ResNet trained with different duration signals 导联自适应加权 ResNet,多时长输入
3 HeartBeats 0.514(0.682) Classification of Cardiac Abnormalities From ECG Signals Using SE-ResNet SE-ResNet 集成
4 Triage 0.485(0.640) Combining Scatter Transform and Deep Neural Networks 散射变换特征+DNN
5 Sharif AI Team 0.437(0.609) Classification of 12-lead ECG Signals with Adversarial Multi-Source Domain Generalization 对抗多源域泛化——全场最"对症"的路线
6 DSAIL_SNU 0.420(0.688) — 首尔国立大学
7 UMCUVA 0.417(0.586) — 乌得勒支大学医学中心
8 CQUPT_ECG 0.411(0.640) — 重庆邮电大学
9 ECU 0.382(0.623) — —
10 PALab 0.359(0.653) — —

两个读榜单的要点:

  1. 验证分与测试分的排序大面积倒挂。validation 分数第三高的 DSAIL_SNU(0.688)最终只排第 6;冠军的 validation 分(0.587)在 41 队里只属中游偏上——官方把这一现象视为"对验证信号集体过拟合"的证据。验证集参与了选档与调参,它早已不是干净的泛化估计。
  2. 第 5 名 Sharif AI Team 的方法是全场唯一直接以"多源域泛化"为核心设计的(对抗性多源域泛化),它的验证分同样不高,但 test 掉分相对小——域泛化路线的有效性在 2020 年就已被榜单预告,2021 届的官方科学结论沿同一路线深化。

读榜三步法:先看 validation→test 的降幅(过拟合体检),再看 hidden undisclosed 的绝对分(真实部署下限),最后才看总分排名——只做第三步会把"验证分 0.688、test 排第 6"的 DSAIL_SNU 误读成"稳定强队"。

4.3 冠军方案解剖:prna 的 wide + deep Transformer

冠军论文(CinC 2020 #107)出自 Philips Research North America(Cambridge, MA)七人团队,方法论上是一次"临床知识 + 序列模型"的合流:

  • deep 路:原始 12 导联波形 → 6 层 1D 卷积降采样出局部形态嵌入 → 8 层、8 头的 Transformer encoder 建模长程依赖(选择 Transformer 而非 RNN 的理由是并行训练速度);
  • wide 路:从 300 多个手工心电特征(HRV 指标、P 波时限、各波振幅间期等)中用随机森林重要度筛出 22 个,连同年龄、性别直接进全连接层——纯端到端模型学不到的临床先验从这里注入;
  • 融合:两路特征拼接后经全连接输出 27 维 sigmoid 多标签概率;
  • 预处理:全部记录统一重采样到 500 Hz、3-45 Hz FIR 带通、逐导联归一化到 [-1,1];随机固定宽窗口输入;
  • 关键消融:窗口从 10 秒加到 15 秒,平均分从 0.496 提到 0.533——节奏类异常(房颤/房扑/心动过缓)的判别需要更长的观察窗,这与心电临床经验一致;
  • 作者自承的短板:心动过缓与噪声敏感类(如 QRS 低电压)表现受限;未来应把剩余 88 个不计分标签纳入多任务学习。

冠军训练配置速查表:

项 配置
重采样 全库统一 500 Hz
滤波 3-45 Hz FIR 带通
归一化 逐导联 z-score 后缩放至 [-1,1]
输入窗口 随机 15 s(10 s→15 s 消融:均分 0.496→0.533)
深组件 6 层 1D-CNN → 8 层、8 头 Transformer encoder
宽组件 22 个 RF 筛选手工特征 + 年龄/性别
输出 27 维 sigmoid(多标签独立概率)
许可 BSD 2(开源)

冠军方案随后开源(官方赛后再公开全部参赛代码),成为 2021-2023 届参赛者的起点模板——cinc-2021 冠军 ISIBrno-AIMT 的残差 CNN+注意力架构即是这条演化线的下一环。

prna 训练配置速查表(冠军论文 §2 口径):

配置项 取值 备注
重采样 统一 500 Hz 上/下采样,六库异构采样的第一道统一
带通滤波 FIR 3-45 Hz 去基线漂移与高频噪声
归一化 逐导联 [-1, 1] 消除增益差异
输入窗口 15 s(随机固定宽窗) 10 s→15 s 平均分 0.496→0.533
深路 CNN 6 层 1D 卷积 波形→局部形态嵌入
编码器 Transformer 8 层 / 8 头 并行自注意力,替代 RNN
宽特征 22 个手工特征 + 年龄/性别 从 300+ 特征池经随机森林筛出
输出头 全连接 + 27 维 sigmoid 多标签独立概率
计分后处理 同义对合并(§3.4) 官方规则,非模型内

4.4 泛化落差:这个数据集最重要的"负面发现"

官方论文用两个口径量化了"跨库泛化"的残酷程度:

  • 按数据集逐级:全部队伍平均,从 hidden CPSC 到 hidden G12EC 分数下降 47%,从 hidden G12EC 到 hidden undisclosed 再降 57%——每换一个分布更远的测试库,性能就塌一层;
  • 按 validation→test:平均下降 50%。

论文摘要另有一个"⪅10%"的表述(高性能算法在隐藏测试集上的性能下降)——与 50% 不是矛盾而是口径不同:前者是顶级队伍的绝对分数差(0.587→0.533 差 0.054,相对落差约 9%),后者是全体队伍的平均相对降幅。引用时务必注明口径(坑 8)。

结构性原因官方也给了:hidden CPSC 与训练池同源且 CPSC 在训练中患病率最高,队伍普遍"在 CPSC 上过训练"(论文原文 over-trained on the CPSC data);hidden undisclosed 则是完全零重叠的异源库。结论被论文写成一句教训:多源数据是泛化能力的必要条件,单库精调在异构部署下不可信。 这也是为什么 2021 届直接把"降导联泛化"设为赛题——2020 年的数据已经证明,考"跨库"比考"跨导联"更早地暴露了问题。

把这三组数字翻译成部署语言:

  • “我的模型验证分 0.58,上线能拿多少?”——2020 届的答案是:期望值打对折起步;如果想用官方数字做预算,用 0.50 的平均降幅 + 你与训练库的"分布距离"修正;
  • “换一家医院要重新标多少数据?”——榜单证明零目标域数据时平均掉 57%(G12EC→undisclosed 段);哪怕少量目标域数据也比纯源域微调更有效(域自适应文献的共识,2020 届第 5 名方案是公开起点);
  • “多库混合训练总是更好吗?”——41 队的证据说:多库训练改善的是"最坏情况"(跨库稳定性),不是"最好情况"(同库精度);冠军 wide 特征注入的启示是"把不变的临床先验搬进模型"比"堆更多源数据"性价比更高。

4.5 方法生态的群体画像

论文对 707 次成功提交的统计给出了罕见的方法论全景:

  • 深度学习(CNN 系)是单点最流行路线,但 >70% 的提交仍然使用标准临床特征或手工特征(配 SVM/梯度提升/随机森林/浅层网络)——在 27 类 reward 评分下,经典特征工程并未出局;
  • 中位训练时长 6 小时 49 分钟,超过数小时的几乎全是深度学习框架——官方 GCP 赞助(每队 $500)与 MathWorks 许可就是为这个量级准备的;
  • 冠军榜前十全部使用开源许可(CSV 中清一色 BSD 2 License),官方默认许可为 BSD 3.0、非开源计分不排名——开源率 100% 的前排榜是强制政策的直接产物。

这份群体画像让 challenge-2020 成为"2020 年心电深度学习方法论快照":Transformer 刚刚进入序列心电建模(冠军)、域泛化刚刚被证明有效(第 5 名)、手工特征仍然撑起七成参赛方案——三条线在此后三年的 ECG 文献里都能看到延伸。

前排队伍方法聚类(前十名口径):

路线 代表队伍 排位 特征
端到端深度学习 HeartBeats(SE-ResNet) 3 标准骨架+注意力/SE 模块
序列模型(Transformer) prna 1 CNN 嵌入+自注意力,手工特征并联
特征工程+经典模型 Triage(散射变换+DNN) 4 物理可解释特征进浅层网络
域泛化专项 Sharif AI Team 5 对抗多源域泛化,test 掉分最小之一
多时长/多分辨率输入 Between_a_ROC_and_a_heart_place 2 导联加权+多时长信号并行训练

4.6 提交系统与工程规则细节

挑战赛的技术规则值得单独一节,因为它们定义了"参与成本":

  • 计分提交限额:全程 15 次(unofficial 阶段 1-5、official 阶段 1-10),失败的提交不占额——这条宽容规则让 1,395 次提交中超过一半的失败(688 次)没有烧掉队伍的配额;
  • 反馈周期:验证集分数在提交后数小时内返回(官方沙箱自动计分),测试分只在赛事收官时一次性揭晓——这个"快验证、慢测试"的节奏是 §7.2 过拟合现象的制度温床;
  • 提交格式:单个 CSV(记录名 + 27 列概率),无序号列、无表头;任何多余列/缺列/非数值都判 0 分——格式审查是全自动的,没有人工救援;
  • wild card:官方邀请 2 支强队直通 official 阶段(2020-07-29),名额来自官方对 unofficial 榜的观察;
  • 课堂参赛:挑战赛欢迎以课堂为单位参加(Clifford 团队的固定传统),教学评估可用训练集自切验证——这也是官方把 baseline 写得如此简单的部分原因;
  • 赞助资源:Google 为每队提供 $500 GCP credits(总额度上限 $20,000),MathWorks 提供免费 MATLAB 许可——按 §4.5 的中位训练时长 6h49m 计算,这份资助覆盖了多数队伍的主要算力需求。

4.6 提交规则细节与"野生"参赛姿势

赛制里有几条容易被忽视但影响深远的规则:

  • 72 小时反馈期:官方明言"提交后请等至少 72 小时再询问状态"——截止周的服务拥堵是历届掉队主因,官方反复劝告"别卡 deadline";
  • wild card 双席位:摘要被 CinC 拒收或错过 unofficial 期的队伍仍有路可走——7 月 28 日官方按当时官方指标选出两支高分队直接受邀(2020-07-29 实际邀请 2 队,并相应增加训练资源);
  • 课堂参赛协议:以课程为单位参赛的班级视为一个队、共用提交配额、鼓励班内交流——官方明确建议课堂场景"用训练集交叉验证代替提交评分";
  • 团队变更通道:摘要截止前可加入队伍(须全员邮件确认),截止后变更者有取消资格风险;同一人不得同时属多队;
  • 信息封锁条款:赛期禁止公开任何方法细节(博客/预印本/演讲),禁止使用他队赛期分享的代码——赛后(最终分公布后)才解禁投稿,官方明言将联系期刊撤稿违规者的先期论文;
  • 开源奖励双轨:非开源条目"计分但不排名";默认无声明按 BSD 3.0 处理。官方保留赛后使用参赛代码做复评分与非商业验证的权利。

这些条款共同构成一个"把学术社交规范写成执行代码"的样板——2020 届之后各届只在数字上微调(如 2021 届的提交上限),框架未变。

留给后续届次的三个制度化遗产:

  1. 双提交(模型+训练代码)成为默认:2021/2023 届原样继承,"可复现或除名"从新闻变成赛制常识;
  2. reward 制成为 PhysioNet 诊断类赛题的标准评分:2021 届沿用同框架扩表(26 类/4 对),2023 届在 Chagas 主题上继续——学习曲线的连续性由此保证;
  3. "验证集会坏掉"成为官方文档的公开警告:2021 届 FAQ 明确提醒队伍不要过度依赖 validation 反馈——2020 届 41 队的教训被写进了后来者的参赛须知。

§5 获取与许可:一张开放许可下的分级地图

5.1 你能拿到什么、从哪拿

资产 状态 入口
公开训练集 43,101 条(6 库) 开放下载(Access Policy: Anyone,无需注册资质) physionet.org/content/challenge-2020/ → Files
官方评分程序 开源 GitHub physionetchallenges/evaluation-2020(scoring 代码 + dx_mapping 表)
官方 baseline(Python/MATLAB/R) 开源 内容页 Algorithms 链接
41 支排名队伍的参赛代码 赛后全部公开(自动镜像,不可撤回) 官方赛末公告与 CinC 论文页
验证集 / 隐藏测试集(23,260 条) 永不公开(官方原文:请求不会获得回复) 仅官方代跑(出版必要性+容量限制)
Undisclosed American 库 10,000 条 永久封存且来源机构不披露 无

下载前检查清单(防"下到一半发现用不了"):

  • [ ] 确认所在网络/地区可访问 PhysioNet 文件区(§5.3 地区封锁实测;受限地区先备好镜像或出口方案);
  • [ ] 磁盘预算:43,101 条 × 12 导联 WFDB,量级在数 GB(整包 ZIP 约 2-3 GB 级),长程 INCART 与 1000 Hz PTB 相对更大;
  • [ ] 读代码就绪:scipy.io.loadmat(.mat)+ 文本解析(.hea),或直接用官方 baseline 的 loader;
  • [ ] 评分器就绪:evaluation-2020 开源库先行部署(§3.4),训练还没跑就能先自建评测管道;
  • [ ] 引用三件套备好:数据集 DOI + 论文 DOI + PhysioNet 标准引用(§5.4)。

获取细节:训练数据按 6 个库文件夹分发(cpsc_2018 / cpsc_2018_extra / st_petersburg_incart / ptb / ptb-xl / georgia),库内按 g1/g2/… 子文件夹每 1000 条一组;整包或按库 ZIP 下载,亦可经 WFDB Matlab toolbox 流式读取。数据集版本 v1.0.2(2022-07-29)为最新版,DOI 10.13026/dvyd-kd57,latest-version DOI 10.13026/m77n-sx13(实测重定向回 1.0.2)。

5.2 License:汇编一层与子库一层要分开读

汇编层(你实际下载的东西):challenge-2020 数据集本体按 CC BY 4.0(Creative Commons Attribution 4.0 International Public License)发布——商用、修改、再分发皆可,唯一义务是署名。官方建议的署名三件套:数据集 DOI(10.13026/dvyd-kd57)+ 挑战赛论文(doi 10.1088/1361-6579/abc960)+ PhysioNet 标准引用。

子库原生层(学术上追溯来源时):六个来源库的原始许可并不一致——这正是"逐源 license"核验的意义:

来源库 原生发布渠道 原生许可(本库逐源实测)
INCART PhysioNet content/incartdb ODC-BY 1.0(Open Data Commons Attribution License v1.0)
PTB PhysioNet content/ptbdb ODC-BY 1.0
PTB-XL PhysioNet content/ptb-xl CC BY 4.0
CPSC 2018 2018.icbeb.org(非 PhysioNet) 官方页未明示许可(第三方镜像多标 CC BY 4.0,本条目存照不采信)
Georgia G12EC 无独立渠道(挑战赛专属) 随汇编 CC BY 4.0
Undisclosed American 无 不适用(封存)

给使用者的操作性结论:通过 challenge-2020 渠道使用汇编数据时,CC BY 4.0 一张许可覆盖全部 43,101 条;但若绕过汇编直接引用原生库(例如要 PTB-XL 的三层标签体系),许可就回到各原生库口径(ODC-BY 的署名义务与 CC BY 4.0 兼容但法律文本不同)。两条路径都要在成果里写清来源渠道——这既是许可合规,也是科学可复现的要求。

5.3 "开放"的边界:地区封锁与永久黑箱实测

本库核验(2026-09-27)记录的两个"开放≠可及"事实:

  1. 地区性文件封锁:从本环境访问 physionet.org/files/challenge-2020/1.0.2/ 目录返回 403 Forbidden,官方内容页 Files 区亦显示 “Data is not available in your region due to legal or policy restrictions”(法律/政策限制);alpha 镜像域同样封锁。内容页、官网、榜单 CSV 等文本资源不受影响。在受限地区做严肃研究需要预案(机构网络出口、镜像、或联系官方),这也是第三方向 HuggingFace/Kaggle 迁移 challenge 数据的生态动因之一。
  2. 隐藏集黑箱:23,260 条验证+测试数据永久不可得(§2.2)——这不是获取障碍而是设计意图:官方用不可购得的测试集换取榜单分数的防污染公信力。

对 AI-Ready 评估的含义:challenge-2020 在"许可开放、格式标准、代码开源"三项上满分,但"完整可获取"一项要打折扣——可获取的是 65% 的数据(43,101/66,361)与 100% 的评测工具。使用本库做训练的研究者实际上是在"官方测试集之外自建评测",这一点必须在实验设计里自觉。

地区受限环境的四条应对路径(按成本排序):

  1. 镜像与搬运:第三方在 Kaggle/HuggingFace 维护的 challenge 数据搬运(注意核对与官方版的字节一致性,第三方 ECGBench 等项目做过校验);
  2. 机构出口:经学校/医院网络的境外出口访问 PhysioNet——多数受限名单按 IP 段而非身份判定;
  3. 官方代跑:赛后官方"基于出版必要性与容量"有限代跑测试集代码(§2.2)——适用于只需要分数不需要数据的研究问题;
  4. 引用式使用:只引用官方榜单与论文数字做对照,不在本地复算——综述类工作的最低成本路径。

5.4 引用链与身份标识

  • 数据集 DOI(v1.0.2):10.13026/dvyd-kd57;latest DOI:10.13026/m77n-sx13
  • 挑战赛论文:Physiol. Meas. 41(12):124003(2020),doi 10.1088/1361-6579/abc960;预印本 medRxiv 2020.08.11.20172601;PMID 33176294;PMC8015789
  • PhysioNet 标准引用:Pollard T, et al. PhysioNet as a global platform for biomedical research. Nature Health. 2026;1(8):792-795
  • RRID:SCR_007345;Parent Projects 官方声明:PTB Diagnostic ECG Database v1.0.0、PTB-XL v1.0.1
  • 数据集/论文/冠军方案/PhysioNet 平台四件套的可复制 BibTeX 见附录 H

5.5 下载与读取实操(十分钟上手)

最小下载路径(PhysioNet 可直连环境):内容页 Files 区逐库取 ZIP,或 git 式批量下载。读取只需 Python 基础栈:

import scipy.io as sio
import numpy as np

def load_recording(base, rec):
    # base 如 ".../georgia/g1",rec 如 "G0001"
    meta = open(f"{base}/{rec}.hea").read().splitlines()
    sig = sio.loadmat(f"{base}/{rec}.mat")["val"]      # 12 x N,原始整数单位
    header = meta[0].split()                            # rec 12 500 7500
    n_lead, fs, n_samp = int(header[1]), int(header[2]), int(header[3])
    gain = [float(l.split()[2].split("/")[0]) for l in meta[1:1+n_lead]]
    sig_mv = sig / np.array(gain).reshape(-1, 1)        # 转物理单位 mV
    labels = [l.split(": ")[1].split(",") for l in meta if l.startswith("#Dx")][0]
    return sig_mv, fs, labels                           # labels 为 SNOMED CT 码列表

sig, fs, dx = load_recording("challenge-2020-training/georgia/g1", "G0001")
# sig: (12, 5000) @ 500 Hz;dx: ['426783006', ...](多标签)

三点提醒:信号以"整数/增益"存储,除以 .hea 中逐导联的 gain 才是 mV;#Dx 行是逗号分隔的多码列表,先做 §3.4 的同义对合并再做任何计分;官方 baseline(Python)里还有逐导联 ADC bits/基线漂移的完整处理,生产代码建议以它为准。

批量读取全部六库的骨架(含按库分层标记,供 leave-one-database-out 自评):

DATABASES = ["cpsc_2018", "cpsc_2018_extra", "st_petersburg_incart",
             "ptb", "ptb-xl", "georgia"]

def load_database(root, db):
    import glob, os
    records = []
    for hea in sorted(glob.glob(f"{root}/{db}/g*/*.hea")):
        rec = os.path.splitext(os.path.basename(hea))[0]
        sig, fs, dx = load_recording(os.path.dirname(hea), rec)
        records.append({"db": db, "rec": rec, "sig": sig, "fs": fs, "dx": dx})
    return records

corpus = {db: load_database("challenge-2020-training", db) for db in DATABASES}
# 交叉验证时按 corpus 的 "db" 键整库留出,不要按记录随机划分

5.6 版本历史与补丁语义

版本 发布日期 语义
v1.0.0 2020-02-16 挑战赛开赛时的首批数据(2 个 tranche,非最终 43,101 规模)
v1.0.1 2020-04-23 unofficial 期末的数据/标签修订(官方称 unofficial 期"beta 测试"后更新过部分数据与标签)
v1.0.2 2022-07-29 当前最新版:official 期四批新 tranche(2020-05-11 一批 + 06-08 四批至 43,101 定版)与赛后修订的最终定版

三点解读:其一,"43,101 条"是 2020-06-08 才达到的定版数字——引用早期论文(含部分参赛论文)中的数据量差异多源于版本时点不同;其二,官方明言 v1.0.2 之后"训练数据不再有任何更新"——今天下载的 v1.0.2 就是永久终版;其三,latest-version DOI(10.13026/m77n-sx13)实测重定向回 1.0.2,PhysioNet 的 latest DOI 是"随最新版移动的别名",引用固定版本时务必用 10.13026/dvyd-kd57。

批量读取全部六库的骨架(含按库分层标记,供 leave-one-database-out 自评):

DATABASES = ["cpsc_2018", "cpsc_2018_extra", "st_petersburg_incart",
             "ptb", "ptb-xl", "georgia"]

def load_database(root, db):
    import glob, os
    records = []
    for hea in sorted(glob.glob(f"{root}/{db}/g*/*.hea")):
        rec = os.path.splitext(os.path.basename(hea))[0]
        sig, fs, dx = load_recording(os.path.dirname(hea), rec)
        records.append({"db": db, "rec": rec, "sig": sig, "fs": fs, "dx": dx})
    return records

corpus = {db: load_database("challenge-2020-training", db) for db in DATABASES}
# 交叉验证时按 corpus 的 "db" 键整库留出,不要按记录随机划分

§6 生态与影响:一年竞赛、四年余波

6.1 在 PhysioNet/CinC 年份链中的位置

PhysioNet/CinC 挑战赛自 2011 年起逐年举办,本库已收录 2011-2023 间 12 届(cinc-2011/2012/2013/2014/2015/physionet-cinc-2016/physionet-cinc-2017/cinc-2018-sleep/cinc-2019/cinc-2020/cinc-2021/cinc-2023)。2020 届在这条链上的独特性有三:

  1. 回到"诊断"主题的枢纽届:2015(ICU 假警报)、2016(心音)、2017(单导联房颤)、2018(睡眠)、2019(脓毒症预警)一路绕行之后,2020 届重新聚焦经典的多导联 ECG 多类诊断,并把主题直接做成了 2021 届(降导联泛化)的地基——2020/2021 是这条链上血缘最近的父子对。
  2. 赛制的分水岭:强制训练代码公开(2020 首创)+ reward 部分得分制(2020 首创)成为此后各届的标配;"挑战赛=可复现性工程"的定位从这里定型。
  3. 规模量级的跳板:2020 的 43,101 条公开训练数据到 2021 扩为 88,253 条(加 Chapman-Shaoxing/Ningbo、UMich 等),再到 2023 的 Chagas 主题大库——2020 届确立了"数万条级、多国多中心"的体例。

定位一句话:在 PhysioNet/CinC 年份链上,2017 届证明"单导联能筛查"、2020 届证明"12 导联多标签可评测但跨库会掉分"、2021 届证明"降导联也够用"、2023 届把方法论推向地方病主题——2020 届是"能力跃迁线"上承前启后的主枢纽,也是这套系列条目中 reward 制叙事的起点。

6.2 2020 → 2021:直接扩展的父子关系

cinc-2021(“Will Two Do?”)在 2020 数据集上做了三件事:加库(Chapman-Shaoxing/Ningbo 45,152 条、UMich 19,642 条、Undisclosed American 扩容),改标签(27 计分类重构为 26、同义对 3→4,新增 CLBBB/LBBB 合并),换任务(验证/测试按 6/4/3/2 导联子集分组发放,考"两条导联够不够")。两届共用的五个库(CPSC 2018/Extra、INCART、PTB、PTB-XL、G12EC)在两届中数据本体相同,但计分表、榜单、论文、DOI 全部独立——引用任何"challenge 分数"都必须先声明届数(坑 6)。

一个容易踩的混写案例:ISIBrno-AIMT 是 2021 届冠军(0.58),其 2020 届论文(#32,Residual CNN-GRU with Attention)并未进入 2020 前十;prna 是 2020 届冠军(0.533),没有参加 2021 届排名。把"2020 冠军分数 0.58"或"2021 冠军 Philips"写进任何文献都是错的。

两届核心参数对照:

维度 challenge-2020 challenge-2021
公开训练 6 库 43,101 条 7 库 88,253 条(+Chapman-Shaoxing/Ningbo)
计分类 27 类,同义对 3 26 类,同义对 4(+CLBBB/LBBB)
任务轴 12 导联单一任务 12/6/4/3/2 导联五轴
参与规模 217 队/1,395 提交/41 榜 68 队/1,056 提交/39 榜
冠军 prna 0.533 ISIBrno-AIMT 0.58
数据 DOI 10.13026/dvyd-kd57 10.13026/g9wd-3j66

2020 → 2021 四维演进对照:

维度 2020 届 2021 届
数据 6 库公开 43,101 / 总量 66,361 9 库公开 88,253 / 总量 131,149(正文口径)
计分标签 27 类、同义对 3(CRBBB/RBBB、PAC/SVPB、PVC/VPB) 26 类、同义对 4(+CLBBB/LBBB)
任务变量 纯 12 导联 验证/测试按 6/4/3/2 导联子集分组
榜首 prna(Philips)0.533 ISIBrno-AIMT 0.58
数据集 DOI 10.13026/dvyd-kd57 10.13026/g9wd-3j66

与库内条目的差异化边界(写作与互链时双方遵守):cinc-2021 条目拥有"降导联任务、26 类重构细节、ISIBrno 方案、131,149 总量校验"的所有权;本条目拥有"27 类清单、reward 制定义、2020 榜单、六库画像、Philips 方案"的所有权——交叉引用时各引各的节,不复制对方段落。这是挑战赛系列条目"一届一条、逐届成链"的写作契约。

6.3 学术影响面

  • 官方论文(Physiol Meas 41(12):124003)是本领域的标准引用之一,OpenAIRE 口径被引 258、IOP 文章页下载量 6,000+,且是"跨数据集泛化"方法学的常引先例;
  • Physiological Measurement Focus Issue “Classification of Multilead ECGs”(2020-09-24 开放投稿)把 41 支队伍的扩展研究收进同行评审池——挑战赛的"赛后期刊化"管道自此固定;
  • 冠军与前列方案论文(Transformer/SE-ResNet/域泛化等)各自成为心电深度学习的引用节点,prna 的 wide+deep 架构在后续文献中被广泛作为基线复刻;
  • 衍生评测生态:Kaggle 的 SNOMED 映射镜像(CC0)、多个第三方搬运与复现 repo、以及 2021/2023 届官方代码库直接继承自 evaluation-2020——评分工具链的开源让"用 2020 规则评自己的模型"至今仍是社区惯例;
  • 跨库对照研究:MUSE(Mayo Clinic 私库)与 challenge 数据的对照研究(CinC2020-374 等)开创了"公开榜 vs 院内库"的双轨评测范式;
  • 方法学快照价值:217 队 707 次成功提交的统计(CNN 最流行但 70% 用手工特征、中位训练 6h49min)已成为"2020 年医学时间序列深度学习成熟度"的量化史料——此后任何"深度学习统治医学 AI"的叙事都以这一届为对照点。

6.4 库内互链地图

  • 同系列横链:cinc-2011(689)、cinc-2012(660)、cinc-2013(662)、cinc-2014(666)、cinc-2015(487)、physionet-cinc-2016(382)、physionet-cinc-2017(162)、cinc-2018-sleep(493)、cinc-2019(656)、cinc-2021(644)、cinc-2023(499)——本条目补上年份链最后一环;
  • 来源子库纵链:cpsc(132)、ptb-xl(70)(INCART、PTB、G12EC 无独立条目,明细由本条目承载);
  • 同域 ECG 谱系:mimic-iv-ecg(172)(同规模 12 导联库、非挑战赛口径)、Chapman-Shaoxing(143)(2021 届来源库)、QT-Database、MIT-BIH-AFDB(115)、MIT-BIH-Arrhythmia(69)(经典 Holter 谱系)、apnea-ecg、CODE-15%、brset、icentia11k、pulsedb;
  • 方法学近亲:brset(巴西多病种临床预测框架)、vitaldb(术中信号跨源汇编)。

6.5 开源代码考古:赛制的"副产品"资产

challenge-2020 留下的代码资产有三层,检索者常只知其一:

  1. 官方评分器(evaluation-2020):reward 矩阵、同义合并、归一化全部在库内,配套 dx_mapping_scored.csv(27 类计分表)与 dx_mapping_unscored.csv(不计分表)——这是复现榜单与自建评测的唯一权威实现;
  2. 官方 baseline:Python(Pan-Tomkins RR 统计矩 + logistic regression)、MATLAB(PhysioNet Cardiovascular Signal Toolbox 的 GEH 特征)、R 三语各一份——它们不是"强基线",分数很低,价值在演示提交格式与读取管道;
  3. 41 支上榜队伍的完整代码:赛后统一公开且被镜像站自动转载(官方声明无法撤回)——这是 2020 年时点最大规模的"带榜单分数的心电模型代码集",做代码级元分析(如统计各队预处理选择)的独有素材。

6.6 赞助与算力生态

挑战赛的运营资金与算力赞助是一套面向参赛者的"减负组合":

  • Google Cloud Platform:报名时申请,official phase 有成功条目且摘要被 CinC 接收的队伍每队 $500 GCP 信用金(每个队邮箱限一份),官方最初预留 $20,000 总池按成绩发放;Google Cloud 新用户另有一年期免费层与 $300 初始金——中位训练时长 6h49min(§4.5)的算力需求由此覆盖;
  • MathWorks:为全部参赛队提供免费 MATLAB 许可(含技术支持专线 studentcompetitions@mathworks.com),支撑官方 MATLAB baseline 与 Cardiovascular Signal Toolbox 生态;
  • Gordon and Betty Moore Foundation:PhysioNet 平台层与挑战赛的长期资助方(内容页 Acknowledgements 三赞助方之一);
  • AliveCor(OpenEmory 资助声明):无限制捐赠(unrestricted gift);
  • NIH 层资助:NIGMS 2R01GM104987-09、NIBIB R01EB030362、NCATS UL1TR002378(OpenEmory 口径);PhysioNet 平台另受 NIBIB/NHLBI/NIH OD 的 U24EB037545 与 R01EB030362 支持。

这条"算力白送+许可白给+代码开源"的资助链是挑战赛能把 217 支队伍(含大量学生队)拉进可复现赛道的物质基础——也是后继各届沿用的问题清单:谁出算力、谁给许可、代码怎么托管。

赞助方 形式 覆盖范围
Google Cloud $500/队 GCP 信用金(总池 $20,000) official phase 成功条目 + 摘要被接收的队伍
MathWorks 免费 MATLAB 许可 + 技术支持 全部注册队伍
Moore Foundation 平台与赛事资助 PhysioNet/CinC 组织层
AliveCor 无限制捐赠 赛事运营
NIH(NIGMS/NIBIB/NCATS) 科研基金(2R01GM104987-09、R01EB030362、UL1TR002378) 组织方研究

§7 方法学启示:四条可迁移的经验

7.1 "误诊代价不相等"应该写进任何医学分类器的评测

reward 部分得分制的核心不是那组具体权重,而是一个可迁移的设计模式:让领域专家给混淆矩阵逐格定价,再以"静止基线=0、完美=1"归一化。这个模式适用于一切"错分代价不对称"的医学任务(肿瘤分级、败血症预警、药物相互作用分级)。2020 届证明了两件事:其一,专家定价的 W 是可以工程化落地的(官方开源了完整权重表);其二,换了指标的排行榜会重新洗牌——在 accuracy 下接近的方案,在 reward 下差距被拉开。任何声称"在 challenge-2020 上达到 SOTA"的新论文,第一件事是声明用哪套指标。

7.2 验证集分数是最容易被过拟合的公共资源

41 支队伍的 validation→test 平均掉 50%、排名大面积倒挂(§4.2),原因并非数据泄露而是集体过拟合验证信号:15 次提交限额内,队伍按 validation 反馈反复选型调参,验证集的泛化信息被逐步耗尽。可迁移的做法:(a)把验证集只用于模型选择、绝不做超参精调;(b)用训练集内部的交叉验证做第二意见(官方对课堂参赛队伍正是这样建议的);(c)向报告者要求"验证分与测试分并列"——两个数字的差值本身就是过拟合体检表。challenge-2020 的榜单是这条教训最大的公开样本。

同分不同命:从验证分到测试分的位移对比(官方 CSV):

队伍 validation test 掉分 位移方向
DSAIL_SNU 0.688 0.420 -0.268 验证第 3 → 榜单第 6
HeartBeats 0.682 0.514 -0.168 验证第 2 → 榜单第 3
Between_a_ROC_and_a_heart_place 0.672 0.520 -0.152 验证第 1 → 榜单第 2
prna(冠军) 0.587 0.533 -0.054 验证中游 → 榜单第 1
Sharif AI Team 0.609 0.437 -0.172 —

冠军 prna 恰是"验证分不高但掉分最小"的典范——对验证信号依赖最少的方法(更多依赖先验与鲁棒特征)在隐藏集上反而走得更稳。

7.3 多源异构要在训练侧解决,而不是测试侧祈祷

2020 届的结构性发现(hidden CPSC→G12EC 降 47%、→undisclosed 再降 57%)给了"预训练+微调"范式一记早期警钟:来源库的设备、人群、标签习惯差异会以域偏移的形式吃掉模型性能,且这个损失无法靠在单一来源上加数据弥补。有效应对的早期证据就来自这届比赛——第 5 名 Sharif AI Team 的对抗性多源域泛化在 test 上掉分相对最小;冠军的 wide 路注入手工特征也部分起了域稳健作用(手工特征在不同设备上的语义比原始波形稳定)。后续文献中的域自适应、跨库预训练(如 PTB-XL→MUSE→私有库的迁移研究)都是这条线索的展开。

7.4 "可复现性门槛"可以被竞赛设计强制执行

2020 届首创的"训练代码+预训练模型双提交、不可复现即除名"政策,把可复现性从作者自觉变成了硬性赛制,结果是:70 支队伍的代码在官方环境里全部可跑、赛后全部公开、41 支的分数可被任何第三方用官方评分程序复算。这证明竞赛设计可以直接制造可复现性,而且不显著降低参与热情(217 队是当时历届最高之一)。PhysioNet/CinC 2021/2023 原样继承该政策;ML 竞赛界后续的"可复现性赛道"设计亦可追溯到此。

§8 AI-Ready 评估:这个数据集"能不能直接喂给模型"

8.1 五维打分

维度 评价 依据
机器可读格式 ★★★★★ WFDB 标准格式(.mat+.hea),scipy.io.loadmat/WFDB toolbox 一行读取;g# 子文件夹天然支持分片并行
标签结构化 ★★★★☆ SNOMED CT 码统一编码、多标签显式列表;扣分点:标签质量官方自认参差(机器/单人/多人三种来源混合),#Rx/#Hx/#Sx 多数空缺
获取门槛 ★★★★☆ Access Policy: Anyone、无需注册、CC BY 4.0;扣分点:部分地区文件区封锁(本库实测 403)+ 隐藏集 35% 不可得
评测可复现 ★★★★★ 官方评分程序开源、同义合并规则明文、全对/全正常双锚点、41 队代码公开——同类数据集中复现基础设施最完整
元数据完备性 ★★☆☆☆ 每条仅年龄+性别+诊断;无采集设备、无用药、无原始文本报告;年龄>89 岁被合成为 92

总评:在"拿来即训"意义上,challenge-2020 是 2020 年代初 ECG 公开数据的标杆——标准格式+统一编码+开源评测的组合让它成为无数 ECG 模型论文的第一数据集;但"AI-Ready"不等于"信息完备":元数据的贫瘠(只有两项人口学)决定了它不适合做公平性审计、设备鲁棒性归因等深水区研究,标签噪声则要求使用者自带清洗策略(官方原文:“Part of the Challenge is to work out how to deal with these issues”)。

AI-Ready 评级卡(本库口径速查):

评级项 结论
许可开放性 CC BY 4.0,商用/修改/再分发皆可(署名义务)
获取即时性 注册即下;部分地区文件区受限(实测 403)
格式标准化 WFDB 行业标准,生态工具链成熟
标签可用性 统一 SNOMED CT;质量分层未标注、官方自认参差
评测完备性 评分器+榜单+同义规则+参赛代码全公开——同类最佳
元数据深度 薄(年龄/性别/诊断三项);不支持深水区研究
综合定位 "训练友好、深究受限"的标杆级公开基准

8.2 使用前的五个工程预案

  1. 重采样统一:257/500/1000 Hz 三档混存,训练前统一到 500 Hz(冠军方案即如此);
  2. 时长策略:6 秒到 30 分钟的记录共存,固定窗(10-15 秒)+长程记录滑窗是主流;窗口长度对节奏类异常有显著影响(冠军消融:10s→15s 提 3.7 分);
  3. 标签清洗自查:官方承认各库标签质量不一且已冻结不再修订;用前按库分层抽检,或在训练中给标签噪声建模;
  4. 同义对合并:任何评测脚本先做 CRBBB/RBBB、PAC/SVPB、PVC/VPB 三对合并(§3.4);
  5. 跨库验证协议:别再用随机划分自我安慰——按来源库留一(leave-one-database-out)是最接近 2020 榜单语义的自评方式。

8.3 与库内 ECG 数据集的 AI-Ready 光谱对照

在库内 ECG 系数据集中,challenge-2020 的位置是"评测基础设施最全、元数据最薄"的一极:mimic-iv-ecg(172) 有更丰富的临床关联(MIMIC-IV 医嘱/出院记录联动)但访问需 credentialed 门槛;ptb-xl(70) 有三层标签体系且单库同质更适合方法学研究;cinc-2021(644) 是同构扩展版(+降导联任务);Chapman-Shaoxing(143) 提供更规整的单库标签。选型建议:做榜单可比的方法学基准→challenge-2020;做临床落地叙事→mimic-iv-ecg 或原生子库;做多任务预训练语料→27+88 全标签的 challenge-2020 或其 2021 扩展版。

库(rid) 开放门槛 标签深度 评测配套 适用场景
cinc-2020(本条目) 最低(Anyone/CC BY 4.0) 27 计分 + 88 辅助(压平) 最全(评分器+榜单+代码) 方法学基准、竞赛复现
cinc-2021(644) 最低(CC BY 4.0) 26 计分(4 对合并) 同级(+降导联分组) 降导联泛化研究
ptb-xl(70) 最低(CC BY 4.0) 最深(三层诊断树) 无官方榜 单库方法学、标签体系研究
mimic-iv-ecg(172) credentialed 门槛 与临床事件联动 无官方榜 临床落地、时序关联

§9 检索者坑点清单:八个高频误读

坑 1:把"六类异常"当成本数据集的任务定义。

  • 现象:网络流传的若干综述与任务简报把 CinC 2020 描述为"六类心律异常分类"。
  • 根源:与 CPSC 2018 原库 9 类、2017 届单导联 4 类等相邻叙事混淆后的再简化。
  • 正确姿势:官方事实是27 类计分 SNOMED CT 码(§2.4)+ 88 类不计分;任何"6 类"版本描述应回溯错误源头,引用时以官方 dx_mapping 表为准。

坑 2:把"四库"当完整构成、"PTB-XXL"当真名。

  • 现象:常见简报称本数据集由"CPSC 2018、G12EC、PTB-XL、PTB-XXL 四库构成"。
  • 根源:"PTB-XXL"是 PTB-XL 的笔误;“四"疑为"四国”(four countries)误植;两库(cpsc_2018_extra 与 INCART)被略去。
  • 正确姿势:官方定版口径 6 库 43,101 条(2020-06-08 公告原文),引用库构成用 §2.1 六库表。

坑 3:用 “weighted auROC” 描述官方指标。

  • 现象:部分材料以 “weighted auROC” 作为 CinC 2020 的评价指标。
  • 根源:与其他心电基准(CPSC 原库用 F1/G-mean,某些第三方研究用 auROC)混淆。
  • 正确姿势:官方评估是 reward 部分得分制(generalized weighted accuracy,§3),冠军论文原话可证;auROC 从未出现在官方评分、榜单或论文结论中。

坑 4:把 0.533 读成"53% 准确率"或"低分=数据集太差"。

  • 现象:榜单分数被直接当准确率引用,或被用来贬低数据集质量。
  • 根源:不了解 reward 分数的归一化语义(§3.2)。
  • 正确姿势:0.533 的语义是"补齐了’永远输出正常’基线(0 分)到全对(1 分)之间约一半的差距",且计分对误诊有临床代价加权;跨指标直接比大小没有意义。

坑 5:CPSC 库时长写"6-60 秒"。

  • 现象:官方内容页原文如此,很多转引照抄。
  • 根源:官方口径描述设计意图,第三方逐文件实测最长 144 秒(中位约 12 秒、1,650 种长度)。
  • 正确姿势:工程上按实测做截断/滑窗预案,引用时注明口径(官方页 vs 实测)。

坑 6:2020 与 2021 的数据/榜单/标签混用。

  • 现象:把 “88,253 条公开训练”(2021 数字)写进 2020;把 ISIBrno-AIMT(2021 冠军)当成 2020 冠军。
  • 根源:两届共享五个库,数据本体相同易被当作同一数据集。
  • 正确姿势:两届计分表重构(27 类/3 对 → 26 类/4 对)、榜单无关、DOI 不同(10.13026/dvyd-kd57 vs 10.13026/g9wd-3j66)——引用任何 challenge 分数先声明届数。

坑 7:自己重写评分函数。

  • 现象:为方便而自行实现 reward 计算,然后报告"接近官方"的分数。
  • 根源:低估了三处细节——reward 矩阵 27×27 权重、同义合并、归一化锚点——的耦合。
  • 正确姿势:直接使用官方开源实现(evaluation-2020);复用其 W 时注意官方声明"这只是我们专家的一个选择",部署场景应重标。

坑 8:单口径引用"泛化落差"。

  • 现象:文献中只见"性能下降 50%“或只见”⪅10%"的单口径引用。
  • 根源:论文同时存在两套口径(Results 的全体均值 vs 摘要的顶级队伍绝对分差)。
  • 正确姿势:引用任何"掉分"结论必须带口径与范围——"validation→test 平均降 50%(全体队伍)“或"顶级队伍绝对分差 ⪅10%”,另有按库的 47%/57% 两级。

§10 DAIMS 数据资产信息模型速览

DAIMS 字段 内容
数据集名称 Classification of 12-lead ECGs: The PhysioNet/Computing in Cardiology Challenge 2020
本库 slug / rid cinc-2020(发布后由 tracker 分配)
版本 v1.0.2(2022-07-29,最新;历史 1.0.0/1.0.1)
DOI 10.13026/dvyd-kd57(v1.0.2);latest:10.13026/m77n-sx13
发布机构 PhysioNet(MIT LCP 承载);组织方 Emory University DBMI 等
任务类型 多标签分类(multi-label classification)
模态 生理信号(12 导联静息心电图)
样本量 公开训练 43,101 条 / 全汇编 66,361 条(隐藏验证+测试 23,260 条)
患者规模 未跨库统一披露(PTB-XL 约 18,885 患者口径属原库)
标签空间 全库 115 种 SNOMED CT 码;27 类计分(3 对同义合并);88 类不计分可用
信号规格 I/II/III/aVR/aVL/aVF/V1-V6;257/500/1000 Hz 异构;6 s-30 min
元数据 年龄(>89 记 92)、性别、Dx/Rx/Hx/Sx(后三项多为 Unknown)
文件格式 WFDB(.mat MATLAB v4 + .hea 文本头);g# 子文件夹每 1000 条一夹
训练/验证/测试 公开训练 43,101 / validation+test 23,260(hidden CPSC/G12EC/undisclosed,永不公开)
官方指标 reward 部分得分制(generalized weighted accuracy;全对=1,全正常=0)
官方榜单 217 队/1,395 提交/707 成功/41 排名;冠军 prna(Philips)0.533
许可 CC BY 4.0(汇编本体,Access Policy: Anyone);子库原生许可各异(INCART/PTB ODC-BY 1.0、PTB-XL CC BY 4.0、CPSC 原库未明示)
获取渠道 physionet.org/content/challenge-2020/(开放下载);评分/参赛代码开源;部分地区文件区受法律/政策限制
官方论文 Perez Alday EA, et al. Physiol Meas. 2020;41(12):124003. doi:10.1088/1361-6579/abc960
时间覆盖 数据采集为各源库历史存量;挑战赛活动 2020-02-07 至 2020-09;数据集版本维护至 2022-07-29
已知局限 标签质量参差且已冻结;PTB-XL 占公开库 50.7%;稀有类样本极少(PVC 188);元数据贫瘠;测试集永不公开;地区访问限制

§11 快速上手:五个常见任务的路线图

五个任务共享同一套前置(下载数据、部署官方评分器、读 §3.4 四条铁律),各自产出不同交付物:A 产出双口径成绩单、B 产出可复现训练管道、C 产出泛化差距报告、D 产出多任务模型、E 产出评测服务。

任务 A:复现官方榜单语义的自评

  1. 下载 v1.0.2 训练数据(§5.5),按六库载入(附录 A 的文件夹结构);
  2. 从 evaluation-2020 开源库取官方评分器与 dx_mapping_scored.csv;
  3. 把 27 类计分码 + 3 对同义合并规则读进评分器(§3.4 四条铁律);
  4. 自评协议用 leave-one-database-out:每次留出一个来源库做"内部隐藏集",与 2020 榜单的"hidden 库"语义对齐(§8.2);
  5. 报告时并列给出"库内随机划分"与"按库留一"两套分数——两者的差就是你自己的泛化体检表。

产出物:一份带"随机划分 vs 按库留一"双列的模型成绩单。

任务 B:训练一个多标签基线

  1. 预处理对齐冠军配置:统一 500 Hz、3-45 Hz 带通、逐导联 [-1,1] 归一化(§4.3 配置表);
  2. 时长策略:固定 15 s 窗 + 长程库滑窗;CPSC 的 6-144 s 异构长度按 §2.6 处理;
  3. 标签端:每记录的 #Dx 多码转 27 维 multi-hot(计分类内合并同义对),88 个不计分码可做辅助任务头;
  4. 损失与类别平衡:27 类分布极不均衡(NSR 20,846 vs PVC 188,附录 B),用 focal/加权 BCE + 按类加权采样;
  5. 评测:训练集内部按库分层划分,产出 reward 分数 + 逐类 F1 双报表(reward 是排名语义,逐类 F1 是诊断语义)。

任务 C:跨机构泛化研究

  1. 用 §2.6 六库画像确定"源-目标"对(如 PTB-XL→G12EC 的形态学到节律迁移);
  2. 复刻官方发现做起点:hidden CPSC→G12EC 降 47% 的结构性原因(患病率+标签体系差异)可在公开数据上完全重建;
  3. 对比方案:直接微调 vs 域自适应(DANN/对抗多源域泛化,Sharif 队路线 §4.2)vs 特征注入(prna wide 路);
  4. 报告口径:务必区分"库间"与"库内"差异,并注明使用的是汇编版还是原生库(§2.5 边界)。

任务 D:多任务/预训练语料

  1. 把 88 个不计分码 + 27 个计分码合成 115 维任务空间(冠军论文展望的"剩余 88 标签"路线);
  2. 注意 STD/STE 等 CPSC 特有类只在不计分表里——它们是多任务头的好素材;
  3. 预训练后微调到 27 类计分任务时,验证"辅助任务是否稀释了稀有类监督"(PVC/SVPB 的样本本就少);
  4. 与 cinc-2021 的 26 类口径对齐时注意 4 对同义合并的差异(坑 6)。

任务 E:评测基础设施搭建(教学/竞赛复用)

  1. 部署官方评分器为服务:输入(记录名、真值码列表、预测码概率表)输出 reward 分数;
  2. 保留官方双锚点(全对=1/全正常=0)与"全阳负分"行为——自行改锚点会让分数与历史榜单失去可比性;
  3. 若需重标 W:官方声明挑战赛的 W 只是"一个例子",按本机构临床代价重标是官方支持的用法(§3.3);
  4. 存档:训练代码+预训练模型+环境清单一起存——这正是 2020 届赛制要求的复现包结构(§7.4)。

附录 A:公开训练分库明细(官方口径逐项)

文件夹 记录数 男 女 采样率 时长 原生身份 原生许可
cpsc_2018 6,877 3,699 3,178 500 Hz 6-60 s(实测至 144 s) CPSC 2018 公开集(南京 ICBEB,11 家医院) 原渠道未明示(汇编内 CC BY 4.0)
cpsc_2018_extra 3,453 1,843 1,610 500 Hz 同上 CPSC 2018 未用数据(非其测试集) 同上
st_petersburg_incart 74 — — 257 Hz 30 min(32 条 Holter 提取) St Petersburg INCART 12-lead Arrhythmia DB ODC-BY 1.0
ptb 516 377 139 1000 Hz 短程 PTB Diagnostic ECG Database ODC-BY 1.0
ptb-xl 21,837 11,379 10,458 500 Hz 10 s PTB-XL CC BY 4.0
georgia 10,344 5,551 4,793 500 Hz 10 s Georgia G12EC(挑战赛专属) 随汇编 CC BY 4.0
合计 43,101 — — — — — —

隐藏侧(官方不公开,供对照):validation + hidden CPSC + hidden G12EC + hidden undisclosed(10,000 条来源不披露的 Undisclosed American 库在内),合计 23,260 条(66,361 − 43,101 推算)。

附录 B:27 类计分标签逐库分布全表(官方映射镜像口径)

完整跨库分布(SNOMED_mappings_scored.csv 口径;列依次为 CPSC / CPSC-Extra / INCART / PTB / PTB-XL / Georgia / 训练库总计)——它是判断"某类模型在哪库上有判别优势"的底表:

诊断 码 CPSC Extra INCART PTB PTB-XL G12EC 总计
一度房室阻滞 IAVB 270492004 722 106 0 0 797 769 2,394
房颤 AF 164889003 1,221 153 2 15 1,514 570 3,475
房扑 AFL 164890007 0 54 0 1 73 186 314
心动过缓 Brady 426627000 0 271 11 0 0 6 288
完全性右束支阻滞 CRBBB 713427006 0 113 0 0 542 28 683
不完全性右束支阻滞 IRBBB 713426002 0 86 0 0 1,118 407 1,611
左前分支阻滞 LAnFB 445118002 0 0 0 0 1,626 180 1,806
电轴左偏 LAD 39732003 0 0 0 0 5,146 940 6,086
左束支阻滞 LBBB 164909002 236 38 0 0 536 231 1,041
QRS 低电压 LQRSV 251146004 0 0 0 0 182 374 556
非特异室内传导障碍 NSIVCB 698252002 0 4 1 0 789 203 997
起搏心律 PR 10370003 0 3 0 0 296 0 299
房性早搏 PAC 284470004 616 73 3 0 398 639 1,729
室性早搏 PVC 427172004 0 188 0 0 0 0 188
PR 间期延长 LPR 164947007 0 0 0 0 340 0 340
QT 间期延长 LQT 111975006 0 4 0 0 118 1,391 1,513
Q 波异常 QAb 164917005 0 1 0 0 548 464 1,013
电轴右偏 RAD 47665007 0 1 0 0 343 83 427
右束支阻滞 RBBB 59118001 1,857 1 2 0 0 542 2,402
窦性心律不齐 SA 427393009 0 11 2 0 772 455 1,240
窦性心动过缓 SB 426177001 0 45 0 0 637 1,677 2,359
窦性心律 NSR 426783006 918 4 0 80 18,092 1,752 20,846
窦性心动过速 STach 427084000 0 303 11 1 826 1,261 2,402
室上性早搏 SVPB 63593006 0 53 4 0 157 1 215
T 波异常 TAb 164934002 0 22 0 0 2,345 2,306 4,673
T 波倒置 TInv 59931005 0 5 1 0 294 812 1,112
室性早搏 VPB 17338001 0 8 0 0 0 357 365

读表四则:CRBBB 与 RBBB、PAC 与 SVPB、PVC 与 VPB 三对各自列的条数在计分时分别合并(§2.4);LAD、LPR、QAb、LQRSV 等形态学类几乎全靠 PTB-XL+G12EC——在 CPSC 单库内训练的模型对这些类接近零样本;NSR 的 18,092/20,846 集中在 PTB-XL 是"跨库患病率先验失衡"最直观的体现;MUSE 交叉研究(CinC2020-374)发现 Brady、LPR、QAb 在 MUSE 私库中缺席——跨"库集合"的可评估性也不同。

附录 C:官方时间线速查

日期(均为 2020 年除非另注) 事件
02-07 Challenge 开赛(unofficial phase)
02-16 数据集 v1.0.0 上线 PhysioNet
03-16 leaderboard 上线
03-31 CinC 摘要截止延至 05-01
04-25 unofficial 提交延期 5 天至 04-30
05-11 official phase 开始(新 tranche + SNOMED-CT 标签)
05-27 完整诊断清单发布
06-08 数据扩充定版:6 库 43,101 条
07-01 强制提交预训练模型+训练代码
07-29 wild card 邀 2 队
08-24 official phase 截止;训练数据冻结
09-13~16 CinC 2020(Rimini,意大利;允许远程);09-16 宣布获奖者
09-17~24 最终分数发布
09-24 Physiol Meas Focus Issue 开放投稿
12-29 挑战赛论文正式发表(IOP,41(12):124003)
2022-01-26 官方宣布 2020/2021 Challenge 收官
2022-07-29 数据集 v1.0.2 发布(最新版)

时间线阅读要点:02-07 开赛与 02-16 数据上线相隔 9 天——挑战赛"先开赛再逐步放数据"的节奏意味着 unofficial 期队伍一直在"beta 数据"上工作(§4.1 两阶段表);06-08 的"定版"是训练数据最后一次扩容,此后所有分数都在同一份 43,101 条上产生;09-16 现场颁奖与 09-17~24 分数发布分两步——现场宣布的是名次,书面最终分留有一周复核窗口;2022-01-26 的"收官"公告是 2020/2021 两届合并的官方句点,之后 challenge-2020 只做数据维护(v1.0.2)不再有赛事动作。

附录 D:官方最终榜完整数据(官方 official_scores.csv 存档,test 分数)

排名 队伍 test 排名 队伍 test
1 prna 0.533 22 dl_unict 0.207
2 Between_a_ROC_and_a_heart_place 0.520 23 jni 0.200
3 HeartBeats 0.514 24 COMP5900_TEAM4 0.197
4 Triage 0.485 25 Meta_lab 0.193
5 Sharif AI Team 0.437 26 ecg_graders 0.188
6 DSAIL_SNU 0.420 27 CVBL_GZ 0.183
7 UMCUVA 0.417 28 Woncanuck 0.166
8 CQUPT_ECG 0.411 29 HeartMonitor 0.150
9 ECU 0.382 30 listening_to_the_heart 0.148
10 PALab 0.359 31 BeatTheBeat 0.146
11 HITTING 0.354 32 Eagle 0.145
12 Gio_Ivo 0.298 33 Rodrigos 0.134
13 SpaceOn 0.291 34 Bilbo 0.127
14 Nebula 0.287 35 ECE_NCSU 0.125
15 DeepEngine 0.282 36 SRCB 0.122
16 M Single 0.272 37 Saito 0.106
17 Information systems 0.262 38 Magic 0.096
18 ecg_3119220589 0.251 39 csdl_lab 0.090
19 Kmind 0.242 40 Error3203 0.086
20 lhj 0.235 41 xl246 0.075
21 Amos 0.217 — — —

(validation 分数、逐隐藏库分数与资格核验列见官方 CSV 原档;前十名详析见 §4.2。)

榜单之外:41 队只是冰山一角。70 支队伍的代码在全部测试数据上跑通,但其中 29 支因资格条款(未按时交 preprint、未到场答辩、终稿逾期等)被排除在排名外——他们的分数官方留档不榜;397+310 次成功提交中的大多数止步于"跑通格式"与"跑通全数据"之间;官方还按 hidden 数据库逐库公布过每队的分库分数(hidden CPSC 榜首 0.761 vs hidden undisclosed 榜首仅约 0.49)——同一算法在不同隐藏库上的分数差,本身就是 §4.4 泛化结论的微观证据。做队伍级元分析的研究者应以官方 CSV 的完整列(含资格核验 Y/N 列)为准,而不是任何第三方转载榜。

榜单之外的三个口径提醒:其一,official_scores.csv 只含 41 支获得正式排名的队伍——70 支代码跑通的队伍中另有 29 支因流程原因(preprint/答辩/终稿,§4.1)被除名,其分数不在榜上;其二,榜内分数全部为 test 分(validation 分在 CSV 另列);其三,第 2-3 名队伍的 BSD 许可与冠军一致,全部前十代码赛后可查。

附录 E:库内互链清单

互链条目 关系 链接语义
cinc-2021(644) 直接扩展版(+3 库、26 类重构、降导联任务) “2020 是 2021 的地基;两届榜单/标签不可混用”
cinc-2019(656) 前届(脓毒症预警主题) “2020 回归 ECG 诊断主线的枢纽”
cinc-2015(487) 同系列(ICU 假警报) “挑战赛主题年表”
physionet-cinc-2017(162) 同系列(单导联房颤) “从 1 导联到 12 导联的能力跃迁”
cinc-2023(499) 同系列(Chagas) “reward 制与代码强制的持续”
cpsc(132) 来源子库(独立条目) “汇编版 vs 原生版差异”
ptb-xl(70) 来源子库(独立条目) “50.7% 训练量的母库”
Chapman-Shaoxing(143) 2021 届来源库 “2020→2021 扩容的去向”
mimic-iv-ecg(172) 同域 ECG 大库 “credentialed vs open 的获取光谱对照”
QT-Database / MIT-BIH-AFDB(115) / MIT-BIH-Arrhythmia(69) 经典 ECG 谱系 “从经典小库到多源大库的演化”
apnea-ecg / CODE-15% / icentia11k / brset 同域生理信号 “ECG 多标签与临床预测生态”

互链写作注意:与 cinc-2021 互链时两边的"父子关系"表述应一致(2021 扩展 2020);与 cpsc/ptb-xl 互链时注意"挑战赛版数字(6,877/21,837)与原库条目口径"是否一致——CPSC 原库条目使用 6,877 同一口径,PTB-XL 原库条目使用 21,837 同一口径,无冲突;INCART/PTB/G12EC 无独立条目,读者欲查其细节只能经由本条目——这是本条目"汇编价值"的一部分。

附录 F:术语与缩写表

术语 全称/原文 释义
12-lead ECG 12 导联心电图 I/II/III/aVR/aVL/aVF/V1-V6 十二个标准导联的静息体表心电
CinC Computing in Cardiology 年度计算机心脏病学会议,PhysioNet 挑战赛的发布场
PhysioNet — MIT LCP 运营的生理信号资源平台,本数据集的发布方
WFDB WaveForm Database PhysioNet 的信号存储格式:.mat 二进制信号 + .hea 文本头
SNOMED CT Systematized Nomenclature of Medicine Clinical Terms 医学系统命名法临床术语,本数据集的标签编码体系
NSR Normal Sinus Rhythm(426783006) 正常窦性心律——评分公式的 0 分锚点
AF / AFL Atrial Fibrillation / Flutter 房颤/房扑——reward 权重表中"高相似对"的典型
RBBB / CRBBB (Complete) Right Bundle Branch Block 右束支阻滞/完全性右束支阻滞——同义计分对之一
PAC / SVPB Premature Atrial Contraction / Supraventricular Premature Beats 房早/室上性早搏——同义计分对之二
PVC / VPB Premature Ventricular Contractions / Ventricular Premature Beats 室早两种编码——同义计分对之三
IAVB 1st degree AV block(270492004) 一度房室阻滞
LAnFB Left Anterior fascicular Block 左前分支阻滞——Georgia 库独供主力
LAD / RAD Left / Right Axis Deviation 电轴左偏/右偏
LQRSV Low QRS Voltages QRS 低电压——噪声敏感类
LQT / LPR Long QT / Long PR interval QT/PR 间期延长
QAb / TAb / TInv Q wave / T wave Abnormal, T wave Inversion Q 波异常/T 波异常/T 波倒置
NSIVCB Nonspecific IntraVentricular Conduction Disorder 非特异性室内传导障碍
reward matrix 奖励矩阵 心脏病学专家逐格标定的误诊代价权重矩阵 W
generalized weighted accuracy 广义加权准确率 官方对 reward 部分得分制的称谓
auROC area under ROC curve ROC 曲线下面积——非本挑战赛指标(坑 3)
G12EC Georgia 12-Lead ECG Challenge Database 挑战赛专属的佐治亚州库
ICBEB International Conference on Biomedical Engineering and Biotechnology 国际生物医学工程与生物技术会议(南京)——CPSC 2018 的发起会议
PTB Physikalisch-Technische Bundesanstalt 德国联邦物理技术研究院——PTB/PTB-XL 的来源机构
INCART St Petersburg INCART 圣彼得堡 12 导联心律失常库(32 条 Holter 提取 74 条)
Holter 动态心电 长程(24h 级)随身心电记录——INCART 库的载体形态
ODC-BY Open Data Commons Attribution License 1.0 开放数据共享署名许可 1.0——INCART/PTB 的原生许可
CC BY 4.0 Creative Commons Attribution 4.0 知识共享署名 4.0——挑战赛汇编的统一许可
BSD 2 / BSD 3 Berkeley Software Distribution 许可 参赛代码常用开源许可(冠军队 BSD 2;官方默认假设 BSD 3.0)
GEH Global Electrical Heterogeneity 全局电异质性——官方 MATLAB baseline 使用的特征组
Pan-Tomkins — 经典 QRS 检测算法——官方 Python baseline 的 RR 间期来源
leave-one-database-out 按库留一 用训练集模拟 2020 榜单语义的自评协议(§8.2)
hidden set 隐藏集 validation + hidden CPSC/G12EC/undisclosed 三组官方计分数据
wild card 外卡 摘要被拒/错过 unofficial 期队伍的受邀机制(2 席)
tranches 批次 官方分批发放训练数据的单位(2020-05 一批 + 06 四批)

附录 G:任务 brief 口径差异存照表(编辑核验记录)

brief 表述 官方事实 处置
“六类异常定义” 27 类计分 SNOMED CT 码(附录 B 实数 27 行) 不采信 brief;条目按官方写(坑 1)
“四库构成:CPSC 2018 / G12EC / PTB-XL / PTB-XXL” 6 库 43,101(含 cpsc_2018_extra 与 INCART);"PTB-XXL"系 PTB-XL 笔误 按官方 6 库写(坑 2)
“评价指标 weighted auROC” reward 部分得分制(generalized weighted accuracy) 按官方写,brief 说法存照(坑 3)
论文年份"Physiol Meas 2020/2021"混传 IOP 正式口径 2020-12-29 出版、Vol 41(12):124003;另有 2020-11-11(在线)与 2021 卷期年两口径 条目采用 IOP 口径并双注(§5.4)
CPSC 时长"6-144 s"或"6-60 s" 官方页 6-60 s;第三方实测至 144 s 双口径并存照(坑 5)
库内"cinc 年份链 2020 为最后缺口" 查重确认:cinc-2011/2012/2013/2014/2015/2018-sleep/2019/2021/2023 + physionet-cinc-2016/2017 共 11 条在库,无 cinc-2020 本条目补缺(§6.4)

附录 H:标准引用格式(BibTeX)

% 数据集本体(v1.0.2)
@article{PhysioNet-challenge-2020-1.0.2,
  author  = {{Perez Alday}, Erick Andres and Gu, Annie and Shah, Amit and Liu, Chengyu
             and Sharma, Ashish and Seyedi, Salman and {Bahrami Rad}, Ali
             and Reyna, Matthew and Clifford, Gari},
  title   = {{Classification of 12-lead ECGs: The PhysioNet/Computing in Cardiology Challenge 2020}},
  journal = {PhysioNet},
  year    = {2022},
  note    = {Version 1.0.2},
  doi     = {10.13026/dvyd-kd57}
}

% 挑战赛论文
@article{perezalday2020classification,
  author  = {Perez Alday, Erick A. and Gu, Annie and Shah, Amit J. and Robichaux, Chad
             and Wong, An-Kwok Ian and Liu, Chengyu and Liu, Feifei and {Bahrami Rad}, Ali
             and Elola, Andoni and Seyedi, Salman and Li, Qiao and Sharma, Ashish
             and Clifford, Gari D. and Reyna, Matthew A.},
  title   = {Classification of 12-lead ECGs: the PhysioNet/Computing in Cardiology Challenge 2020},
  journal = {Physiological Measurement},
  volume  = {41},
  number  = {12},
  pages   = {124003},
  year    = {2020},
  doi     = {10.1088/1361-6579/abc960}
}

% 冠军方案
@inproceedings{natarajan2020wide,
  author    = {Natarajan, Annamalai and Chang, Yale and Mariani, Sara and Rahman, Asif
               and Boverman, Gregory and Vij, Shruti and Rubin, Jonathan},
  title     = {A Wide and Deep Transformer Neural Network for 12-Lead ECG Classification},
  booktitle = {Computing in Cardiology},
  year      = {2020},
  pages     = {1--4}
}

% PhysioNet 平台标准引用
@article{pollard2026physionet,
  author  = {Pollard, Tom and Moody, Benjamin E. and Lehman, Li-wei H. and Gow, Brian J.
             and Fernandes, Chrystinne and Xie, Chen and Johnson, Alistair
             and Mark, Roger G. and Heldt, Thomas},
  title   = {{PhysioNet} as a global platform for biomedical research},
  journal = {Nature Health},
  volume  = {1},
  number  = {8},
  pages   = {792--795},
  year    = {2026},
  doi     = {10.1038/s44360-026-00096-z}
}

附录 I:本条目核验来源清单(一手来源与抓取日期)

# 来源 URL 抓取/核验日期 用途
1 PhysioNet challenge-2020 内容页 v1.0.2 physionet.org/content/challenge-2020/ 2026-09-27 全称、六库数字、评分定义、时间线、License、版本与 DOI
2 moody-challenge 官网 2020 moody-challenge.physionet.org/2020/ 2026-09-27 官方公告时间线、参与规模、scores/results 链接
3 官方最终成绩 CSV moody-challenge.physionet.org/2020/results/physionet_2020_official_scores.csv 2026-09-27 41 队榜单全量、validation/逐库分数、许可列
4 官方 papers 页与冠军论文 PDF moody-challenge.physionet.org/2020/papers/(107.pdf) 2026-09-27 冠军身份(Philips)、方法细节、115 码口径
5 挑战赛论文(IOP 页+摘要) doi.org/10.1088/1361-6579/abc960 2026-09-27 66,361/43,101/27 类/217 队/1,395 提交、发表日期
6 论文 Results(PMC 快照) PMC8015789 2026-09-27(快照) 707 成功/70 队/41 排名、47%/57%/50% 落差、方法画像
7 Kaggle SNOMED 映射镜像(CC0) kaggle.com/datasets/bjoernjostein/physionet-snomed-mappings 2026-09-27 27 类逐库分布全表(附录 B)
8 2021 姊妹论文 Table 5 PMC9469795 2026-09-27(快照) 计分表结构与同义合并规则对照
9 INCART 内容页 physionet.org/content/incartdb/1.0.0/ 2026-09-27 ODC-BY 1.0 许可
10 PTB 内容页 physionet.org/content/ptbdb/1.0.0/ 2026-09-27 ODC-BY 1.0 许可
11 PTB-XL 内容页 physionet.org/content/ptb-xl/1.0.0/ 2026-09-27 CC BY 4.0 许可
12 PhysioNet news 收官公告 physionet.org/news/post/382/ 2026-09-27(快照) 2022-01-26 收官、论文引用口径
13 HF ECGBench CPSC 页 / CSDN 实测 huggingface.co/spaces(经核验转述) 2026-09-27 CPSC 时长实测 144 s、多标签结构(存照口径)

第三方转述(#13)仅用于存照口径,硬数字全部出自 #1-#12 官方/论文来源。


本条目由千方病案医数集编辑部编写。事实核验截至 2026-09-27;三处与常见简报冲突的口径(27 类 vs"六类"、6 库 vs"四库"、reward 制 vs"weighted auROC")以 PhysioNet 官方内容页、moody-challenge 官网与挑战赛论文(Physiol Meas 41(12):124003)三源互证结果为准。数字冲突的双口径存照见各"坑"条与 FACTS 档案。


相关数据集导航

以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:

  • cinc-2021 — 共享标签:生理信号 / 心电信号 / 挑战赛数据集 / 评测基准 / 心血管疾病
  • ltafdb — 共享标签:生理信号 / 心电信号 / 挑战赛数据集 / 评测基准 / 心血管疾病
  • cinc-2014 — 共享标签:生理信号 / 心电信号 / 挑战赛数据集 / 评测基准 / 心血管疾病
  • mit-bih-afdb — 共享标签:生理信号 / 心电信号 / 评测基准 / 心血管疾病
  • icentia11k — 共享标签:生理信号 / 心电信号 / 评测基准 / 心血管疾病
  • apnea-ecg — 共享标签:生理信号 / 心电信号 / 挑战赛数据集 / 评测基准
  • cinc-2013 — 共享标签:生理信号 / 心电信号 / 挑战赛数据集 / 评测基准
  • cinc-2011 — 共享标签:生理信号 / 心电信号 / 挑战赛数据集 / 心血管疾病
  • mit-bih-arrhythmia — 共享标签:生理信号 / 心电信号 / 评测基准 / 心血管疾病
  • chapman-shaoxing — 共享标签:生理信号 / 心电信号 / 评测基准 / 心血管疾病

导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

返回 AI-Ready 数据集