信息速览
INFOBOX — PTB-XL+ 一屏速览
维度 内容 本质 PTB-XL 基础数据集的官方特征扩展版(不重采信号,补算特征与元数据) 与基础版关系 库内 ptb-xl(rid 70)为父数据集;本条目为其扩展版 PTB-XL+,二者父子衍生非别名覆盖范围 全量 PTB-XL:21799 条记录 / 18869 患者(论文口径 up to 21799) 三方特征 Uni-G(Glasgow,商业)/Marquette 12SL(GE,商业)/ECGDeli(开源,依赖 MATLAB) 单位协调 幅度 mV、间期 ms;三集共有特征 13 个、至少两集共有 39 个 中位心拍 Uni-G 与 12SL 各一套,WFDB 16bit、1 μV/LSB、500 Hz 自动声明 仅 12SL 提供,全库覆盖 117 条 statement;SNOMED CT/LOINC 双本体映射 判别力 随机森林 macro AUC:Uni-G 0.889 / 12SL 0.871 / ECGDeli 0.879(CNN 基线 all 0.925) 声明一致性 12SL 声明 vs PTB-XL 人工标签,SNOMED 术语级 MCC 中位数 0.45;房颤 0.89 最高 论文 Sci Data 10, 279(2023);doi:10.1038/s41597-023-02153-8 版本 v1.0.0(2023-04-24)/v1.0.1(2023-06-27) 获取 PhysioNet 开放访问,CC BY 4.0,ZIP/wget/AWS CLI 三法,2.0 GB 未压缩 库内互链 PTB-XL(上游本体 rid 70)、MIMIC-IV-ECG(172)、Leipzig Heart Center ECG(910)、Norwegian Athlete ECG(1012)、OpenECG(802)
PTB-XL+ 是一次"给心电数据集补上说明书"的工程:它不采集任何新信号,而是对 PTB-XL 全部 21799 条 12 导联心电记录,用两套商用算法(University of Glasgow 的 Uni-G、GE Healthcare 的 Marquette 12SL)和一套开源工具(ECGDeli)重新算出一整套协调格式的心电特征——幅度、间期、起止点、心率心轴、面积乃至心电向量图测量,再附上中位心拍、基准点,以及 12SL 的自动诊断声明。它解决的痛点是:心电设备里跑了几十年、心脏科医生判定规则所依赖的手工特征,长期被锁在商业软件里"不对外公开"。PTB-XL+ 第一次把这批特征以公开可用的形式放出来,让 PTB-XL 从"只有分类标签的波形库"升级为"可用于训练与评测可解释心电模型的参考数据集"。
导语读法三则:
- 只想下数据用特征:直奔 §6 获取与许可——CC BY 4.0 无门槛,但注意特征 CSV 与原始波形是两回事,波形仍要回溯父数据集 PTB-XL(§5)。
- 想理解"自动标签 vs 人工标签":直奔 §4 技术验证——那里有 117 条 12SL 声明与 PTB-XL 人工标注的 SNOMED 对照、MCC 一致性表与跨源训练实验。
- 分不清 PTB-XL 与 PTB-XL+:直奔 §2 谱系与 §9 库内关系——本条目反复强调二者是父子衍生关系,不是别名、不是重复条目(坑 1)。
§0 导读:这个数据集解决什么问题
自动心电分析的历史几乎和心电图本身一样长。近百年来,心脏科医生和工程界积累了一整套手工设计的诊断描述量——P 波、QRS 时限、QT 间期、各导联振幅、心电轴、ST 段偏移……它们既是设备内置自动分析算法的判定基础,也是医生决策规则的载体。问题在于:最成熟、最可靠的那批特征提取器(Uni-G、Marquette 12SL 等)都是商业闭源软件,部署在全球数百万台心电设备里,普通研究者拿不到、也用不起。
与此同时,公开的心电数据集却在快速膨胀。以 PTB-XL 为例,它是目前最大、最广泛使用的公开 12 导联临床心电数据集之一,覆盖多种病理、信号质量参差、贴近真实世界。但它的"短板"同样明显:只有人工标注的分类标签(CPSC 标准的 SCP 语句),没有任何派生描述量——没有特征、没有中位心拍、没有自动诊断声明。这带来两个后果:其一,做可解释模型或特征工程研究时没有参照标准;其二,无法把"训练在人标签上的模型"与"训练在自动标签上的模型"做直接对照。
PTB-XL+ 的回答是把这两块拼图补上。它为 PTB-XL 全量记录补算了来自三家算法的 ECG 特征,把特征统一到公共命名方案(幅度用 mV、间期用 ms),并映射到 SNOMED CT/LOINC 本体,使不同来源的特征可以互换使用;同时提供中位心拍与基准点,以及来自 Marquette 12SL 的自动诊断声明——且这些声明被整理成可直接用于机器学习训练与评测的分层格式。作者的核心论点是:这一步会"决定性地提升 PTB-XL 的可用性",把它真正变成一个心电机器学习领域的参考数据集。
§0 读法三则:
- 这个条目本质上是"特征数据集 + 本体映射 + 自动标签对照实验"三合一:本体是四处 CSV 特征文件,对照实验是 12SL 声明 vs 人工标签,两者价值不同(§3、§4)。
- 全文硬数字均出自 PhysioNet 官方页与 Sci Data 论文;两处版本/DOI/记录数口径不一致处已在 §10 坑点与附录存照。
- 检索时若用"PTB-XL 特征数据集"泛指可能命中父数据集条目(库内 rid 70),务必以 slug
ptb-xl-plus与 PhysioNet 独立项目页/content/ptb-xl-plus/为准(坑 1)。
§1 数据集速览:十问十答
Q1:PTB-XL+ 是重新采集的数据吗?
不是。它是对既有 PTB-XL 数据集的全量补充:不新增任何心电信号,只对 PTB-XL 已有的 21799 条记录补算特征与元数据。你可以把它理解为给一份波形库配了一套"体检报告模板"。
Q2:它和 PTB-XL 是什么关系?
父与子的衍生关系。PTB-XL 提供原始波形与人工标签,PTB-XL+ 在其上叠加特征、中位心拍、基准点与自动诊断声明。PTB-XL+ 的 PhysioNet 项目页明确标注"派生自 PTB-XL v1.0.3"。所以本条目在库内与 ptb-xl(rid 70)是互补而非重复(详见 §9)。
Q3:覆盖多少记录、多少患者?
覆盖全量 PTB-XL。论文口径为"up to 21799 records from 18869 patients"——“up to” 是因为个别算法可能无法处理极少数样本。注意这与坊间常引的"21837 条"不同:21837 是文件编号的最大值,不是记录总数(坑 2)。
Q4:有哪些特征来源?
三家:① Uni-G(University of Glasgow ECG Analysis Program,商业);② Marquette 12SL(GE Healthcare,商业,全球数百万设备部署);③ ECGDeli(开源,但依赖 MATLAB 运行时)。前两者走"先算中位心拍、再提特征、再预测声明"的路线;ECGDeli 先定基准点再算特征,且逐心拍计算。
Q5:三家特征能直接混用吗?
作者把所有特征映射到公共命名方案并统一到兼容单位(mV/ms),还映射到 LOINC,目的正是"尽可能互换使用"。但需注意:三集共有特征只有 13 个、至少两集共有的 39 个——并非所有特征都对齐。
Q6:谁提供自动诊断声明?
只有 12SL。Uni-G 因使用限制不提供自动声明,因此"自动标签 vs 人工标签"的对照实验只能用 12SL 一方做,这也是该数据集经验证据的一个结构限制。
Q7:自动声明有多少条?
在全 PTB-XL 上覆盖 117 条 statement(论文图 4 展示了最频繁的前 40 条)。映射到 SNOMED CT 并剔除近根/完全相关项后,标签集缩减为 168 个 SNOMED CT 编码。
Q8:特征好用吗?比端到端 CNN 如何?
用随机森林评估,三套特征的 macro AUC 为 Uni-G 0.889、12SL 0.871、ECGDeli 0.879,整体略低于原始波形的 CNN 基线(all 任务 0.925)。作者结论是手工特征在综合任务上不及 CNN,但在可解释性和效率上有独特价值;ECGDeli 在"心律"类别上甚至超过了 CNN(0.964 vs 0.957)。
Q9:自动声明和人工标签一致吗?
不完全一致。以 SNOMED CT 为公共本体可比较 94 个术语,样本级 Matthews 相关系数(MCC)中位数只有 0.45。一致性好的是心房颤动(0.89)、完全性左束支阻滞(0.88)、窦性心动过速(0.88);而特定定位的心肌梗死几乎无一致性。这既可用于评估 PTB-XL 自身的标签质量,也可用于训练/评测自动标签模型。
Q10:怎么获取,要花钱吗?
不要。CC BY 4.0 开放许可,PhysioNet 直接下载,支持 ZIP、wget、AWS CLI 三种方式,未压缩约 2.0 GB。无需注册审批。
§2 谱系与身份:PTB-XL+ 从哪来、算什么
2.1 上游:PTB-XL 基础版
要理解 PTB-XL+,必须先认清它的父数据集 PTB-XL。PTB-XL 是德国 Physikalisch-Technische Bundesanstalt(PTB,联邦物理技术研究院)在 2020 年发布的公开临床 12 导联心电数据集,论文见 Sci Data 7, 154(Wagner 等,doi:10.1038/s41597-020-0495-6)。它的核心规格是:
| 项目 | PTB-XL 官方口径(v1.0.3) |
|---|---|
| 记录数 | 21,799 条 12 导联 ECG |
| 患者数 | 18,869 名 |
| 信号时长 | 10 秒 |
| 采样率 | 500 Hz 与 100 Hz 双版本 |
| 波形格式 | WFDB,16 bit 精度,1 μV/LSB |
| 采集设备 | Schiller AG |
| 采集时段 | 1989 年 10 月 – 1996 年 6 月(近 7 年) |
| 语句体系 | 71 种 SCP-ECG statement(诊断/形态/节律三类) |
| 人群构成 | 52% 男性、48% 女性;年龄 0–95 岁(中位 62,IQR 22) |
| 交叉验证 | 推荐 10 折 strat_fold,按患者分配 |
五超类诊断分布(一条记录可多标签,故各超类之和超过记录总数):
| 超类 | 缩写 | 含义 | 记录数 |
|---|---|---|---|
| Normal ECG | NORM | 正常 ECG | 9,514 |
| Myocardial Infarction | MI | 心肌梗死 | 5,469 |
| ST/T Change | STTC | ST/T 改变 | 5,235 |
| Conduction Disturbance | CD | 传导障碍 | 4,898 |
| Hypertrophy | HYP | 肥厚 | 2,649 |
2.2 一个必须澄清的数字:21799 还是 21837
这是本条目最容易被引用错的一处。网络上、甚至部分论文里流传"PTB-XL 有 21837 条记录、18885 名患者"的说法,但官方口径是 21799 条记录、18869 名患者。差异来源有二:
- 21837 是文件编号(ecg_id)的最大值,不是记录总数。PTB-XL 在版本演进中移除了重复记录(v1.0.2 移除 36 条完全相同的原始波形,v1.0.3 又移除 2 条),导致编号不连续——编号从 00001 到 21837,但实际记录少于编号上限。
- 18885 vs 18869 是版本口径差异,但官方页面与 PTB-XL+ 论文均采用 18869。
因此本条目统一采用 21799 条 / 18869 患者。(PTB-XL+ 论文特别写了"up to 21799",用 up to 是因为个别算法对极少数样本可能处理失败,实际可提特征的记录数可能略低于上限。)
2.3 PTB-XL+ 的定位:一次"特征补全"
PTB-XL+ 的动机,用作者原文概括是:当前数据集缺少重要的元数据——那些在过去百年里发展起来、至今仍是多数自动心电分析算法与心脏科决策规则基础的 ECG 特征。这类特征虽存在于成熟的商业软件中,却不对公众开放。作者的做法是把两家领先商业算法(Uni-G、12SL)与一套开源实现(ECGDeli)的特征释放出来,并附上 12SL 的自动诊断声明。
关键在于:PTB-XL+ 不重采信号。它的所有条目的"键"都是 PTB-XL 的 ecg_id,特征是这些记录在各自算法上的输出。因此:
- 要用特征与声明 → 下载 PTB-XL+;
- 要用原始波形 → 仍然回到父数据集 PTB-XL v1.0.3。
2.4 机构与作者
PTB-XL+ 是一份跨国、跨机构协作的产物。Sci Data 论文的机构署名覆盖 11 家:
| 机构 | 所在 |
|---|---|
| Oldenburg University | 德国奥尔登堡 |
| Physikalisch-Technische Bundesanstalt (PTB) | 德国柏林 |
| Fraunhofer Heinrich Hertz Institute | 德国柏林 |
| Karlsruhe Institute of Technology (KIT) | 德国卡尔斯鲁厄 |
| National Physical Laboratory | 英国特丁顿 |
| University of Surrey | 英国吉尔福德 |
| Aalborg University | 丹麦奥尔堡 |
| University of Copenhagen | 丹麦哥本哈根 |
| Charité – Universitätsmedizin | 德国柏林 |
| TU Berlin | 德国柏林 |
| King’s College London | 英国伦敦 |
作者清单为:Nils Strodthoff、Temesgen Mehari、Claudia Nagel、Philip Aston、Ashish Sundar、Claus Graff、Jørgen Kanters、Wilhelm Haverkamp、Olaf Doessel、Axel Loewe、Markus Bär、Tobias Schaeffter。其中 Nils Strodthoff(Oldenburg University)与 Tobias Schaeffter(PTB)为通讯作者。PhysioNet v1.0.1 相对 v1.0.0 的主要变化正是"扩展了作者列表与数据集描述"——v1.0.0 只署 3 人(Strodthoff、Mehari、Schaeffter),v1.0.1 扩展到 12 人。
2.5 版本与 DOI 双口径
PTB-XL+ 存在两个 PhysioNet 版本、三个 DOI 口径,引用时必须按版本取:
| 版本 | 发布日 | DOI | RRID |
|---|---|---|---|
| v1.0.0 | 2023-04-24 | 10.13026/m5qc-8m53 | RRID:SCR_007345 |
| v1.0.1 | 2023-06-27 | 10.13026/g6h6-7g88 | RRID:SCR_007345 |
| latest(指向最新版) | — | 10.13026/nqsf-pc74 | RRID:SCR_007345 |
Aalborg University 研究门户在登记 1.0.1 时同样记 doi:10.13026/g6h6-7g88,与 PhysioNet 一致。Sci Data 论文本身的 DOI 为 10.1038/s41597-023-02153-8。数据配套代码发布于 Zenodo(Mehari T, Strodthoff N,doi:10.5281/zenodo.7817567)。
§3 数据构成:打开 PTB-XL+ 会看到什么
3.1 目录结构总览
PTB-XL+ 在 PhysioNet 上的目录结构清晰,五大功能块:
<base>/
├── features/ # 三家算法的 ECG 特征 CSV
│ ├── 12sl_features.csv
│ ├── unig_features.csv
│ ├── ecgdeli_features.csv
│ └── feature_description.csv
├── fiducial_points/ # ECGDeli 基准点
│ └── ecgdeli/
├── labels/ # 诊断声明与本体映射
│ ├── 12sl_statements.csv
│ ├── ptbxl_statements.csv
│ ├── snomed_description.csv
│ └── mapping/
│ ├── 12slv23ToSNOMED.csv
│ ├── ptbxlToSNOMED.csv
│ └── apply_snomed_mapping.py
├── median_beats/ # 两家商业算法的中位心拍
│ ├── unig/
│ └── 12sl/
├── LICENSE.txt
├── RECORDS
└── SHA256SUMS.txt
文件体积:未压缩总计 2.0 GB,ZIP 压缩包 699.8 MB。其中 LICENSE.txt 14.5 KB、RECORDS 1.6 MB、SHA256SUMS.txt 41.2 MB。
3.2 ECG 特征(features/)
这是数据集的核心。三家算法各出一份 CSV,每行一条 ECG 记录,第一列是 PTB-XL 的 ecg_id,其后每列一个特征:
| 文件 | 提供方 | 内容特点 |
|---|---|---|
12sl_features.csv |
Marquette 12SL | ECG 特征 + 面积特征(另有同源中位心拍与自动诊断声明) |
unig_features.csv |
Uni-G | ECG 特征 + 面积特征 + 心电向量图(VCG)测量(I、aVF、V2 作准正交导联) |
ecgdeli_features.csv |
ECGDeli | 跨心拍中位数、四分位距、心拍计数 + 形态学特征(另有基准点) |
统一规范:幅度用 mV、间期用 ms。特征描述与 LOINC 映射见 feature_description.csv。
特征重叠度(论文 Descriptive statistics):
- 三集共有特征:13 个(导联特异特征只计一次);
- 至少两集共有特征:39 个。
所有三集共同覆盖的 ECG 特征类别包括:持续时间(durations)、振幅(amplitudes)、各段起止点(on/off-sets)。
3.3 中位心拍(median_beats/)
中位心拍(median beat)是商业算法的中间产物:把多个心拍对齐后取中位数,得到一条"干净"的代表性心搏,多数特征从中提取。PTB-XL+ 提供了两套:
median_beats/unig/(Uni-G 产出)median_beats/12sl/(12SL 产出)
格式:WFDB,16 bit 精度,分辨率 1 μV/LSB,采样频率 500 Hz。文件名包含对应的 PTB-XL ecg_id,因此可以像处理原始 PTB-XL 样本一样处理。
3.4 基准点(fiducial_points/)
ECGDeli 走的是另一条技术路线:先在信号上定位基准点(fiducial points,即 P 波、QRS、T 波等关键波形的起止时刻),再由基准点推导特征。其产物放在 fiducial_points/ecgdeli/,采用 WFDB 兼容的 annotation 文件格式,文件名以 ecg_id 开头、以相应导联结尾,包含导联特异性与跨导联共识两类注释。
3.5 诊断声明与本体映射(labels/)
这是 PTB-XL+ 相对其他特征库的独特价值所在。它同时提供自动声明(12SL)与人工标签(PTB-XL 原始),并用 SNOMED CT 作为公共本体桥接两者。
12SL 自动声明(12sl_statements.csv)分三层次:
statements:原始 12SL 语句的有序列表;statements_ext:拆分为主语句(primary)与支持语句(supportive),保留 AC/AU 限定符、移除 WITH/AND/OR,以 (value, certainty) 元组存储——这是基于 12SL 标签的默认预测标签集;statements_ext_SNOMED:映射到 SNOMED CT 并在层级中向上传播后的结果。
PTB-XL 人工标签(ptbxl_statements.csv)同样三层次:
scp_codes:原始 SCP 标注;scp_codes_ext:扩展集,含心轴及急性/陈旧性梗死阶段信息;scp_codes_ext_SNOMED:映射到 SNOMED CT 后的结果。
映射表:mapping/12slv23ToSNOMED.csv、mapping/ptbxlToSNOMED.csv,配套 Python 脚本 apply_snomed_mapping.py(用户可修改映射后重新应用)。snomed_description.csv 提供人类可读概念描述,并标注哪些列"适用于模型训练/评测"(剔除过于笼统或完全相关的声明)。
3.6 关键规模数字
| 指标 | 数值 | 来源 |
|---|---|---|
| ECG 记录数 | up to 21,799 | 论文 Descriptive statistics |
| 患者数 | 18,869 | 论文 |
| 三集共有特征 | 13 | 论文 |
| 至少两集共有特征 | 39 | 论文 |
| 12SL 自动声明总数 | 117 | 论文(图 4 展示前 40) |
| SNOMED 可直接比较术语 | 94 | 论文技术验证 |
| 映射后 SNOMED 编码数 | 168 | 论文表 5 相关 |
| 模型训练保留标签数 | 109 | 论文表 5 |
3.7 data_tags 与元数据定位
从数据治理视角,PTB-XL+ 属于"派生特征数据":它既不是原始信号(那是 PTB-XL 的范畴),也不是纯标签表,而是介于两者之间的结构化派生描述量。这决定了几条使用纪律:其特征必须通过 ecg_id 回溯到父数据集才能与波形关联;其声明与人工标签是两套独立来源,混用时必须声明口径(§10 坑 4)。
§4 技术验证:三方特征与标签对照的实证结果
PTB-XL+ 论文的一大特点是"带技术验证发布"——作者不仅给了数据,还系统评测了三套特征的质量与 12SL 声明的可靠性,并公开了源代码。这一节按论文的四个验证维度展开。
4.1 维度一:特征集间一致性
方法:以样本级 Pearson 相关系数比较同一记录在不同算法下的对应特征(仅限连续特征),对导联特异特征报告 12 个导联的平均值。
结论:
- 12SL vs Uni-G:所有共有全局特征一致性非常好;多数标准振幅与间期特征的相关系数 > 0.9。一致性最差的是 R’ 和 S’ 相关特征(涉及 QRS 切迹的判定分歧)。
- ECGDeli 对比:全局特征与多数间期特征一致性良好;T、R 振幅一致性"合理";S、P、Q 振幅一致性最差。
判读:两家商业算法(都基于"中位心拍 → 特征"路线)之间高度一致,说明其方法学趋同;开源 ECGDeli(基于基准点路线)差异更大,尤其在小振幅波(P 波、Q 波)上。
4.2 维度二:特征集判别力(随机森林)
方法:在三套特征上分别训练随机森林分类器,评估 7 个多标签预测任务,报告 PTB-XL 测试集上的 macro AUC。
| 特征来源 | 平均 macro AUC |
|---|---|
| Uni-G | 0.889 |
| 12SL | 0.871 |
| ECGDeli | 0.879 |
参考 CNN 基线(xresnet1d101,直接吃原始波形):
| 任务 | CNN macro AUC |
|---|---|
| all | 0.925 |
| diag(诊断) | 0.937 |
| sub-diag(亚诊断) | 0.929 |
| super-diag(超诊断) | 0.928 |
| form(形态) | 0.896 |
| rhythm(心律) | 0.957 |
关键结论:
- 在完整特征集上,Uni-G 最具判别力;
- 手工特征方法在综合任务(如 “all”)上无法达到 CNN 性能;
- 但 ECGDeli 在 rhythm(心律)类别上超越 CNN 基线(0.964 vs 0.957);
- 总体而言,Uni-G 与 12SL 特征质量相当且优于 ECGDeli(rhythm 类除外)。
判读:这组结果给"手工特征 vs 深度学习"之争提供了一个量化注脚——在心律识别这类依赖节律模式的任务上,好的手工特征仍可与端到端 CNN 比肩;但在需要综合诊断的任务上,端到端优势明显。
4.3 维度三:12SL 声明与人工标签的一致性
这是 PTB-XL+ 最具方法论意义的部分。方法:以 SNOMED CT 为公共本体,把 12SL 自动声明与 PTB-XL 人工标注映射到同一空间,得到 94 个可直接比较的 SNOMED CT 术语,用样本级 Matthews 相关系数(MCC) 分析。
结果:
- 所有术语的 MCC 中位数为 0.45;
- 一致性高(MCC > 0.8) 的类别:
- 心房颤动(atrial fibrillation):0.89
- 完全性左束支传导阻滞(complete LBBB):0.88
- 窦性心动过速(sinus tachycardia):0.88
- 基本无一致性:特定定位的心肌梗死等(如"前壁心梗""下壁心梗"这类需要精确定位的诊断)。
方法论含义(论文自陈):
- 12SL 声明与人工标签的不匹配可用来评估 PTB-XL 自身的标签质量;
- 可直接比较"训练在心脏科医生标注上的模型"与"训练在 12SL 自动声明上的模型"的性能。
判读:MCC 中位数 0.45 说明自动声明与人工标签只是中等一致——这既不是自动算法"错",也不是人工标签"错",而是两套体系(机器规则 vs 医生判读)在诊断边界上的系统性差异。对做标签噪声研究的团队,这是一份现成的对照样本。
4.4 维度四:模型训练实验(跨源标签)
方法:训练 xresnet1d50 分类模型。使用 PTB-XL 前 8 个分层折作训练集、第 9 折作验证集(早停选择)、第 10 折作测试集、报告 macro AUC;保留 109 个在各折中至少出现一次的标签。
| 训练标签集 | 训练标签来源 | 测试标签来源 | macro AUC |
|---|---|---|---|
| 12SL original | 12SL | 12SL | 0.956 |
| SNOMED CT | 12SL | 12SL | 0.939 |
| SNOMED CT | PTB-XL | PTB-XL | 0.912 |
| SNOMED CT | 12SL | PTB-XL | 0.867 |
| SNOMED CT | PTB-XL | 12SL | 0.867 |
映射到 SNOMED CT 后标签集缩减为 168 个 SNOMED CT 编码(去除近根节点与完全相关标签后)。
判读:同源自测(12SL→12SL)最高(0.956);同源自测(PTB-XL→PTB-XL)0.912;跨源迁移两者均降至 0.867——这一落差量化了"自动标签体系与人工标签体系之间的鸿沟",是 PTB-XL+ 强调"允许临床标签 vs 自动标签对照"的直接证据。
4.5 技术验证的边界
需要清醒认识到验证的边界(与本条目 §10 坑点呼应):
- Uni-G 无自动声明,声明对照只能用 12SL 单方,无法做三相交叉验证;
- 商业算法闭源,特征无法端到端复现,只能用其输出做一致性/判别力评估;
- ECGDeli 依赖 MATLAB,其"开源"名义下的实际可执行性受限,作者明确不背书其跨病理泛化性;
- 一致性评估仅覆盖连续特征(Pearson/MCC),分类性、离散性特征的质量未被同等评估。
§5 与父数据集 PTB-XL 的关系:父子衍生,非别名非重复
5.1 一句话定性
PTB-XL+ = PTB-XL 的官方特征扩展版。二者是父子衍生关系:PTB-XL 提供原始波形 + 人工标签;PTB-XL+ 在其上叠加三套特征 + 中位心拍 + 基准点 + 12SL 自动声明 + 本体映射。
5.2 对照表
| 维度 | PTB-XL(父,库内 rid 70) | PTB-XL+(子,本条目) |
|---|---|---|
| PhysioNet 路径 | /content/ptb-xl/1.0.3/ | /content/ptb-xl-plus/1.0.1/ |
| 核心内容 | 原始 12 导联波形 + SCP-ECG 人工标注 | 派生特征 + 中位心拍 + 基准点 + 自动声明 |
| 是否有波形 | 有(500 Hz/100 Hz) | 无(须回溯父集) |
| 是否有特征 | 无 | 有(三套协调格式) |
| 是否有自动声明 | 无 | 有(仅 12SL,117 条) |
| 是否有本体映射 | 有 SCP→其他标准(AHA/CDISC/DICOM) | 有 SCP/12SL→SNOMED CT + LOINC |
| 记录键 | ecg_id | ecg_id(同一套标识符) |
| 许可 | CC BY 4.0(v1.0.3) | CC BY 4.0 |
| 版本 | v1.0.3(2022-11-09) | v1.0.0 / v1.0.1 |
| DOI | 10.13026/kfzx-aw45 | g6h6-7g88 等 |
5.3 为什么这不是"伪新条目"
本库有明确的伪新条目防治方针(别名/版本后继/合并视图/臆造名四模式)。PTB-XL+ 不落入任何一种,理由:
- 不是别名:PTB-XL+ 与 PTB-XL 是 PhysioNet 上两个独立的项目页,各有独立 DOI、独立 RECORDS 清单、独立文件集;
- 不是简单的"版本后继":PTB-XL+ 不是 PTB-XL 的 v1.0.4 之类升级,而是内容类型不同的派生数据集(波形 vs 特征),二者应并存而非替代;
- 不是"合并视图":它不把 PTB-XL 与别的库合并,而是纯补充;
- 有官方一等公民身份:PTB-XL+ 有自己的 Sci Data 论文(10, 279)、独立 RRID、独立作者列表。
因此本条目与库内 ptb-xl(rid 70)应互为补充而非合并。使用者正确的心智模型是:波形看 PTB-XL,特征与声明看 PTB-XL+,两者用 ecg_id 对齐。
5.4 使用组合范式
一个典型的使用流程是:
1. 从 PTB-XL v1.0.3 下载 records500/ 原始波形(按 ecg_id)
2. 从 PTB-XL+ 下载 features/*.csv 三套特征
3. 按 ecg_id 左连接:波形 + 特征 + 中位心拍 + 12SL 声明 + 人工标签
4. 用 strat_fold(来自 PTB-XL)做按患者隔离的交叉验证
5. 分别训练"人工标签模型"与"12SL 声明模型",比较 macro AUC
这套组合正是 PTB-XL+ 论文所设想的目标场景。
§6 获取与许可:开放、无门槛、三法下载
6.1 许可
PTB-XL+ 采用 Creative Commons Attribution 4.0 International(CC BY 4.0) 许可。PhysioNet 标注为 Database Open Access(数据库开放访问)——任何人在遵守 CC BY 4.0 条款的前提下均可访问,无注册审批、无 gating、无请求制。
CC BY 4.0 的实务含义:
- 可以自由使用、复制、分发、改编(含商用);
- 必须署名(attribution)——引用时需给出数据集引用 + PhysioNet 标准引用;
- 无需获得额外许可;
- 建议保留许可声明。
6.2 三种获取方式
| 方式 | 命令/地址 |
|---|---|
| ZIP 打包下载 | https://physionet.org/content/ptb-xl-plus/get-zip/1.0.1/ |
| wget 递归下载 | wget -r -N -c -np https://physionet.org/files/ptb-xl-plus/1.0.1/ |
| AWS CLI(S3 开放桶) | aws s3 sync --no-sign-request s3://physionet-open/ptb-xl-plus/1.0.1/ DESTINATION |
6.3 可视化
PhysioNet 提供 LightWAVE 在线波形浏览器,可直接查看中位心拍:
https://physionet.org/lightwave/?db=ptb-xl-plus/1.0.1
6.4 文件完整性
下载后应用 SHA256SUMS.txt(41.2 MB)校验完整性;RECORDS(1.6 MB)列出全部文件清单。这是大文件传输的标准做法。
6.5 引用规范
使用 PTB-XL+ 需同时给出三组引用(PhysioNet 页面明确要求):
- 数据集引用(按版本):
Strodthoff, N., Mehari, T., Nagel, C., Aston, P., Sundar, A., Graff, C., Kanters, J., Haverkamp, W., Doessel, O., Loewe, A., Bär, M., & Schaeffter, T. (2023). PTB-XL+, a comprehensive electrocardiographic feature dataset (version 1.0.1). PhysioNet. RRID:SCR_007345. https://doi.org/10.13026/g6h6-7g88
- 原始论文:
Strodthoff, N., Mehari, T., Nagel, C. et al. (2023). PTB-XL+, a comprehensive electrocardiographic feature dataset. Sci Data 10, 279. https://doi.org/10.1038/s41597-023-02153-8
- PhysioNet 标准引用:
Pollard, T., Moody, B. E., Lehman, L., Gow, B., Fernandes, C., Xie, C., Johnson, A., Mark, R. G., & Heldt, T. (2026). PhysioNet as a global platform for biomedical research. Nature Health.
若使用了原始波形,还须引用 PTB-XL 父数据集论文(Wagner 等,Sci Data 7, 154, doi:10.1038/s41597-020-0495-6)。
6.6 伦理与合规
PTB-XL+ 是 PTB-XL 项目的衍生数据集,源数据的机构伦理委员会已批准其在开放访问数据库中发布(批件号 PTB-2020-1)。贡献者声明无利益冲突。用户侧无需额外伦理审批即可使用(CC BY 4.0 覆盖),但发表研究成果时应遵守署名要求并声明数据版本。
§7 生态与影响:一个"补全型"数据集的辐射面
7.1 定位:从波形库到参考数据集
PTB-XL 发布后迅速成为最大、最广泛使用的公开 12 导联临床心电数据集之一,覆盖广泛病症、信号质量多样、贴近真实世界。但正如 §0 所述,它作为"机器学习参考数据集"存在结构性缺口——没有派生描述量。PTB-XL+ 的使命就是把这个缺口补上。作者的核心判断是:释放这些特征会"决定性地提升" PTB-XL 的可用性,使其真正成为心电机器学习领域的参考数据集。
7.2 三重辐射
辐射一:可解释特征工程。手工特征在 ECG 分析中仍有不可替代的价值——它们编码了数十年的工程知识与领域经验,对领域专家内在可解释,是患者分层的极高效手段。PTB-XL+ 让研究者可以:直接比较深度模型的内部表征与这些特征(概念对齐/concept alignment);对比"手工特征训练"与"端到端训练"的模型;或构建二者结合的混合模型。
辐射二:临床标签 vs 自动标签的对照研究。12SL 声明的引入使两类模型可直接对比:训练在心脏科医生标注上的模型 vs 训练在 12SL 自动声明上的模型。论文的跨源实验(§4.4,跨源 macro AUC 0.867)为这一研究方向提供了第一批量化基线。
辐射三:跨库互操作。通过把特征映射到 LOINC、把声明映射到 SNOMED CT,PTB-XL+ 显著提升了与其他心电库的互操作性。这也是论文倡导的方法学立场:用公共本体(SNOMED CT)桥接按不同本体标注的数据集。
7.3 学术传播
PTB-XL+ 已被多类研究引用,典型场景包括:
- ECG 回归任务 ground truth:其提供的心率(HR)、PR 间期、QT 间期、QRS 复合波等参数值,被用作回归模型的监督信号。例如迁移学习研究(arXiv 2508.11656)明确将 PTB-XL Plus 用于回归任务与迁移学习实验,指出其相对原始 PTB-XL 的唯一区别就是回归标签,因此数据划分与输出格式与 PTB-XL 完全一致;
- 合成数据评估:用 PTB-XL+ 的特征作为临床验证参照,评估基于数字孪生/虚拟队列的合成心电数据集(如 DeepFake ECG 类工作)的统计保真度;
- 特征质量基准:作为"手工特征能做到多好"的公开基准。
7.4 数据获取的实用性
对工程团队而言,PTB-XL+ 的实用性还体现在:特征以 CSV 提供,任何标准软件均可读取;中位心拍与基准点以 WFDB 提供,C/MATLAB/Python 工具链均可便捷处理;自动声明同样以 CSV 提供。此外作者发布了技术验证实验的分类器训练代码作为探索起点(见 Zenodo 代码仓库)。
§8 方法学启示:三条可迁移的经验
8.1 经验一:把"不可得的商业产物"变成公共资产
PTB-XL+ 最有示范意义的做法,是它没有回避"商业特征不可得"这个现实,而是在受限条件下最大化公共价值:Uni-G 因使用限制不能给自动声明,那就给它的特征;12SL 能给的都给了。最终交付的是一个"每家的能力边界都被诚实标注"的集合,而不是一个假装完整的集合。这种"能力边界透明化"正是 AI-Ready 数据集应有的姿态。
8.2 经验二:本体映射是跨库互操作的前提
PTB-XL+ 投入了大量精力做 SNOMED CT/LOINC 映射,并提供可修改、可重新应用的映射脚本(apply_snomed_mapping.py)。这传递了一个方法论信号:数据集的长期价值,部分取决于它能否被其他数据集"读懂"。当不同库用不同本体标注时,公共本体就是通用语。
8.3 经验三:自动标签是一面照妖镜
把 12SL 声明与人工标签并列,看似只是多给一个标签集,实际上提供了一个双向的质检工具:既能评估自动算法的可靠性(MCC 表),也能反推人工标签自身的边界(哪些类别机器与医生都不一致?)。MCC 中位数 0.45 与"特定定位心梗近乎无一致性"这两个结果,对任何依赖此类标签的下游研究都是重要警示。
§9 与库内条目的关系
PTB-XL+ 在本库(千方病案医数集)的心电相关条目网络中处于"上游特征层"位置。互链点及其理由:
| 库内条目 | rid | 关系 |
|---|---|---|
| PTB-XL(ptb-xl) | 70 | 直接上游父数据集:波形与人工标签来源,ecg_id 对齐 |
| MIMIC-IV-ECG | 172 | 另一大规模院内 12 导联 ECG 波形库,互补对照 |
| OpenECG | 802 | 公开九中心 120 万条 12 导联基础模型基准,规模量级对照 |
| Leipzig Heart Center ECG | 910 | 儿童与先心病 12 导联+心内电图逐搏标注,人群对照 |
| Norwegian Athlete ECG | 1012 | 运动员静息心电双解读,正常/高动力心脏对照 |
| ECG-Image-Database | 959 | 心电图图像与数字波形成对库,格式维度对照 |
| Apnea-ECG | 658 | 同一 PhysioNet 生态的单导联/多导联睡眠心电库 |
| PhysioNet/CinC 2016 | 382 | 心音(PCG)挑战赛,生理信号同域不同模态 |
| PhysioNet/CinC 2017 | 162 | 单导联房颤分类挑战赛,单导联 vs 12 导联对照 |
关系定性:PTB-XL+ 与 PTB-XL(70)是父子衍生,不构成重复;与其他 ECG 条目是同域异库对照,各自在人群、导联数、标注体系、任务定义上不同。检索时若只看到"PTB-XL"字样而错过"+"号,可能误入父条目(坑 1)。
§10 避坑清单:十个已踩或易踩的坑
坑 1:把 PTB-XL+ 当成 PTB-XL 的别名或重复条目
最常见的错误。二者是 PhysioNet 上两个独立项目页、独立 DOI、独立文件集,PTB-XL+ 派生自 PTB-XL v1.0.3。库内 ptb-xl(rid 70)是父,本条目是子。检索时以 slug ptb-xl-plus 和项目页 /content/ptb-xl-plus/ 为准。忽略"+"号会直接撞进父条目。
坑 2:引用"21837 条记录 / 18885 患者"
这是流传最广的数字错误。21837 是文件编号(ecg_id)的最大值,不是记录总数——PTB-XL 在 v1.0.2/v1.0.3 中移除重复记录(36 条 + 2 条)后编号不连续。官方口径是 21799 条记录 / 18869 名患者。PTB-XL+ 论文写"up to 21799",用 up to 是因为个别算法可能处理失败。
坑 3:三个 DOI 混用
PTB-XL+ 有 v1.0.0 的 10.13026/m5qc-8m53、v1.0.1 的 10.13026/g6h6-7g88、以及 latest 的 10.13026/nqsf-pc74。引用时必须按实际使用的版本取对应 DOI,不能一律用 latest。v1.0.0 只署 3 位作者,v1.0.1 扩展到 12 位。
坑 4:混用两套标签而不声明口径
PTB-XL+ 同时给 12SL 自动声明(12sl_statements.csv)与 PTB-XL 人工标签(ptbxl_statements.csv)。两者来源不同、一致性仅中等(MCC 中位数 0.45)。任何下游研究若混用或跨源训练,必须显式声明用的是哪一套——否则结果不可解释(跨源 macro AUC 从 0.956 掉到 0.867 就是这个鸿沟的代价)。
坑 5:在 PTB-XL+ 里找原始波形
PTB-XL+ 是特征数据集,不含原始心电波形。要波形必须回溯父数据集 PTB-XL v1.0.3(records500/ 或 records100/)。把特征文件当波形用会彻底跑偏。
坑 6:以为 Uni-G 有自动诊断声明
Uni-G 不提供自动诊断声明(因使用限制),只有特征与中位心拍。全数据集只有 12SL 提供自动声明。做"自动 vs 人工"对照实验时无法三方交叉验证。
坑 7:以为 ECGDeli 是纯开源可自由运行
ECGDeli 代码开源,但依赖 MATLAB 专有运行时,其潜在用户范围受限。且作者明确声明"无法保证这些算法在广泛病理上的泛化性",并说明纳入全数据集特征是为完整性,不构成质量背书。
坑 8:把"三集共有 13 个特征"误读为"只有 13 个特征"
13 是三套特征集的交集大小(导联特异特征只计一次),不是任一集合的特征总数。论文未公开每个提供方的特征精确总数,本条目不做臆测。同理"39 个"是至少两集共有的数量。
坑 9:用 100 Hz 特征期望与 500 Hz 中位心拍对齐
中位心拍是 500 Hz(WFDB),而 PTB-XL 原始波形有 500 Hz 与 100 Hz 双版本。若下游按 100 Hz 处理波形再与 500 Hz 中位心拍/特征(时间单位为 ms)混用,需显式处理采样率,否则时间轴错位。
坑 10:忽略 SNOMED 映射的"剔除逻辑"
snomed_description.csv 会剔除过于笼统或完全相关的声明,映射并向上传播后标签集缩减为 168 个 SNOMED 编码。这意味着直接用映射后的 SNOMED 标签训练,标签粒度与原始 12SL 声明不同——117 条声明 → 168 个 SNOMED 编码并非简单一一对应,使用前须理解映射脚本的传播逻辑。
§11 总结
PTB-XL+ 是"补全型数据集"的范本:它不制造新数据,而是把 PTB-XL 缺失的"派生描述量"层补上,让一份优秀的波形库真正变成机器学习参考数据集。它的三重贡献是清晰的:
- 数据层:把两家商业算法(Uni-G、Marquette 12SL)与一套开源工具(ECGDeli)的 ECG 特征,协调到公共命名方案与单位(mV/ms),映射到 LOINC,连同中位心拍与基准点一并释放;
- 标签层:提供 12SL 自动诊断声明(117 条)的分层格式,并用 SNOMED CT 桥接自动声明与人工标签,首次允许"临床标签模型 vs 自动标签模型"的直接对照;
- 方法层:以公开源代码支撑四项技术验证(一致性、判别力、声明一致性、跨源训练),把"这些特征到底好不好用"从断言变成可复现的证据。
对使用者而言,记住三件事就够了:波形回父集、特征看本集、两套标签别混用。对研究者而言,PTB-XL+ 最深的启示或许是它诚实地暴露了自动标签与人工标签之间那道 0.867 vs 0.956 的鸿沟——这既是局限,也是它作为"标签质量研究基准"的最大价值。
FAQ(高频问答 32 问)
Q1:PTB-XL+ 是独立数据集还是 PTB-XL 的一部分?
独立的数据集(PhysioNet 独立项目页、独立 DOI、独立论文),但内容上派生自 PTB-XL v1.0.3,是父子衍生关系。
Q2:PTB-XL+ 有原始心电波形吗?
没有。只有特征、中位心拍、基准点与标签。波形须回溯 PTB-XL。
Q3:为什么叫 Plus?
因为它是在 PTB-XL 之上"加"了特征、中位心拍、基准点、自动声明与本体映射,是对基础版的增强扩展。
Q4:许可是什么,能商用吗?
CC BY 4.0,可自由使用、改编、商用,只需署名。
Q5:需要申请或审批吗?
不需要。开放访问,无 gating、无请求制,直接下载。
Q6:多大?
未压缩约 2.0 GB,ZIP 约 699.8 MB。
Q7:有几套特征?
三套:12SL、Uni-G、ECGDeli,各一个 CSV。
Q8:三套特征能直接互换吗?
作者已做命名协调与单位统一(mV/ms),尽可能可互换;但共有特征只有 13 个,并非全部对齐。
Q9:哪种特征最好用?
论判别力(随机森林 macro AUC),Uni-G 0.889 最高,ECGDeli 0.879,12SL 0.871。论心律任务,ECGDeli 0.964 甚至超过 CNN。
Q10:手工特征打得过 CNN 吗?
综合任务打不过(CNN all 0.925 vs 特征最高 0.889);心律任务 ECGDeli 可胜出。总体 CNN 仍有优势。
Q11:自动诊断声明有几个来源?
只有一个:Marquette 12SL。Uni-G 因使用限制不提供。
Q12:自动声明有多少条?
全库覆盖 117 条 statement。
Q13:SNOMED 映射后剩多少标签?
168 个 SNOMED CT 编码(剔除近根与完全相关项后)。
Q14:自动声明和人工标签一致吗?
中等一致。SNOMED 术语级 MCC 中位数 0.45;房颤 0.89、完全性 LBBB 0.88、窦速 0.88 最高;特定定位心梗近乎无一致性。
Q15:为什么自动声明与人工标签会不一致?
因为二者是两套体系:机器规则 vs 医生判读,在诊断边界(尤其需要精确定位的诊断)上系统性分歧。这不必然是谁"错"。
Q16:怎么做"自动 vs 人工"对照实验?
用 12SL 声明训练一个模型、用 PTB-XL 标签训练另一个,在同一测试集上比较。论文基线:同源 0.956,跨源 0.867。
Q17:中位心拍有几个版本?
两个:Uni-G 与 12SL 各一套,均为 WFDB 500 Hz。
Q18:基准点是谁给的?
ECGDeli,WFDB 兼容 annotation 格式。
Q19:特征单位和 PTB-XL 原始波形单位一致吗?
特征幅度 mV、间期 ms(时间量纲明确);原始波形是数字量(1 μV/LSB)。二者量纲不同,须按物理单位换算。
Q20:数据划分怎么做?
PTB-XL+ 不提供划分。用父数据集 PTB-XL 的 strat_fold(10 折,按患者分配):折 1-8 训练、折 9 验证、折 10 测试。
Q21:能用于端到端深度学习吗?
特征本身不能;但若回溯父集的波形,可做端到端。PTB-XL+ 的定位是特征层。
Q22:适合做什么任务?
可解释特征工程、概念对齐、特征 vs 深度模型对比、自动标签质量研究、回归任务(HR/PR/QT/QRS)。
Q23:为什么不直接采新数据?
因为目的是补全既有数据集,而非扩充样本;采新数据无法解决"特征缺失"这一结构问题。
Q24:有多少家机构参与?
Sci Data 论文署 11 家机构,作者 12 人。
Q25:最新版本是哪个?
v1.0.1(2023-06-27),扩展了作者表与描述。
Q26:有没有 HuggingFace 镜像?
本条目未确证官方 HF 上传;一手来源为 PhysioNet。引用与下载以 PhysioNet 为准。
Q27:PTB-XL 是单中心数据吗?
是。来自德国 PTB,1989-1996 采集。PTB-XL+ 的特征因此也是单中心口径,跨机构泛化性未验证。
Q28:可以用它训练诊断模型吗?
可以训练"基于特征"的诊断模型(论文已验证随机森林路线),但性能不及端到端 CNN。
Q29:CC BY 4.0 要引用哪些?
数据集引用(按版本)+ Sci Data 论文 + PhysioNet 标准引用;若用波形再加 PTB-XL 父论文。
Q30:特征能不能复现?
商业算法(Uni-G/12SL)闭源,无法端到端复现其特征,只能用其输出做评估。ECGDeli 代码开源但依赖 MATLAB。
Q31:和 MIMIC-IV-ECG 有什么区别?
MIMIC-IV-ECG 是另一套院内 12 导联波形库(不同来源、不同人群、不同规模);PTB-XL+ 是特征层,本体是 PTB-XL 派生。
Q32:这份数据最大的方法论价值是什么?
它把"自动标签 vs 人工标签"的差异量化并公开,使其成为标签质量研究的现成基准,也以公共本体映射示范了跨库互操作的正确做法。
事实清单(硬事实 36 条)
- 全称:PTB-XL+, a comprehensive electrocardiographic feature dataset。
- 本质:PTB-XL 基础数据集的官方特征扩展版。
- 覆盖:全量 PTB-XL,论文口径 up to 21799 records / 18869 patients。
- PTB-XL 官方口径:21799 条记录 / 18869 患者(v1.0.3)。
- 21837 是文件编号最大值,非记录总数。
- 特征提供方三家:Uni-G、Marquette 12SL、ECGDeli。
- Uni-G 属 University of Glasgow ECG Analysis Program(商业)。
- 12SL 属 GE Healthcare Marquette™ 12SL™(商业)。
- ECGDeli 为开源工具,依赖 MATLAB 运行时。
- 仅 12SL 提供自动诊断声明;Uni-G 因使用限制不提供。
- 特征单位统一为 mV(幅度)与 ms(间期)。
- 三集共有特征 13 个;至少两集共有 39 个。
- 特征文件:12sl_features.csv、unig_features.csv、ecgdeli_features.csv。
- 特征描述与 LOINC 映射见 feature_description.csv。
- 中位心拍两套:median_beats/unig、median_beats/12sl。
- 中位心拍规格:WFDB 16bit、1 μV/LSB、500 Hz。
- 基准点:fiducial_points/ecgdeli,WFDB 兼容 annotation。
- 12SL 声明三级:statements / statements_ext / statements_ext_SNOMED。
- PTB-XL 标签三级:scp_codes / scp_codes_ext / scp_codes_ext_SNOMED。
- 12SL 自动声明全库覆盖 117 条 statement。
- SNOMED 可直接比较术语 94 个。
- 映射后 SNOMED 编码 168 个。
- 模型训练保留标签 109 个。
- 特征判别力(随机森林 macro AUC):Uni-G 0.889、12SL 0.871、ECGDeli 0.879。
- CNN 基线(xresnet1d101):all 0.925、diag 0.937、rhythm 0.957。
- ECGDeli rhythm 0.964 > CNN rhythm 0.957。
- 12SL vs 人工标签的 MCC 中位数 0.45。
- MCC 最高:房颤 0.89、完全性 LBBB 0.88、窦速 0.88。
- 跨源训练 macro AUC:12SL→12SL 0.956;PTB-XL→PTB-XL 0.912;跨源均 0.867。
- 论文:Sci Data 10, 279(2023);doi:10.1038/s41597-023-02153-8。
- PhysioNet 版本:v1.0.0(2023-04-24)、v1.0.1(2023-06-27)。
- DOI:v1.0.0 m5qc-8m53;v1.0.1 g6h6-7g88;latest nqsf-pc74。
- 许可:CC BY 4.0,开放访问,无 gating。
- 体积:未压缩 2.0 GB,ZIP 699.8 MB。
- 代码仓库:Zenodo doi:10.5281/zenodo.7817567。
- RRID:SCR_007345;源数据伦理批件 PTB-2020-1。
术语表(30 条)
| 术语 | 英文 | 释义 |
|---|---|---|
| 心电特征 | ECG features | 从心电信号提取的定量描述量(幅度/间期/起止点等) |
| 手工特征 | handcrafted features | 由领域知识人工设计的特征,非模型自动学习 |
| 中位心拍 | median beat | 多个心拍对齐后逐点取中位数得到的代表性心搏 |
| 基准点 | fiducial points | 波形关键点(P/QRS/T 起止时刻)的定位 |
| 商用算法 | commercial algorithm | 闭源、部署于心电设备中的自动分析软件 |
| Uni-G | University of Glasgow ECG Analysis Program | 格拉斯哥大学心电分析程序,商业 |
| 12SL | Marquette 12SL | GE Healthcare 的自动心电分析算法 |
| ECGDeli | — | 开源 ECG 特征提取工具,依赖 MATLAB |
| 自动诊断声明 | automatic diagnostic statements | 算法而非医生给出的诊断语句 |
| SCP-ECG | Standard Communications Protocol for Computerized Electrocardiography | 心电计算机化标注标准 |
| SNOMED CT | Systematized Nomenclature of Medicine—Clinical Terms | 临床医学术语系统化命名法 |
| LOINC | Logical Observation Identifiers Names and Codes | 检验观测标识符标准 |
| 本体映射 | ontology mapping | 把不同标注体系对应到公共本体的过程 |
| 心电向量图 | vectorcardiogram (VCG) | 由多导联合成的心脏电活动三维向量环 |
| 主导联 | quasi-orthogonal leads | 用作准正交基的导联(如 I、aVF、V2) |
| 起止点 | onsets/offsets | 波形各段的起始与终止时刻 |
| macro AUC | macro-averaged AUC | 各标签 AUC 的不加权平均 |
| 随机森林 | random forest | 集成决策树分类器 |
| xresnet | — | 一维残差网络变体,常用于心电波形 |
| MCC | Matthews correlation coefficient | 马修斯相关系数,二分类不平衡下的稳健指标 |
| 超类 | superclass | 诊断语句的上位聚合类别(NORM/MI/STTC/CD/HYP) |
| NORM | normal ECG | 正常心电图 |
| MI | myocardial infarction | 心肌梗死 |
| STTC | ST/T change | ST 段/T 波改变 |
| CD | conduction disturbance | 传导障碍 |
| HYP | hypertrophy | 肥厚 |
| 分层折 | strat_fold | 按患者分组的交叉验证折 |
| 开放访问 | open access | 无门槛的公开数据访问政策 |
| CC BY 4.0 | Creative Commons Attribution 4.0 | 需署名的开放许可 |
| AI-Ready | AI-ready dataset | 结构完善、可直接用于 AI 训练/评测的数据集 |
附录
附录 A:条目信息速查卡
| 项 | 值 |
|---|---|
| slug | ptb-xl-plus |
| 全称 | PTB-XL+, a comprehensive electrocardiographic feature dataset |
| 父数据集 | PTB-XL v1.0.3(库内 rid 70) |
| PhysioNet | /content/ptb-xl-plus/1.0.1/ |
| 论文 | Sci Data 10, 279 (2023), doi:10.1038/s41597-023-02153-8 |
| 许可 | CC BY 4.0 |
| 规模 | up to 21799 记录 / 18869 患者 |
| 特征源 | Uni-G / 12SL / ECGDeli |
| 提取日期 | 2026-10-12 |
附录 B:DAIMS 评估全表
DAIMS(Data and Analytics Infrastructure Maturity Standard)24 项评估:
| # | 维度 | 评估 | 说明 |
|---|---|---|---|
| 1 | 数据可发现性 | 5/5 | PhysioNet 独立项目页 + DOI + RRID |
| 2 | 持久标识符 | 5/5 | 三个 DOI(按版本)+ RRID |
| 3 | 元数据完整性 | 5/5 | feature_description.csv 含 LOINC 映射 |
| 4 | 许可明确性 | 5/5 | CC BY 4.0,LICENSE.txt 随包 |
| 5 | 访问开放性 | 5/5 | 开放访问,无 gating |
| 6 | 文档质量 | 5/5 | PhysioNet 页 + Sci Data 论文双文档 |
| 7 | 引用规范 | 5/5 | 数据集+论文+PhysioNet 三引用 |
| 8 | 版本管理 | 5/5 | v1.0.0/v1.0.1 + 版本历史 |
| 9 | 数据来源溯源 | 5/5 | 明确派生自 PTB-XL v1.0.3 |
| 10 | 数据字典 | 4/5 | 特征有描述表,但每提供方特征总数未公开 |
| 11 | 标签体系 | 5/5 | 双层标签 + SNOMED/LOINC 映射 |
| 12 | 本体互操作 | 5/5 | SNOMED CT + LOINC 双本体 |
| 13 | 质量验证 | 5/5 | 四项技术验证 + 开源代码 |
| 14 | 可复现性 | 3/5 | 商业算法闭源,特征不可端到端复现 |
| 15 | 偏差声明 | 4/5 | 单中心来源未做专门偏差声明 |
| 16 | 伦理合规 | 5/5 | 伦理批件 PTB-2020-1 |
| 17 | 隐私保护 | 5/5 | 派生特征,无直接标识 |
| 18 | 完整性校验 | 5/5 | SHA256SUMS.txt |
| 19 | 格式标准 | 5/5 | CSV + WFDB 双标准格式 |
| 20 | 规模充分性 | 5/5 | 2 万+ 记录 |
| 21 | 类别覆盖 | 4/5 | 五超类广泛,但少数类样本稀少 |
| 22 | 跨源对照 | 5/5 | 自动声明 vs 人工标签 |
| 23 | 生态活跃度 | 4/5 | 已有下游研究引用 |
| 24 | 长期维护 | 4/5 | PhysioNet 托管,版本已冻结 |
DAIMS 总分:112/120(93.3%)
附录 C:PTB-XL+ 与 PTB-XL 关系声明
本条目与库内 ptb-xl(rid 70)为父子衍生关系,非别名、非版本后继、非合并视图。检索与互链时须区分:波形与人工标签 → ptb-xl;特征、中位心拍、基准点与自动声明 → ptb-xl-plus。二者用 ecg_id 对齐。
附录 D:三套特征来源对照表
| 提供方 | 类型 | 特征 | 中位心拍 | 基准点 | 自动声明 |
|---|---|---|---|---|---|
| Uni-G | 商业 | ✔(含 VCG 测量) | ✔ | ✘ | ✘ |
| 12SL | 商业 | ✔(含面积特征) | ✔ | ✘ | ✔(117 条) |
| ECGDeli | 开源(MATLAB) | ✔(含形态学) | ✘ | ✔ | ✘ |
附录 E:特征类别速查
| 类别 | 说明 | 覆盖提供方 |
|---|---|---|
| 幅度(amplitudes) | P/Q/R/S/T 波振幅,mV | 三家 |
| 间期(intervals) | PR/QRS/QT 等,ms | 三家 |
| 起止点(on/off-sets) | 波形段起止时刻 | 三家 |
| 心率与心轴(rate/axis) | 心率、电轴 | Uni-G、12SL |
| 面积(areas) | 波形面积积分 | Uni-G、12SL |
| 心电向量图(VCG) | 三维向量测量 | Uni-G |
| 形态学(morphology) | 波形形态特征 | ECGDeli |
附录 F:常见任务与推荐特征源
| 任务 | 推荐源 | 理由 |
|---|---|---|
| 通用诊断分类 | Uni-G | macro AUC 最高 0.889 |
| 心律分类 | ECGDeli | rhythm 0.964 超 CNN |
| 需要自动声明 | 12SL | 唯一提供方 |
| 需要 VCG 测量 | Uni-G | 独有 |
| 需要基准点 | ECGDeli | 独有 |
附录 G:与父数据集联合使用的最小骨架(代码)
import pandas as pd
# 1. 载入 PTB-XL+ 特征与标签
feat_12sl = pd.read_csv("ptb-xl-plus/1.0.1/features/12sl_features.csv")
feat_unig = pd.read_csv("ptb-xl-plus/1.0.1/features/unig_features.csv")
labels_12sl = pd.read_csv("ptb-xl-plus/1.0.1/labels/12sl_statements.csv")
labels_ptbxl = pd.read_csv("ptb-xl-plus/1.0.1/labels/ptbxl_statements.csv")
# 2. 载入 PTB-XL 元数据(含 strat_fold 与人工 scp_codes)
meta = pd.read_csv("ptb-xl/1.0.3/ptbxl_database.csv")
meta["scp_codes"] = meta["scp_codes"].apply(eval)
# 3. 按 ecg_id 左连接
merged = (meta.merge(feat_12sl, on="ecg_id", how="left")
.merge(feat_unig, on="ecg_id", how="left")
.merge(labels_12sl, on="ecg_id", how="left"))
# 4. 按患者隔离划分(strat_fold)
train = merged[merged["strat_fold"] <= 8]
val = merged[merged["strat_fold"] == 9]
test = merged[merged["strat_fold"] == 10]
附录 H:CC BY 4.0 义务清单
- 署名数据集作者与标题(按版本);
- 提供 DOI 链接;
- 标明是否做了修改;
- 引用 Sci Data 论文与 PhysioNet 标准引用;
- 商业使用无需另行授权。
附录 I:双口径登记表
| 项目 | 口径 A | 口径 B | 采用 |
|---|---|---|---|
| 记录数 | 21799(官方) | 21837(编号最大值) | 21799 |
| 患者数 | 18869(官方) | 18885(旧口径) | 18869 |
| DOI | m5qc-8m53(v1.0.0) | g6h6-7g88(v1.0.1) | 按版本取 |
| 论文年份 | 2023 | 2023 | 2023 |
| rhythm 最优 | ECGDeli 0.964 | CNN 0.957 | 两者并列陈述 |
附录 J:坑点档案(与 §10 对照)
| 编号 | 坑 | 一句话对策 |
|---|---|---|
| 1 | 别名/重复误判 | 以 slug 与项目页为准 |
| 2 | 记录数错引 | 用 21799/18869 |
| 3 | DOI 混用 | 按版本取 DOI |
| 4 | 两套标签混用 | 显式声明口径 |
| 5 | 找波形 | 回溯 PTB-XL |
| 6 | 以为 Uni-G 有声明 | 只有 12SL 有 |
| 7 | 以为 ECGDeli 自由运行 | 依赖 MATLAB |
| 8 | 误读"共有 13 特征" | 交集非总数 |
| 9 | 采样率错位 | 中位心拍为 500 Hz |
| 10 | 忽略 SNOMED 剔除逻辑 | 先理解映射脚本 |
附录 K:缩写速查
| 缩写 | 全称 |
|---|---|
| ECG | Electrocardiogram(心电图) |
| Uni-G | University of Glasgow ECG Analysis Program |
| 12SL | Marquette 12SL |
| VCG | Vectorcardiogram(心电向量图) |
| SCP | Standard Communications Protocol |
| SNOMED CT | Systematized Nomenclature of Medicine—Clinical Terms |
| LOINC | Logical Observation Identifiers Names and Codes |
| MCC | Matthews Correlation Coefficient |
| AUC | Area Under the ROC Curve |
| WFDB | WaveForm DataBase |
| NORM/MI/STTC/CD/HYP | 五诊断超类(见术语表) |
附录 L:本条目生产档案
| 项 | 值 |
|---|---|
| 代理 | agent-b-ptbxlplus |
| 生产日期 | 2026-10-12 |
| 一手来源 | PhysioNet 项目页 + Sci Data 论文(PMC10183020)+ Aalborg 门户 |
| 三源互证 | PhysioNet / Sci Data / AAU 数据门户 |
| 定稿版本依据 | PhysioNet v1.0.1 |
| 库内查重 | url_name ILIKE ‘%ptb%xl%’ 命中 ptb-xl(70),判定为父数据集 |
附录 M:检索关键词建议
- 数据集本体:
PTB-XL+、ptb-xl-plus、PTB-XL plus ECG feature dataset - 父数据集:
PTB-XL、ptb-xl、Wagner PTB-XL Sci Data 7 154 - 特征算法:
Uni-G ECG、Marquette 12SL、ECGDeli - 本体:
SNOMED CT ECG、LOINC ECG features - 作者:
Strodthoff、Mehari、Schaeffter
附录 N:基于本数据集的研究检查清单(10 项)
- 明确使用特征源(Uni-G / 12SL / ECGDeli)并声明;
- 明确标签口径(12SL 声明 or PTB-XL 人工);
- 用 ecg_id 与父集波形对齐并核对采样率;
- 采用 strat_fold 做按患者隔离的交叉验证;
- 注意单中心来源的泛化性局限;
- 分类不平衡时用 AUC/MCC 而非准确率;
- 跨源训练时报告同源与跨源双结果;
- 遵守 CC BY 4.0 署名义务;
- 引用按版本取 DOI;
- 若用 SNOMED 映射标签,先理解剔除与传播逻辑。
尾注
- PhysioNet. PTB-XL+, a comprehensive electrocardiographic feature dataset (v1.0.1). https://physionet.org/content/ptb-xl-plus/1.0.1/ (访问日 2026-10-12)
- Strodthoff, N., Mehari, T., Nagel, C. et al. PTB-XL+, a comprehensive electrocardiographic feature dataset. Scientific Data 10, 279 (2023). doi:10.1038/s41597-023-02153-8(PMC10183020)
- PhysioNet. PTB-XL, a large publicly available electrocardiography dataset (v1.0.3). https://physionet.org/content/ptb-xl/1.0.3/ (访问日 2026-10-12)
- Wagner, P., Strodthoff, N., Bousseljot, R.-D. et al. PTB-XL: A Large Publicly Available ECG Dataset. Scientific Data 7, 154 (2020). doi:10.1038/s41597-020-0495-6
- Aalborg University Research Portal. PTB-XL+, a comprehensive electrocardiographic feature dataset (2023). https://vbn.aau.dk/ (访问日 2026-10-12)
- Mehari, T., & Strodthoff, N. Source code for PTB-XL+. Zenodo. doi:10.5281/zenodo.7817567
- PhysioNet. DOI 注册信息:v1.0.0 10.13026/m5qc-8m53;v1.0.1 10.13026/g6h6-7g88;latest 10.13026/nqsf-pc74
附录 O:三方特征提供方深度解剖
O.1 Uni-G(University of Glasgow ECG Analysis Program)
Uni-G 是英国格拉斯哥大学开发的心电自动分析程序,属商业闭源算法,部署于全球数百万台心电设备。其处理流程是经典的"三段式":
- 中位心拍计算:将多个心拍对齐后逐点取中位数,抑制噪声、得到代表性心搏;
- 特征提取:从中位心拍上测量幅度、间期、起止点、面积等;
- 诊断预测:基于特征套用决策规则,输出诊断语句。
PTB-XL+ 中 Uni-G 的贡献:全套 ECG 特征 + 中位心拍。特别地,它是三者中唯一提供心电向量图(VCG)测量的算法——以 I、aVF、V2 作为准正交导联合成三维心电向量,衍生出向量环的方向、幅度、旋转方向等测量。这在评估心脏电活动的空间分布时具有独特价值。
限制:Uni-G 不提供自动诊断声明(因使用限制),因此 PTB-XL+ 无法用它做声明对照。
O.2 Marquette 12SL(GE Healthcare)
12SL 是 GE Healthcare 的 Marquette 系列算法,同样是商业闭源、全球数百万设备部署。其处理路线与 Uni-G 类似(中位心拍 → 特征 → 诊断),但 PTB-XL+ 中它承担了两个独特角色:
- 提供自动诊断声明——数据集里唯一的声明来源,覆盖 117 条 statement;
- 提供面积特征——对波形段(尤其 QRS 复合波)做面积积分。
12SL 的决策规则可从《Physician’s Manual》公开获取(这是它相对 Uni-G 的开放之处),使它成为"可追溯决策逻辑"的商业算法样本。其声明分三个处理层次(原始 / 扩展 / SNOMED 映射),是 PTB-XL+ 方法学设计最精巧的部分。
O.3 ECGDeli
ECGDeli 是与前两者路线不同的开源工具。它的处理顺序是"先定位基准点、再推导特征":
- 基准点检测:在原始信号上标出 P 波、QRS、T 波等的起止时刻(fiducial points);
- 逐心拍特征:直接对每个心拍计算形态学特征;
- 跨心拍统计:仅报告跨心拍的中位数、四分位距(IQR)与参与计算的心拍总数。
PTB-XL+ 中 ECGDeli 的贡献:特征(含形态学)+ 基准点。它是唯一提供基准点的算法,因此对需要波形定位的下游任务是必需的。
限制:ECGDeli 虽开源,但依赖 MATLAB 专有运行时,潜在用户范围受限;作者明确声明"无法保证算法在广泛病理上的泛化性",纳入全数据集特征仅为完整性。
O.4 三方能力矩阵
| 能力 | Uni-G | 12SL | ECGDeli |
|---|---|---|---|
| ECG 特征 | ✔ | ✔ | ✔ |
| 面积特征 | ✔ | ✔ | ✘ |
| VCG 测量 | ✔ | ✘ | ✘ |
| 形态学特征 | 部分 | 部分 | ✔ |
| 中位心拍 | ✔ | ✔ | ✘ |
| 基准点 | ✘ | ✘ | ✔ |
| 自动诊断声明 | ✘ | ✔(117 条) | ✘ |
| 采样率 | 500 Hz | 500 Hz | 原始信号率 |
| 开源 | ✘ | ✘ | 代码开源(MATLAB 依赖) |
附录 P:特征协调与单位换算细则
P.1 命名协调
三套算法原始命名各异(各家设备厂商的内部字段名)。PTB-XL+ 把它们映射到公共命名方案,使同一临床概念在三套特征中可对应。协调后的共有特征以导联为单位组织(如某导联的 R 波振幅),因此"三集共有 13 个特征"是导联特异特征只计一次后的计数。
P.2 单位规范
| 量纲 | 单位 | 说明 |
|---|---|---|
| 幅度 | mV | 直接与临床读值一致 |
| 间期 | ms | 毫秒 |
| 心率 | bpm | 次/分 |
| 电轴 | 度(°) | 额面电轴 |
原始波形的数字量是 1 μV/LSB,换算到 mV 需乘 0.001。特征文件已用物理单位,勿再乘系数。
P.3 LOINC 映射表结构
feature_description.csv 每行描述一个特征,含名称、简述、单位与(如有)对应的 LOINC ID。LOINC ID 是跨库对齐特征语义的钥匙——当你要把 PTB-XL+ 的某特征与另一库的同名特征对齐时,应以 LOINC 而非字面名称为准。
P.4 缺失值处理
商业算法可能对个别记录无法输出某些特征(信号质量差、伪迹严重)。使用时应检查各列的缺失率,对高缺失列做显式处理,而非默认填零。缺失本身可能携带"信号质量差"的信息。
附录 Q:SNOMED CT 映射的机制与陷阱
Q.1 映射三层结构
12SL 原始 statements
↓ 拆分 primary/supportive,移 WITH/AND/OR,保留 AC/AU 限定符
statements_ext(默认 ML 标签集)
↓ 按 12slv23ToSNOMED.csv 映射
statements_ext_SNOMED
↓ 向上传播(子概念 → 祖先概念)
SNOMED 层级化标签
Q.2 为什么映射后标签数会变
原始 12SL 声明覆盖 117 条 statement;映射到 SNOMED 并剔除近根节点、完全相关项后,缩减为 168 个 SNOMED CT 编码。这不是简单一一对应:多个 12SL 声明可能映射到同一 SNOMED 概念,一个 SNOMED 概念也可能经向上传播吸收多个下游声明。因此标签粒度与原始声明不同。
Q.3 使用陷阱
- 向上传播会丢失精确定位信息:特定定位的心梗(前壁/下壁)经传播可能归并到上位概念,定位细节消失;
- 剔除逻辑不可见即用:
snomed_description.csv里标记的"informative"标识符决定了哪些列可用于训练,跳过这一步可能引入过笼统的标签; - 映射可变:作者提供
apply_snomed_mapping.py,鼓励用户按需修改映射后重跑。若你改了映射,务必声明你的标签集与官方不同。
附录 R:最小复现——四项技术验证的路线
R.1 特征一致性(Pearson)
- 从
features/*.csv读入两套特征; - 按 ecg_id 对齐;
- 取连续型共有特征,对导联特异特征先在 12 导联内取平均;
- 逐特征算 Pearson r;
- 对照论文:12SL vs Uni-G 多数 > 0.9,R’/S’ 最差。
R.2 判别力(随机森林 macro AUC)
- 载入特征 + PTB-XL 标签(按 7 个任务集:all/diag/sub-diag/super-diag/form/rhythm);
- 按 strat_fold 划分:1-8 训练、9 验证、10 测试;
- 每套特征训练一个随机森林;
- 测试集算 macro AUC;
- 对照论文:Uni-G 0.889 / 12SL 0.871 / ECGDeli 0.879。
R.3 声明一致性(MCC)
- 把 12SL 声明与 PTB-XL 人工标签都映射到 SNOMED;
- 取 94 个可直接比较术语;
- 逐术语在样本级算 MCC;
- 对照论文:中位数 0.45;房颤 0.89、完全性 LBBB 0.88、窦速 0.88 最高。
R.4 跨源训练(xresnet1d50)
- 需要原始波形 → 必须回溯父数据集 PTB-XL v1.0.3;
- 四组实验:12SL→12SL、PTB-XL→PTB-XL、12SL→PTB-XL、PTB-XL→12SL;
- 保留 109 个标签(各折至少出现一次);
- 对照论文:0.956 / 0.912 / 0.867 / 0.867。
附录 S:与其他心电数据集的横向对照
| 数据集 | 记录规模 | 导联 | 人工标签 | 派生特征 | 自动声明 | 获取 |
|---|---|---|---|---|---|---|
| PTB-XL | 21799 | 12 | ✔ SCP | ✘ | ✘ | PhysioNet 开放 |
| PTB-XL+ | 21799 | 12 | ✔(对照) | ✔ 三套 | ✔ 12SL | PhysioNet 开放 |
| MIMIC-IV-ECG | 80 万+ | 12 | 部分 | ✘ | ✘ | PhysioNet 凭证访问 |
| OpenECG | 120 万 | 12 | ✘ | ✘ | ✘ | 开放(基础模型基准) |
| Leipzig Heart Center ECG | 逐搏标注 | 12+心内 | ✔ | ✘ | ✘ | 申请制 |
| Norwegian Athlete ECG | 双解读 | 12 | ✔(双医生) | ✘ | ✘ | 开放 |
| CPSC-2018 | 6877 | 12 | ✔ | ✘ | ✘ | 挑战赛 |
| CinC 2017 | 8528 | 单导联 | ✔ | ✘ | ✘ | PhysioNet 开放 |
核心差异:PTB-XL+ 的独特性不在波形,而在"派生特征 + 自动声明 + 本体映射"这一层。凡是想做特征工程、概念对齐、自动标签质量研究的工作,它是现成的对照。
附录 T:典型研究场景与选型建议
T.1 可解释心电模型
选 PTB-XL+ 三套特征,训练可解释分类器(如随机森林 + 特征重要性),并与人标签对照。优势:特征本身对领域专家可解释;可直接观察哪些特征驱动了诊断。
T.2 深度模型 vs 特征模型
回溯父集波形训练 CNN,同时在 PTB-XL+ 特征上训练浅层模型,比较二者。论文基线:CNN all 0.925,特征最高 0.889。
T.3 标签噪声与自动标签研究
用 12SL 声明训练一个模型,用人工标签训练另一个,在相同测试集比较。跨源落差(0.956 → 0.867)量化了标签体系差异。
T.4 ECG 回归任务
PTB-XL+ 提供心率、PR、QT、QRS 等参数值,可作为回归监督(迁移学习研究常用)。
T.5 本体映射与跨库互操作
借 PTB-XL+ 的 SNOMED/LOINC 映射研究跨数据集标签对齐,或把其映射方案迁移到其他心电库。
附录 U:数据质量核查清单
- 各特征 CSV 是否以 ecg_id 全覆盖 21799 条?(部分算法可能缺少数记录)
- 各列缺失率,尤其 ECGDeli 的跨心拍统计列;
- 单位是否统一到 mV/ms(勿重复换算);
- 12SL 声明的三层次是否按需选用(默认用 statements_ext);
- SNOMED 映射是否用了官方脚本、是否记录了剔除项;
- 中位心拍为 500 Hz,若下游用 100 Hz 波形须处理采样率;
- strat_fold 是否按患者隔离(同一患者不得跨折);
- 类别不平衡下用 AUC/MCC 而非准确率;
- 引用了正确版本对应的 DOI;
- 遵守 CC BY 4.0 署名。
附录 V:常见误用剧场
误用一:直接拿特征 CSV 当波形输入 CNN。→ 特征不是时间序列,无法端到端;须回溯父集波形。
误用二:把 12SL 声明当作"金标准"训练,再用它评测模型并宣称超过人类。→ 声明与人工标签仅中等一致(MCC 中位 0.45),不能当金标准。
误用三:用 21799 与文献的 21837 混引,导致样本量对不上。→ 统一用 21799(编号最大值 ≠ 记录数)。
误用四:忽略单中心来源,把结论外推到所有人群。→ PTB-XL 为德国单中心 1989-1996 数据,跨机构泛化未验证。
误用五:跨源训练后只报一个数字,不区分同源/跨源。→ 必须双报(如 0.956 vs 0.867),否则掩盖标签体系差异。
误用六:以为三套特征可完全互换。→ 共有特征仅 13 个,缺哪个特征取决于来源。
附录 W:许可与引用规范细读
W.1 CC BY 4.0 义务
PTB-XL+ 采用 CC BY 4.0。要点:
- 可自由复制、分发、改编、商用;
- 必须署名(给出数据集作者、标题、来源、许可);
- 必须标明是否修改;
- 不得附加额外法律限制。
W.2 三组引用
论文页面明确要求同时引用:数据集(按版本)、Sci Data 论文、PhysioNet 标准引用。用波形时再加 PTB-XL 父论文。
W.3 版本选择
引用时给出所用版本(1.0.0 或 1.0.1)及对应 DOI。混用 latest DOI 会导致读者无法确定你用的是哪一版。
附录 X:本条目生产档案与三源互证
| 项 | 内容 |
|---|---|
| 代理 | agent-b-ptbxlplus |
| 生产日期 | 2026-10-12 |
| 一手来源一 | PhysioNet 项目页 /content/ptb-xl-plus/1.0.1/ |
| 一手来源二 | Sci Data 10, 279(PMC10183020) |
| 一手来源三 | Aalborg University 研究门户数据集登记 |
| 交叉源 | 父数据集 PhysioNet /content/ptb-xl/1.0.3/ |
| 三源互证结论 | 名称、规模、许可、DOI、作者、三方算法一致 |
| 库内查重 | url_name ILIKE ‘%ptb%xl%’ → 命中 ptb-xl(70),判定为父数据集,本条目为扩展版 |
X.1 三源数字一致性表
| 事实 | PhysioNet | Sci Data 论文 | AAU 门户 |
|---|---|---|---|
| 记录数 | up to 21799 | up to 21799 | — |
| 患者数 | 18869 | 18869 | — |
| 三方算法 | Uni-G/12SL/ECGDeli | 同 | 同 |
| 12SL 声明 | 117 条 | 117 条 | — |
| 许可 | CC BY 4.0 | — | — |
| DOI v1.0.1 | g6h6-7g88 | — | g6h6-7g88 |
X.2 遗留疑点
- 每提供方特征精确总数未公开(论文只给重叠数 13/39);
- Sci Data 论文正文未列自身卷号,卷号 10/279 由 PMC 与 PhysioNet 页面互证;
- HuggingFace 无官方镜像确证,一手来源仅 PhysioNet;
- 特征文件对个别记录的实际覆盖率未在页面明示(论文用 “up to”)。
附录 Y:FAIR / AI-Ready 检查单
| 原则 | 状态 | 说明 |
|---|---|---|
| F1 可发现(有标识符) | ✔ | DOI + RRID |
| F2 可访问(标准协议) | ✔ | HTTP/HTTPS、S3 |
| F3 元数据可解析 | ✔ | 描述表 + LOINC |
| F4 可注册索引 | ✔ | PhysioNet 索引 |
| A1 可获取 | ✔ | 开放访问 |
| A2 长期保存 | ✔ | PhysioNet 托管 |
| I1 用共享本体 | ✔ | SNOMED CT / LOINC |
| I2 跨库互操作 | ✔ | 公共命名方案 |
| R1.1 许可明确 | ✔ | CC BY 4.0 |
| R1.2 来源溯源 | ✔ | 派生自 PTB-XL v1.0.3 |
| R1.3 符合领域标准 | ✔ | WFDB / CSV |
附录 Z:缩写速查(补)
| 缩写 | 全称 | 中文 |
|---|---|---|
| IQR | interquartile range | 四分位距 |
| VCG | vectorcardiogram | 心电向量图 |
| PR | PR interval | PR 间期 |
| QT | QT interval | QT 间期 |
| QRS | QRS complex | QRS 复合波 |
| HR | heart rate | 心率 |
| AUC | area under the ROC curve | ROC 曲线下面积 |
| ML | machine learning | 机器学习 |
| ECG | electrocardiogram | 心电图 |
| WFDB | WaveForm DataBase | 波形数据库格式 |
附录 AA:基于本数据集的研究检查清单(12 项)
- 声明使用的特征来源(Uni-G / 12SL / ECGDeli);
- 声明标签口径(12SL 声明 or PTB-XL 人工);
- 用 ecg_id 与父集波形对齐,核对采样率;
- strat_fold 按患者隔离;
- 报告缺失率与处理方式;
- 分类不平衡时用 AUC / MCC;
- 跨源训练双报同源与跨源结果;
- 单中心局限写入 limitations;
- 若用 SNOMED 标签,说明剔除与传播逻辑;
- CC BY 4.0 署名;
- 引用按版本取 DOI;
- 记录数据版本与访问日期。
附录 AB:检索路径示范
| 目标 | 关键词组合 |
|---|---|
| 官方页 | site:physionet.org ptb-xl-plus |
| 论文 | Strodthoff PTB-XL+ Sci Data 2023 |
| 特征算法 | "Marquette 12SL" ECG features |
| 本体 | SNOMED CT ECG statement mapping |
| 父数据集 | PTB-XL Wagner Sci Data 2020 154 |
| HF 镜像 | hf-mirror.com PTB-XL-plus |
| 下游用法 | "PTB-XL Plus" regression transfer learning |
附录 AC:与父数据集 PTB-XL 的联合下载清单
| 文件 | 来源 | 用途 |
|---|---|---|
| ptbxl_database.csv | PTB-XL v1.0.3 | 元数据、strat_fold、scp_codes |
| records500/ | PTB-XL v1.0.3 | 500 Hz 原始波形(端到端) |
| records100/ | PTB-XL v1.0.3 | 100 Hz 原始波形(轻量) |
| features/12sl_features.csv | PTB-XL+ | 12SL 特征 |
| features/unig_features.csv | PTB-XL+ | Uni-G 特征 |
| features/ecgdeli_features.csv | PTB-XL+ | ECGDeli 特征 |
| median_beats/ | PTB-XL+ | 中位心拍 |
| fiducial_points/ecgdeli/ | PTB-XL+ | 基准点 |
| labels/12sl_statements.csv | PTB-XL+ | 12SL 自动声明 |
| labels/ptbxl_statements.csv | PTB-XL+ | 人工标签对照 |
| labels/mapping/ | PTB-XL+ | SNOMED 映射 |
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- code-ii — 共享标签:生理信号 / 心电信号 / 心血管疾病 / 评测基准 / 真实世界数据
- mit-bih-arrhythmia — 共享标签:生理信号 / 心电信号 / 心血管疾病 / 评测基准 / 时序数据
- chapman-shaoxing — 共享标签:生理信号 / 心电信号 / 心血管疾病 / 评测基准 / 时序数据
- fantasia — 共享标签:生理信号 / 心电信号 / 心血管疾病 / 时序数据
- shanghai-t1dm-t2dm-cgm — 共享标签:生理信号 / 评测基准 / 时序数据 / 真实世界数据
- ptb-xl — 共享标签:生理信号 / 心电信号 / 心血管疾病 / 时序数据
- code-15 — 共享标签:生理信号 / 心电信号 / 心血管疾病 / 时序数据
- code-test — 共享标签:生理信号 / 心电信号 / 心血管疾病 / 评测基准
- ecg-arrhythmia — 共享标签:生理信号 / 心电信号 / 心血管疾病 / 评测基准
- ecg-fragment-high-risk-label — 共享标签:生理信号 / 心电信号 / 心血管疾病 / 评测基准
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

