MIT-BIH AFDB — 房颤长时程心电数据库 AI-Ready Wikipedia | 千方病案医数集

房颤检测算法的开山基准 · 25 例 × 10 小时双导联 ECG · 免认证开放

来源 MIT & Beth Israel Hospital(PhysioNet) url: https://physionet.org/content/afdb/发布时间: 2026-09-06最后更新: 2026-09-06 阅读 14

信息速览

数据集名称MIT-BIH AFDB — 房颤长时程心电数据库 AI-Ready Wikipedia | 千方病案医数集
数据类型25 例 × 10 小时长程记录,250 Hz / 12-bit 双导联,约 440MB(ZIP),人工节律注释,免认证直接下载,ODC-By 1.0
规模25 名房颤患者
接入方式MIT & Beth Israel Hospital(PhysioNet) url: https://physionet.org/content/afdb/
AI 就绪度

数据集封面

MIT-BIH AFDB — 房颤长时程心电基准数据库 AI-Ready Wikipedia


INFOBOX

数据集名称 MIT-BIH Atrial Fibrillation Database
英文全称 MIT-BIH Atrial Fibrillation Database
别名/简称 AFDB、MIT-BIH AFDB、afdb、MIT-BIH 房颤数据库
疾病分类 ICD-11:BC81.3 心房颤动 / BC81.2 心房扑动;交界性心律归入 BC81.Z 室上性快速性心律失常(详见 §2.1)
SNOMED CT 49436004 Atrial fibrillation / 5370000 Atrial flutter / 282825002 Paroxysmal atrial fibrillation(详见 §2.2)
数据模态 时序(双导联 ECG 长时程波形 + 节律/心拍注释)
AI 任务类型 节律分类(AFIB/AFL/J/N)、房颤事件检测(episode 起止点)、心拍级信号分类、时序分割、穿戴设备房颤筛查预训练
样本总数 25 例记录(23 例含双通道信号;00735/03665 仅注释),每例约 10 小时,合计约 255–260 小时、约 128 万心拍
数据大小 ~439.7 MB(官方 ZIP)/ ~605.9 MB(解压后)
数据格式 WFDB:format 212 信号(.dat)+ 文本头文件(.hea)+ 节律注释(.atr)+ 心拍注释(.qrs / .qrsc)
许可证 Open Data Commons Attribution License v1.0(ODC-By 1.0,须署名)
访问级别 开放(无需注册、无需 CITI 培训,可直接 wget / AWS S3 免签名下载)
DUO 标签 GRU(通用研究用途;ODC-By 1.0 要求署名)
语言 英文(注释符号与文档)
首发日期 1983(原始录制与论文)/ 2000-11-04(PhysioNet 完整信号公开)
最后更新 2014-03(07859 注释对齐修复,v1.0.0 冻结至今)
发布机构 MIT(George B. Moody & Roger G. Mark)/ PhysioNet
官方主页 https://physionet.org/content/afdb/
下载地址 https://physionet.org/content/afdb/1.0.0/ (或 s3://physionet-open/afdb/1.0.0/)
DOI 10.13026/C2MW2D(数据集);原论文:Computers in Cardiology 10:227-230 (1983)
引用次数 700+(Google Scholar,截至 2026-09,量级估计——该 1983 年会议论文未被 OpenAlex/Semantic Scholar 系统索引,详见 §8.6)
AI 就绪度评分 ⭐⭐⭐⭐(4/5)— 免认证开放 + WFDB 标准格式 + wfdb-python 成熟工具链 + 40 年基准可比文献;扣分项:仅 25 例、无官方划分、注释怪癖多、无患者人口学信息
页面状态 published

§0 E-E-A-T 信任声明与免责声明

医学审核者:千方病案医学编辑部交叉审核:§2 医学背景(ICD-11 与 SNOMED CT 映射、房颤临床任务定义、金标准描述)、§7 偏倚分析。

数据工程审核者:千方病案医学编辑部交叉审核:§4 DAIMS 数据字典(WFDB 文件族、注释符号体系)、§5 数据划分策略、§6 预处理 Pipeline 和坑点。

审核日期:2026-09-05

审核方式:交叉审核

利益冲突声明:千方病案医数集与 MIT、PhysioNet、Beth Israel Deaconess Medical Center 无任何商业利益关联。本页面不销售 MIT-BIH AFDB 数据集本身(该数据集为 ODC-By 1.0 免费开放数据),仅提供 AI 就绪指南与学术信息服务。编辑者未接受 MIT 或 PhysioNet 的任何形式资助。

医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。

技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。

数据使用合规:MIT-BIH AFDB 采用 ODC-By 1.0 许可——可自由使用、修改与再分发,但必须署名(引用 Moody & Mark 1983 原论文及 PhysioNet 平台,见 §9)。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。


§1 数据集概览

§1.0 30 秒速览

MIT-BIH 房颤数据库(AFDB) 是 MIT 的 George Moody 与 Roger Mark 于 1983 年在波士顿贝斯以色列医院录制、2000 年经 PhysioNet 完整公开的房颤心电数据集:25 名房颤患者(多为阵发性)每人约 10 小时的双导联动态心电(Holter)记录,250 Hz 采样,配套人工标注的节律起止注释(房颤/房扑/交界律/其他)与逐心拍位置注释。

它的历史地位独一无二:这是世界上第一个公开的房颤专用心电数据库,也是房颤自动检测算法 40 年来的事实标准考场。Moody & Mark 1983 年基于它提出的 RR 间期马尔可夫模型开创了"只看心跳间隔就能检测房颤"的技术路线——今天 Apple Watch、AliveCor Kardia 等穿戴设备上的房颤筛查算法,学术血缘都可追溯到这套方法。几乎所有 RR 间期派生的房颤检测论文都在 AFDB 上报告性能,不同年代的方法因此可以同场对比。

你可以用它来:基准测试一个新的房颤/房扑检测算法(并与 40 年文献直接比较)、研究房颤发作与终止的精确时刻(人工标注的 episode 边界)、训练穿戴设备单导联房颤分类器(作为预训练集)、或者作为教学数据集带学生入门生理信号处理。它是 ODC-By 1.0 完全开放数据,无需注册即可下载。

§1.1 摘要

AFDB 包含 25 例长期 ECG 记录,每例名义时长 10 小时(实测约 10 小时 13.7 分、9,205,760 个采样点;06453 提前约 45 分钟结束)。其中 23 例包含双通道 ECG 信号(.dat 文件,WFDB format 212,12-bit、±10 mV 量程);00735 与 03665 两例仅含注释文件而无信号。模拟原始记录采集于波士顿贝斯以色列医院(今 BIDMC),典型带宽约 0.1–40 Hz。注释分两层:人工准备的节律注释(.atr:AFIB 房颤 / AFL 房扑 / J 房室交界律 / N 其他一切节律),以及自动检测器生成、未经人工校正的心拍注释(.qrs,部分记录另有人工校正版 .qrsc)。全库约 623–652 个节律片段、约 255–260 小时、约 128 万心拍,其中房颤时间约 95 小时(占 37%)。房颤负担谱极宽——从 05091 全记录仅 43 秒房颤(0.24%)到 07162 与 07859 的 100% 持续房颤——这使 AFDB 天然适合评估算法在"大海捞针"与"永不终止"两个极端下的表现。数据集自 2014 年 3 月(07859 注释对齐修复)后冻结为 v1.0.0,许可证为 ODC-By 1.0,免认证开放下载。

§1.2 战略价值分析

范式开创维度:AFDB 与 Moody & Mark 1983 论文共同确立了"基于 RR 间期不规则性检测房颤"这一影响深远的技术范式。由于房颤时心房电活动混乱、体表 ECG 上 P 波往往不可见,最鲁棒的自动检测策略不是找波形,而是分析心室反应的间期序列——短(S)/规律(R)/长(L)三态马尔可夫转移概率打分,这一 1983 年的打分矩阵后来被多篇美国专利(如 US7596405)原文引用,成为商用 Holter 与植入式设备房颤检测模块的理论源头之一。AFDB 是该范式的配套"标准答案":人工标注的节律起止点让算法第一次有了可复现的评测对象。

基准连续性维度:在医疗 AI 领域,能让 1983 年的马尔可夫模型、2001 年的 K-S 检验、2015 年的符号动力学、2018 年的 LSTM、2026 年的穿戴设备 2D-CNN 在同一个数据集、同一套标签上报告的,只有 AFDB。这种 40 年的纵向可比性在快速迭代的深度学习时代近乎绝版——它让你能回答"深度学习到底比统计方法强多少"这个元问题(答案在 §8.1:在 AFDB 内部口径约 1-2 个百分点,跨库口径差距才真正拉开)。

生态上游维度:AFDB 是 2017 年 PhysioNet/CinC 房颤分类挑战赛(AliveCor 单导联数据,75 支团队)众多参赛方案的预训练与增广来源,也是 LTAFDB(84 例 24 小时)跨库评测协议的固定测试集。理解 AFDB 的标注体系与怪癖,是进入整个 PhysioNet 心电生态的必修课;它的 (AFIB/(AFL/(J/(N 标签体系与 MIT-BIH Arrhythmia Database 完全兼容。

§1.3 横向对比

数据集 记录数 单条时长 采样率 人群 核心差异化
MIT-BIH AFDB 25(23 含信号) ~10 h 250 Hz 全部为房颤患者(多为阵发性) 房颤检测开山基准;人工 episode 级节律注释;免认证开放
LTAFDB(Long-Term AF) 84 ~24 h 128 Hz 房颤患者(含持续性) 规模最大的长程房颤库;跨库协议的标准训练集
MIT-BIH Arrhythmia DB 48 ~30 min 360 Hz 混合心律失常 心拍级 15 类标注,AAMI 标准评测场
MIT-BIH NSRDB 18 ~24 h 128 Hz 健康窦律对照 提供"非房颤"对照臂
CinC 2017 Challenge 8,528(公开训练集) 9-60 s 300 Hz AliveCor 单导联用户 移动端短片段四分类(N/AF/O/Noisy)
AFPDB(PAF Prediction) 100 对(53 对公开) 30 min 128 Hz 阵发房颤 + 对照 面向"发作前预测"而非检测

AFDB 的不可替代性不在规模(25 例远小于当代数据集),而在三点:episode 级人工节律注释的精确起止点(LTAFDB 虽大但注释粒度同为节律级,AFDB 的历史引用密度最高)、40 年纵向可比文献链、以及免认证 ODC-By 开放(LTAFDB 同样开放,但 MIT-BIH Arrhythmia DB 的部分衍生研究生态以 AFDB 为房颤参照系)。

§1.4 版本演进时间轴

时间 事件
约 1983 在波士顿贝斯以色列医院用动态心电记录仪完成 25 例 10 小时双导联模拟录制(9 轨磁带)
1983 Moody & Mark 发表 “A new method for detecting atrial fibrillation using R-R intervals”(Computers in Cardiology 10:227-230),以该库 260 小时数据评测马尔可夫模型
1992-07-30 多数 .atr 节律注释文件定稿(文件时间戳)
2000-02-12 05121 注释更新(个别记录的注释维护)
2000-11-04 PhysioNet 完整公开:此前仅 04936 一条信号可用;原始 9 轨磁带重新读取,数字化出全部 23 例信号文件,v1.0.0 发布
2000-11 发布说明记录:04043(第 39 块)、08405、08434 存在磁带不可读块,各以 10.24 秒零幅值段替换
2014-03 Henian Xia 报告 07859 的 .qrs 与波形错位(开头缺 2,569 样本);原文件更名 07859.qrs-,重新对齐版上线,并新增人工审核的 07859.qrsc
2017 PhysioNet/CinC 房颤分类挑战赛举行(AliveCor 数据);AFDB 被广泛用作预训练集,形成"AFDB 预训练 + Challenge 微调"的经典配方
2026 ECGBench 等社区项目对 155 个发布文件完成 SHA256 校验并重算节律统计(255 h / 623 片段口径),数据集本体保持 v1.0.0 冻结

§1.5 典型 AI 应用场景

  1. 房颤/房扑检测算法基准:在 25 例、约 255 小时、episode 级人工标签上报告 Se/Sp/Acc,与 40 年文献同口径比较——这是 AFDB 的第一用途。
  2. 房颤起止点(onset/offset)精确定位研究:人工标注的节律边界支持评估算法对发作开始与终止时刻的时间误差,这是负担估算与"发作前预测"研究的基础。
  3. 对 QRS 误检鲁棒的检测方法研究:未校正的 .qrs 注释保留了真实自动检测器的误差分布,是"临床流水线鲁棒性"研究的天然实验场(官方明确推荐此用途)。
  4. 穿戴设备房颤筛查的预训练:250 Hz 双导联长程记录可重采样、加噪后模拟单导联穿戴场景;2017 CinC Challenge 多个获奖方案用 AFDB 预训练。
  5. 生理信号处理教学:WFDB 格式、注释体系、RR 间期分析(Poincaré 图、熵、符号动力学)的最经典教学数据集。

§2 医学背景

§2.1 ICD-11 疾病分类锚定

AFDB 面向心房颤动(房颤, AF)及其相邻室上性节律。四类注释标签到 ICD-11 的映射:

AFDB 标签 中文名称 ICD-11 对应 说明
AFIB 心房颤动 BC81.3 心房颤动 库内核心节律,约 95 小时(37%)
AFL 心房扑动 BC81.2 心房扑动(含典型/非典型) 约 1.6-2.0 小时(<1%),14-40 个片段
J 房室交界性心律 BC81.Z 室上性快速性心律失常(未特指,交界性心律无一对一 ICD-11 编码) 约 5.4 小时(2%),仅见于 4 例记录
N 其他所有节律 正常窦性心律(BA00 等心搏节律正常类目)及 PAC/PVC/传导异常等其他节律的混合 注意:N 是"排除法"标签,不等于纯窦律(见 §6.5 坑点 6)

ICD-10 桥接:I48.0 阵发性房颤 / I48.1 持续性房颤 / I48.2 慢性房颤 / I48.3 典型房扑 / I48.91 未特指房颤。AFDB 以阵发性房颤(paroxysmal AF)为主体(25 例中 14 例负担在 5%-95% 区间),兼有 3 例接近持续的房颤与 8 例极低负担(<5%)记录。

§2.2 SNOMED CT 映射

AFDB 标签 ICD-10 ICD-11 SNOMED CT SNOMED CT 术语
AFIB I48.91 BC81.3 49436004 Atrial fibrillation (disorder)
AFIB(阵发表型) I48.0 BC81.3(伴阵发限定) 282825002 Paroxysmal atrial fibrillation (disorder)
AFL I48.3 / I48.4 BC81.2 5370000 Atrial flutter (disorder)
AFIB+AFL 合并口径 I48 BC81.2/BC81.3 195080001 Atrial fibrillation and flutter (disorder)
J I49.8(其他特指心律失常) BC81.Z —(Junctional rhythm 相关概念存在多个候选编码,本库未指定,写作与建模时建议直接保留 (J 原标签)

§2.3 疾病简介

心房颤动是最常见的持续性心律失常:心房以每分钟 350-600 次的频率混乱除极,P 波消失、代之以不规则颤动波(f 波),心室反应"绝对不齐"。其核心危害是卒中——房颤使缺血性卒中风险升高约 5 倍(心房血栓脱落栓塞),并与心力衰竭、认知下降和全因死亡显著相关。房颤的临床挑战在于阵发性:早期患者发作短暂且常无症状("无症状房颤"占比可观),常规 10 秒静息心电图极易漏诊,这正是长时程 Holter 监测与穿戴设备筛查的临床价值所在——也是 AFDB 这类"长记录 + 精确起止标注"数据集存在的根本理由。

§2.4 临床任务定义

AI 任务 临床定义 标准参考 在 AFDB 中的操作化
房颤检测(detection) 判断一段 ECG/RR 序列是否处于房颤 ACC/AHA/ESC 房颤定义(不协调心房除极 + 不规则室反应) 以 .atr 的 (AFIB 区间为金标准,按窗口/心拍对齐标签
房颤负荷估算(burden) 房颤时间占总监测时间的比例 临床指南中负担与治疗决策相关 Σ(AFIB 片段时长) / 记录总时长;AFDB 负担谱 0.24%-100%
起止点定位(onset/offset) 发作开始与终止的精确时刻 episode 边界误差(秒级) .atr 状态切换点即人工标注边界
房扑鉴别 AFIB vs AFL 区分(治疗路径不同:房扑可消融根治) f 波 vs F 波(锯齿)+ 室反应规律度 .atr 的 (AFL 标签(样本量小,14-40 片段)
节律四分类 AFIB/AFL/J/N 片段级分类 .atr 四类标签直接支持

§2.5 患者人群特征

维度 特征
数据来源 单中心:波士顿贝斯以色列医院(Beth Israel Hospital,现 Beth Israel Deaconess Medical Center)
采集时间 约 1983 年(论文发表当年);2000 年由原始 9 轨磁带重新数字化
人群构成 25 名房颤患者,以阵发性房颤为主(“mostly paroxysmal”,官方描述)
选择标准 按"存在间歇性房颤"(intermittent AF)从 Holter 记录中筛选(Moody & Mark 1983 原文)
人口学信息 未发布——无年龄、性别、身高、体重、用药、合并症等任何临床元数据
负担分布(ECGBench 重算口径) 极低负担 <5%:8 例(00735/04015/04048/04126/05091/05261/06453/08434);阵发区间 5%-95%:14 例;近持续 ≥95%:3 例(06426/07162/07859)
对照组 ——25 例全部患有房颤,库内不存在非房颤人群(特异度外推的根本限制,见 §7.1)

§2.6 金标准/参考标准

标注层 产生方式 标注者 金标准性质
节律注释(.atr) 人工标注:逐片段标记 AFIB/AFL/J/N 及其起止点 Moody & Mark 团队(MIT/Beth Israel),1992 年定稿;后与 MIT-BIH Arrhythmia DB 标签体系统一 房颤检测文献 40 年的参考标准;片段边界为专家判读,存在个体判读尺度差异
心拍注释(.qrs) 自动 QRS 检测器生成,未经人工校正 自动算法 保留真实检测误差——官方定位为"鲁棒性研究"用途,不建议当作心拍真值用于 AF 生理研究
心拍注释(.qrsc) 人工校正版 人工审核(07859 于 2014 年补做) 仅部分记录可用(如 05091、07859);AF 基础研究的首选心拍来源
心拍类型 不存在:.qrs/.qrsc 中所有心拍均标记为正常,不区分室性/室上性早搏

脱敏与数据边界:记录名为纯数字编号,无人口学与临床字段;这既是隐私保护,也意味着无法做任何人口学分层与公平性分析(见 §7.4/§7.5)。


§3 数据集规格

§3.0 版本抉择矩阵

AFDB 本体只有一个版本(v1.0.0,2014 年修复后冻结)。真正的"选型"是在 AFDB 与其姊妹/下游数据集之间:

你的需求 推荐数据集 大小 理由
复现/对标房颤检测经典文献(1983-2026);需要人工 episode 边界;免认证快速开始 AFDB v1.0.0 ~440 MB(ZIP) 40 年可比文献链的唯一载体;ODC-By 开放,wget 即用
训练需要更大样本量的长程房颤检测模型 LTAFDB(84 例 × 24 h) ~2 GB 级 体量 3 倍以上;与 AFDB 构成"LTAFDB 训练 → AFDB 测试"标准跨库协议
心拍级心律失常分类(室早/室上早等 15 类) MIT-BIH Arrhythmia DB ~110 MB AFDB 心拍不分类;需心拍类型标签请用 MITDB
移动端/穿戴单导联短片段分类 CinC 2017 Challenge ~2 GB 8,528 条 30-60 s AliveCor 单导联片段 + 四分类标签(N/AF/O/Noisy);AFDB 作预训练
房颤"发作前预测"(prediction)而非检测 AFPDB / AF Termination DB AFDB 面向检测与起止点,不含发作前对照设计
需要患者人口学/临床协变量 均不满足 AFDB 与多数 PhysioNet 心电库均无人口学字段,需转向 MIMIC-IV-ECG 等临床波形库

一句话结论:做房颤检测基准与起止点研究 → AFDB;要规模 → 加 LTAFDB;要心拍类型 → MITDB;要移动端短片段 → CinC 2017。

§3.1 模态详细说明

AFDB 是生理时序信号数据集,每条记录包含三类 WFDB 构件:

  1. 双通道 ECG 波形(.dat,23 例有):format 212 编码(每 3 字节存 2 个 12-bit 样本),250 Hz,量程 ±10 mV,增益 200 ADC units/mV 量级(以 .hea 为准)。两条通道名为 ECG1 与 ECG2——发布资料未记载电极位置,与 MIT-BIH Arrhythmia DB 明确标注 MLII/V1 不同(见 §6.5 坑点 7)。每通道约 9,205,760 样本(06453 为 8,325,000)。
  2. 头文件(.hea):纯文本,含记录名、信号数、采样率、样本数、格式、增益、基线与 ADC 分辨率;部分记录注明起始时间(08378、08405 无起始时间)。
  3. 注释文件:.atr(人工节律注释,状态型——注释点携带 (AFIB/(AFL/(J/(N 的 aux_note,含义为"自此进入该节律");.qrs(自动心拍位置);.qrsc(人工校正心拍位置,部分记录)。

§3.2 样本量拆分

口径 数值 来源
记录总数 25 PhysioNet RECORDS
含信号记录 23(00735、03665 除外) PhysioNet 官方描述
单记录时长 名义 10 h;实测约 10 h 13.7 min(9,205,760 样本);06453 约 9 h 15 min(8,325,000 样本) ECGBench 逐 .hea 重算
总注释时长 254.73 h(ECGBench 重算)/ 260 h(文献沿用口径) ECGBench;Waterloo 课件汇总
节律片段总数 623(ECGBench)/ 652(沿用口径) 同上
心拍总数 约 1,282,369 Waterloo 汇总
房颤时长/片段 约 95 h(37.3%)/ 299-319 片段 ECGBench / 沿用口径
房扑时长/片段 约 1.6-2.0 h / 14-40 片段 同上
交界律时长/片段 约 5.4 h / 18 片段(仅 4 例记录) ECGBench
其他节律(N) 约 152.6-163.0 h(60%-63%) 同上

两套口径并存是 AFDB 文献的常态:623/255 h 是 2026 年对发布文件校验后的重算值,652/260 h 是 1983 论文以来的沿用值,差异主要来自 07859 修复与片段边界取整。引用时注明口径即可。

§3.3 数据格式详情

文件类型 格式 说明
信号 .dat(WFDB format 212) 12-bit 二补码,每 3 字节 2 样本;23 例 × 2 通道
头文件 .hea(文本) 采样率、增益、样本数、起始时间(部分缺失)
节律注释 .atr(WFDB 二进制注释) 状态型 aux_note:(N / (AFIB / (AFL / (J
心拍注释(自动) .qrs(WFDB 二进制注释) 自动检测器输出,未校正;symbol 均为 “N”(不区分类型)
心拍注释(人工校正) .qrsc 仅部分记录(05091、07859 等)
历史遗留 07859.qrs- 2014 年错位修复前的原始文件,仍在目录中流通
元文件 RECORDS / notes.txt / SHA256SUMS.txt 记录清单、逐条怪癖说明、校验和
旧注释 old/ 目录 原始 AF/AFL/J/N 标记的旧版注释(非 MITDB 统一风格)

§3.4 存储大小

形态 大小 备注
官方 ZIP ~439.7 MB PhysioNet 1.0.0 页面
解压后 ~605.9 MB 155 个文件
单条 .dat ~55 MB 2 通道 × 9,205,760 样本 × 12-bit
单记录 float32 内存 ~74 MB/通道 10 h 全载入内存时
下载命令带宽 分钟级 wget / AWS S3 免签名同步

§3.5 标注方式

AFDB 的标注为双层异构结构

ECG 波形(.dat,250 Hz)
   │
   ├─ 节律层(.atr,人工):状态机式标注
   │    "在样本 s 处进入节律 X"(X ∈ AFIB/AFL/J/N)
   │    → 两相邻注释点之间为同一节律片段(episode)
   │
   └─ 心拍层(.qrs 自动 / .qrsc 人工校正):事件式标注
        "在样本 s 处有一个 QRS 波群"(不分类)
        → 相邻心拍位置之差即 RR 间期序列

标注流程的历史细节:.atr 由 Moody & Mark 团队在 1983-1992 年间人工完成(1992-07-30 的文件时间戳),2000 年重发布时为与 MIT-BIH Arrhythmia Database 一致,将原 AF/AFL/J/N 标记改写为带括号前缀的 (AFIB/(AFL/(J/(N 形式;.qrs 由自动检测器生成并明确不做人工校正,官方在描述中直接给出使用分工——研究自动 AF 检测的鲁棒性用 .qrs,研究 AF 本身的生理学用 .qrsc。

§3.6 标注者资质

标注层 标注者 资质/一致性
节律注释 Moody & Mark 团队(MIT 计算生理学/生物医学工程背景,数据集创建者本人) 创建者自标——优点是判读标准 40 年一致,缺点是无多标注者一致性(kappa)报告,边界判读存在个体尺度
心拍校正(.qrsc) PhysioNet 团队人工审核(07859 于 2014 年由报告者 Henian Xia 触发补做) 单记录级质量事件有完整 changelog
自动心拍(.qrs) 自动 QRS 检测器(1980 年代算法水准) 误差率未量化发布;官方明确声明"未人工校正"

§3.7 数据采集时间范围

模拟录制完成于约 1983 年(论文发表当年);1992 年注释定稿;2000-11-04 由原始 9 轨磁带重新读取并完成数字化公开发布。从"录制"到"完全公开"跨度 17 年——这也是 AFDB 既有 1980 年代模拟采集特征(0.1-40 Hz 带宽、磁带坏块),又是现代 WFDB 标准格式的原因。

§3.8 地理覆盖

单中心:美国马萨诸塞州波士顿贝斯以色列医院(Beth Israel Hospital,现 Beth Israel Deaconess Medical Center)。25 例受试者的地域与人群构成无任何文档,泛化性讨论见 §7.3。

§3.9 采集设备规格

项目 规格 说明
记录设备 动态心电记录仪(ambulatory ECG / Holter recorder) 具体型号未发布
模拟带宽 约 0.1 Hz - 40 Hz 1980 年代 Holter 典型带宽;高频 f 波细节与 ST 段形态受带宽限制
存储介质 9 轨模拟磁带 2000 年重新读取数字化;个别块不可读(04043/08405/08434)
数字化 250 Hz、12-bit、±10 mV 2000 年由 PhysioNet 完成
导联 双通道,名称 ECG1/ECG2 电极位置未记载,不可假设 MLII/V1

§3.10 深度溯源链

环节 系统/方法 关键转换
1. 临床采集 贝斯以色列医院 Holter 动态心电记录 房颤患者(多为阵发)按"存在间歇性房颤"筛选,10 小时双导联模拟录制
2. 模拟存储 9 轨磁带 1983-2000 年长期保存;个别数据块物理损坏(04043 第 39 块、08405、08434)
3. 数字化 PhysioNet(2000-11-04) 磁带重读 → 250 Hz/12-bit WFDB format 212;不可读块以 10.24 秒零幅值段填充并在 notes.txt 登记
4. 节律标注 Moody & Mark 团队人工标注(1983-1992) AF/AFL/J/N → 2000 年改写为 MITDB 统一的 (AFIB/(AFL/(J/(N 前缀格式;原版留存 old/ 目录
5. 心拍标注 自动 QRS 检测器 全部记录生成 .qrs(未校正);部分记录人工校正为 .qrsc
6. 质量事件 社区反馈 → 官方修复 2014-03:07859 的 .qrs 错位(开头缺 2,569 样本)→ 原文件更名 .qrs-,重对齐版 + 人工审核 .qrsc 上线
7. 公开发布 PhysioNet,ODC-By 1.0 v1.0.0 冻结至今;DOI 10.13026/C2MW2D;AWS Open Data 同步

§4 数据结构详解

§4.0 目录结构预览

afdb/1.0.0/
├── RECORDS                    # 25 条记录名清单(含无信号的 00735/03665)
├── notes.txt                  # 逐条记录的怪癖说明(无信号/坏块/提前结束/无起始时间)
├── SHA256SUMS.txt             # 155 个发布文件的校验和
├── 04015.hea / 04015.atr / 04015.qrs / 04015.dat
├── 04043.hea / 04043.atr / 04043.qrs / 04043.dat   # 第 39 块磁带不可读 → 10.24 s 零段
├── 04048.* … 08455.*          # 其余记录同构(共 23 套含 .dat)
├── 00735.hea / 00735.atr / 00735.qrs               # ⚠️ 无 .dat(信号不可得)
├── 03665.hea / 03665.atr / 03665.qrs               # ⚠️ 无 .dat(信号不可得)
├── 05091.qrsc                 # 人工校正心拍注释(部分记录有)
├── 06453.dat                  # ⚠️ 约 9h15m 提前结束(8,325,000 样本)
├── 07859.qrs                  # 2014 年重对齐版(去掉前 14 条注释)
├── 07859.qrs-                 # ⚠️ 修复前的错位原版,仍在目录中
├── 07859.qrsc                 # 人工审核对齐版
├── 08378.hea / 08405.hea      # ⚠️ 无起始时间
└── old/                       # 1992 年原始注释(AF/AFL/J/N 无前缀旧格式)

§4.1 DAIMS 标准化字段描述表

头文件(.hea)核心字段

字段名 数据类型 说明 示例值 AI 用途 观测误差 信息性缺失编码 取值范围
record_name TEXT 记录标识(第一行首字段) “04936” 记录级主键 不允许缺失 25 个五位数编号
num_signals INTEGER 信号通道数 2 波形读取维度 无信号记录为 0 00735/03665 无信号段 0 或 2
sampling_frequency FLOAT 采样率(Hz) 250 时间轴换算 全库统一 不允许缺失 250
num_samples INTEGER 每通道样本数 9205760 时长计算;窗口边界 06453 为 8325000 正整数
signal_format TEXT WFDB 存储格式 “212” 解码方式 不允许缺失 “212”
adc_gain FLOAT ADC 增益 约 200(以各 .hea 为准) 物理单位(mV)换算 通道间可不同 正数
baseline_time TEXT 记录起始时间 “13:02:00” 昼夜节律分析 08378/08405 缺失 HH:MM:SS 或缺省

节律注释(.atr)核心字段(经 wfdb.rdann 读取后的属性)

字段名 数据类型 说明 示例值 AI 用途 观测误差 信息性缺失编码 取值范围
sample INTEGER 注释点样本索引 1054720 episode 边界定位 人工判读边界,秒级尺度 不允许缺失 0 ~ num_samples
symbol TEXT WFDB 注释符号 “(” 节律注释的类型标记 状态型语义 不允许缺失 “(” 等
aux_note TEXT 节律标签 “(AFIB” 金标准标签 人工判读;N 为排除法类别 无缺失;4 条记录首注释为 (AFIB(第 1 秒内) (N / (AFIB / (AFL / (J
chan INTEGER 关联通道 0 一般无分析意义 0-1

心拍注释(.qrs / .qrsc)核心字段

字段名 数据类型 说明 示例值 AI 用途 观测误差 信息性缺失编码 取值范围
sample INTEGER QRS 波群样本索引 38412 RR 间期序列 = diff(sample)/250 .qrs 含自动检测误差(误检/漏检) 未校正误差即"固有噪声" 0 ~ num_samples
symbol TEXT 心拍类型 “N” 无区分度 全部为 N,不区分早搏 类型信息不存在 “N”
source ENUM 文件来源 .qrs vs .qrsc 选择真值层 .qrsc 仅部分记录 .qrsc 缺失 = 该记录无人工校正版

§4.2 标签分布统计

节律标签 时长(ECGBench 口径) 占比 片段数 出现于记录数 建模要点
(N(其他一切节律) 152.55 h 59.89% 292 23 混合类别,非纯窦律
(AFIB(房颤) 95.13 h 37.34% 299 25(全部) 核心正类
(J(交界律) 5.42 h 2.13% 18 4 样本极少,建议合并或单列评估
(AFL(房扑) 1.63 h 0.64% 14 8 严重小类,四分类模型的瓶颈
  • 负担谱(每记录 AFIB 时间占比):0.24%(05091,43 秒)→ 100%(07162、07859);分层:<5% 8 例 / 5%-95% 14 例 / ≥95% 3 例。
  • 类别不平衡:按时间计 AFIB:N ≈ 1:1.6 尚温和,但 AFL 仅占 0.64%——做 AFL 鉴别时 F1 极不稳定,需要按 episode 而非按时间报告。
  • 心拍级口径:约 128 万心拍中约 53.2 万(41.5%)落在 AFIB 片段内(沿用口径)。

§4.3 关键字段描述性统计

  • 每记录平均节律片段数:623 / 25 ≈ 25 个;房颤片段平均时长 ≈ 95.13 h / 299 ≈ 19 分钟——房颤事件的"分钟级"尺度决定了检测窗口常取 12-128 个 RR 间期或 5-60 秒
  • RR 间期:250 Hz 下每样本 4 ms;心率 60 bpm 对应 250 样本的 RR;AF 时 RR 变异系数显著升高。
  • 信号有效位深 12-bit(4,096 级),量化步长 ≈ 20 mV / 4096 ≈ 4.88 µV。
  • 零幅值坏块:04043(第 39 块)、08405、08434 各含若干 10.24 秒(2,560 样本)全零段。

§4.4 数据层级关系

AFDB(25 条记录)
  └─ record(如 04936)
      ├─ .hea          元数据(采样率/通道/增益/起始时间)
      ├─ .dat          波形样本(9,205,760 × 2 通道)——00735/03665 无此层
      ├─ .atr          节律状态序列 → episode 划分 → 负担计算
      ├─ .qrs          自动心拍位置 → RR 间期序列(含检测误差)
      └─ .qrsc         人工校正心拍位置(部分记录)→ 高置信 RR 序列
  • 无患者-记录多对一问题:一记录 = 一患者(25 记录即 25 患者),患者级划分 = 记录级划分。
  • 窗口-片段对齐规则:长度为 L 的分析窗口,若其覆盖范围完全落在单一 episode 内 → 标签唯一;跨边界窗口 → 需按占比阈值(如 >50%)或剔除处理(见 §5.2 与 §6.5 坑点 5)。
  • 注释时间基准:.atr 与 .qrs/.qrsc 共用同一样本索引系(以 .dat 为准);00735/03665 的注释索引对应的原始信号未发布。

§4.5 缺失值情况与信息性缺失编码

缺失类型 位置 缺失原因 信息性缺失编码 对 AI 的影响
整段信号缺失 00735、03665 的 .dat 官方注明 “Signals unavailable” 结构性缺失(不可恢复) 遍历 RECORDS 读信号会报错;这两条只能用于注释级统计
块级零填充 04043(第 39 块)、08405、08434 1983 年磁带物理坏块 零幅值平坦段 = 缺失哨兵,每块 10.24 s 被误判为"信号消失/停搏";方差特征骤降,可能触发伪 AF 判读
记录提前结束 06453(约 9h15m) 录制终止 右截断 全长对齐批处理时最短记录决定窗口上限
起始时间缺失 08378、08405 元数据未记录 字段缺失 无法做绝对时刻/昼夜分析
心拍类型 全部 .qrs/.qrsc 设计上不分类 信息不存在(非缺失机制) 无法用 AFDB 做室早/室上早分析
人口学字段 全库 从未采集/未发布 结构性缺失 公平性与亚群分析不可能
.qrsc 覆盖不全 仅部分记录 人工校正成本高 可选增强层缺失 需退回 .qrs 或自运行 QRS 检测器

§5 数据划分与使用建议

§5.1 官方数据划分

AFDB 官方不提供任何 train/validation/test 划分。 40 年文献形成了三种事实标准:

  1. 全库自洽口径(1983-2015 年主流):在全 25 例上用留一记录交叉验证或全库拟合后报告表观性能——早期统计方法(K-S 检验、直方图法)的标准做法,数值普遍 Se 94%-97%。
  2. 记录级切分口径(深度学习时代):按记录划分训练/测试,如 Faust et al. 2018 的 20 例训练 / 3 例盲测(Se 99.87%);注意测试记录数极少时,单条 100% 持续房颤记录(如 07162)会主导指标
  3. 跨库协议(推荐):LTAFDB(84 例)训练 → AFDB 测试(Gadhoumi 2021、Zhou 2015、Andersen 2019 等采用的基准),数值最保守、最有临床说服力。

§5.2 推荐划分策略

  1. 按记录(=患者)分组划分:同一记录的窗口绝不可跨训练/测试两侧。25 例建议 15/5/5 或留 5 记录交叉验证。
  2. 负担分层抽样:按 §2.5 的三层负担(<5% / 5%-95% / ≥95%)分层,避免测试集被 3 条持续房颤记录主导。
  3. 边界窗口处理:跨 episode 边界的窗口,要么剔除,要么按 AFIB 占比 >50% 定标签并单独报告。
  4. 极端记录敏感性分析:报告去掉 07162/07859(100% AF)与 05091(0.24% AF)后的稳健性——这是审稿人针对 AFDB 的经典质疑点。
import numpy as np

records = ["04015","04043","04048","04126","04746","04908","04936","05091",
           "05121","05261","06426","06453","06995","07162","07859","07879",
           "07910","08215","08219","08378","08405","08434","08455"]  # 23 条含信号
rng = np.random.default_rng(42)
perm = rng.permutation(records)
train, val, test = perm[:13], perm[13:18], perm[18:]
assert set(train) & set(test) == set()  # 记录级零泄漏

§5.3 数据泄漏风险防御

# 泄漏模式 严重程度 防御措施
1 窗口随机划分——同记录相邻窗口分落两侧(AFDB 最致命) 按记录分组划分(GroupShuffleSplit / 显式记录清单)
2 用 .qrsc 精校心拍训练、用 .qrs 噪声心拍测试(或反之) 全文统一心拍来源并在方法学声明
3 在全库上调阈值/选窗口长度后再报告同库性能 中高 阈值与窗口在验证记录上调优,测试记录只评估一次
4 重采样/加噪增广发生在划分之前 先按记录划分,再对训练侧增广
5 用 LTAFDB 训练时混入与 AFDB 同源的记录 低(两库独立采集) 无需特殊处理,但应声明两库独立

§5.4 交叉验证建议

  • 小样本首选:留 5 记录交叉验证(5 折 × 每折 5 条记录,覆盖全库)或完全留一记录(LOSO,25 折)——后者方差大但最诚实,25 例规模下计算成本可承受。
  • 深度学习训练建议嵌套:外层记录级 CV 报性能,内层记录级 CV 调参。
  • 报告均值 ± 标准差之外,必须附逐记录性能表——AFDB 文献的核心透明度惯例。

§5.5 外部验证

AFDB 模型的标准外部验证路径:LTAFDB ↔ AFDB 双向跨库(84 例 24 h,128 Hz,需重采样对齐)、MIT-BIH Arrhythmia DB + NSRDB(房颤片段提取后做迁移)、CinC 2017(单导联移动端场景的终极检验)。跨库时三要素必须对齐:采样率(250 vs 128 vs 300 Hz)、标签语义(AFDB 的 (N 含非窦律)、窗口口径。实测跨库损失可达 10 个百分点(Andersen 2019:AFDB 内 97.8% → 未见 MITDB 87.4%,见 §7.8)。


§6 AI 就绪指南

§6.0 云端快速启动

零配置读数(PhysioNet 在线 ATM):不下载任何文件,直接在浏览器可视化任意记录的波形与注释:https://archive.physionet.org/cgi-bin/atm/ATM → 数据库选 afdb

wfdb-python 流式读取(免下载):wfdb 包支持直接从 PhysioNet 服务器读记录,10 行代码出图:

import wfdb
# 直接从 PhysioNet 云端读取 record 04936 的前 60 秒(不落盘)
record = wfdb.rdrecord("04936", sampfrom=0, sampto=250*60, pn_dir="afdb/1.0.0")
ann = wfdb.rdann("04936", "atr", sampfrom=0, sampto=250*60, pn_dir="afdb/1.0.0")
wfdb.plot_wfdb(record=record, annotation=ann, title="AFDB 04936 first 60s")

Colab 免费 CPU 即可运行;全库仅 440 MB,本地下载同样轻量。

§6.1 快速上手

# ========================================
# MIT-BIH AFDB 快速上手 — wfdb-python 版
# 环境要求: pip install wfdb numpy pandas
#
# ⚠️ 目录结构预期(本地下载方式):
#   wget -r -N -c -np https://physionet.org/files/afdb/1.0.0/
#   得到 ./physionet.org/files/afdb/1.0.0/ 目录,内含 25 组
#   {.hea/.dat/.atr/.qrs} 文件。将 data_root 指向该目录。
#   也可用 pn_dir="afdb/1.0.0" 参数免下载流式读取(见 §6.0)。
#
# ⚠️ 已知例外(详见 notes.txt):
#   00735/03665 无 .dat;06453 提前结束;04043/08405/08434 含零段;
#   07859 请使用 .qrsc 或修复后 .qrs(勿用 07859.qrs-)
# ========================================
import numpy as np
import wfdb

data_root = "./physionet.org/files/afdb/1.0.0/"

# 1) 读波形(23 条含信号记录之一)
rec = wfdb.rdrecord(f"{data_root}04936")
print(rec.sig_name)      # ['ECG1', 'ECG2'] —— 未命名导联,勿假设 MLII/V1
print(rec.fs)            # 250

# 2) 读人工节律注释(状态型:aux_note 为"自此进入某节律")
ann = wfdb.rdann(f"{data_root}04936", "atr")
for s, lab in zip(ann.sample[:5], ann.aux_note[:5]):
    print(f"sample {s:>9d}  t={s/250:>10.2f}s  {lab}")

# 3) 生成逐样本节律掩码(AFIB=1,其余=0)——注意需在下一注释点处结束
mask = np.zeros(rec.sig_len, dtype=int)
rhythm = list(zip(ann.sample, ann.aux_note))
for i, (s, lab) in enumerate(rhythm):
    end = rhythm[i+1][0] if i+1 < len(rhythm) else rec.sig_len
    if lab.strip() == "(AFIB":
        mask[s:end] = 1

# 4) 读心拍并构造 RR 间期序列(05091 有人工校正版 .qrsc;无 .qrsc 的记录退回 "qrs")
qrs = wfdb.rdann(f"{data_root}05091", "qrsc")
rr = np.diff(qrs.sample) / rec.fs   # 单位:秒
print(f"心拍数={len(qrs.sample)}, 中位 RR={np.median(rr):.3f}s")

§6.2 数据获取流程

获取方式 链接/位置 大小 流程
PhysioNet ZIP https://physionet.org/content/afdb/1.0.0/ 439.7 MB 页面直接下载,无需注册
wget 全量 wget -r -N -c -np https://physionet.org/files/afdb/1.0.0/ 605.9 MB 命令行免认证
AWS S3 aws s3 sync --no-sign-request s3://physionet-open/afdb/1.0.0/ DEST 同上 AWS Open Data,免签名
wfdb-python 流式 pn_dir="afdb/1.0.0" 按需 边读边取,不落盘
在线可视化 PhysioNet ATM(archive.physionet.org/cgi-bin/atm/ATM) 浏览器查看波形与注释

许可义务(ODC-By 1.0):使用与再分发自由,但必须署名——引用 Moody & Mark 1983 原论文 + PhysioNet 平台引用(见 §9)。与 MIMIC 系列不同:不需要 CITI 培训、不需要签署 DUA

§6.3 预处理 Pipeline

<details>
<summary><b>点击展开完整的 5 步预处理代码(Python:全库 → 窗口级特征与标签表)</b></summary>

# 步骤 1:记录清单与例外登记(来自 notes.txt)
import os, re
import numpy as np
import pandas as pd
import wfdb

data_root = "./physionet.org/files/afdb/1.0.0/"
NO_SIGNAL = {"00735", "03665"}                 # 无 .dat
ZERO_BLOCK = {"04043", "08405", "08434"}       # 含 10.24 s 零幅值坏块
records = [r for r in open(f"{data_root}RECORDS").read().split()
           if r not in NO_SIGNAL]

# 步骤 2:逐记录读取信号 + 节律掩码 + 坏块掩码
def load_record(rec_id):
    rec = wfdb.rdrecord(f"{data_root}{rec_id}")
    sig = rec.p_signal[:, 0]                    # 先用 ECG1
    ann = wfdb.rdann(f"{data_root}{rec_id}", "atr")
    rhythm = np.full(rec.sig_len, "N", dtype=object)
    pts = list(zip(ann.sample, [a.strip() for a in ann.aux_note]))
    for i, (s, lab) in enumerate(pts):
        end = pts[i+1][0] if i+1 < len(pts) else rec.sig_len
        rhythm[s:end] = lab.lstrip("(")
    # 零幅值坏块检测(10.24 s 全零段)
    zero = np.zeros(rec.sig_len, dtype=bool)
    run = 0
    for i, v in enumerate(sig == 0):
        run = run + 1 if v else 0
        if run >= 2560:
            zero[i-2559:i+1] = True
    return sig, rhythm, zero, rec.fs

# 步骤 3:心拍来源选择(.qrsc 优先)+ RR 序列
def load_rr(rec_id):
    if os.path.exists(f"{data_root}{rec_id}.qrsc"):
        q = wfdb.rdann(f"{data_root}{rec_id}", "qrsc")
    else:
        q = wfdb.rdann(f"{data_root}{rec_id}", "qrs")
    return q.sample

# 步骤 4:30 s 窗口滑切,标签 = 窗内 AFIB 占比 >50%(边界窗口可改剔除)
WIN = 30 * 250
rows = []
for rid in records:
    sig, rhythm, zero, fs = load_record(rid)
    for st in range(0, len(sig) - WIN + 1, WIN):
        if zero[st:st+WIN].any():
            continue                            # 丢弃含坏块窗口
        labs = rhythm[st:st+WIN]
        frac_af = (labs == "AFIB").mean()
        rows.append({"record": rid, "start": st,
                     "af_frac": frac_af,
                     "label": int(frac_af > 0.5),
                     "has_AFL": bool((labs == "AFL").any()),
                     "has_J":   bool((labs == "J").any())})
df = pd.DataFrame(rows)
print(df.groupby("label").size())

# 步骤 5:记录级划分(负担分层见 §5.2)
rng = np.random.default_rng(42)
perm = rng.permutation(records)
split = {r: ("train" if i < 13 else "val" if i < 18 else "test")
         for i, r in enumerate(perm)}
df["split"] = df["record"].map(split)
df.to_parquet("afdb_windows.parquet")

</details>

特征工程两条经典路线

  1. RR 间期路线(AFDB 文献主流):从心拍注释得 RR 序列 → 窗口内统计特征(RMSSD、CV、Poincaré SD1/SD2、样本熵 SampEn、系数化样本熵 CoSEn、符号动力学/Shannon 熵、直方图几何特征)→ 轻量分类器(LDA/SVM/RF)。复现 Moody & Mark 1983:按均值的 ±15% 把 RR 分 S/R/L 三态,3×3 转移概率矩阵打分,boxcar 平滑(N=121)。
  2. 波形路线:带通 0.5-40 Hz(尊重原始带宽上限)→ 重采样(128 Hz 对齐 LTAFDB,或 300 Hz 对齐 CinC 2017)→ 定长窗口 → CNN/LSTM/Transformer。f 波频段约 4-9 Hz,QRST 抑制后做频谱分析是经典心房活动特征。

§6.4 框架加载

import torch
from torch.utils.data import Dataset, DataLoader

class AFDBWindows(Dataset):
    """df: §6.3 的窗口表;data_root 指向 1.0.0 目录"""
    def __init__(self, df, data_root, win=7500):
        self.df = df.reset_index(drop=True)
        self.root, self.win = data_root, win
        self._cache = {}
    def __len__(self):
        return len(self.df)
    def _sig(self, rec_id):
        if rec_id not in self._cache:
            self._cache[rec_id] = wfdb.rdrecord(f"{self.root}{rec_id}").p_signal
        return self._cache[rec_id]
    def __getitem__(self, i):
        r = self.df.iloc[i]
        x = self._sig(r["record"])[r["start"]:r["start"]+self.win, 0]
        x = (x - x.mean()) / (x.std() + 1e-6)
        return torch.FloatTensor(x).unsqueeze(0), torch.tensor(r["label"]).long()

train_loader = DataLoader(AFDBWindows(df[df.split=="train"], data_root),
                          batch_size=64, shuffle=True, num_workers=4)
# RR 特征 + XGBoost 基线(轻量路线,复现 AFDB 文献主流范式)
import xgboost as xgb
dtrain = xgb.DMatrix(X_train_rr, label=y_train)
params = {"objective": "binary:logistic", "eval_metric": "auc",
          "scale_pos_weight": float((1 - y_train).sum() / y_train.sum()),
          "max_depth": 4, "learning_rate": 0.05}
model = xgb.train(params, dtrain, num_boost_round=400)

§6.5 常见坑点

⚠️ 坑点 1:.qrs 心拍注释是自动检测器的未校正输出(分类:标签理解)

问题:官方明确声明 .qrs 由自动检测器生成、未经人工校正,含误检(噪声峰当 QRS)与漏检。直接把它当心拍真值计算 RR 序列,会引入成串的异常短/长 RR——而这些恰恰是"像房颤"的不规则模式。

症状:基于 RR 的特征(RMSSD、熵)出现离群尖峰;模型在非房颤段假阳性率异常高;与文献性能对不上且方向不定。

解决:(1) 有人工校正版的记录用 .qrsc(如 05091、07859);(2) 无 .qrsc 时对 RR 做生理范围过滤(如 0.3-2.0 s)并标记而非静默删除;(3) 发表时声明心拍来源;(4) 反向利用:研究"检测器误差鲁棒性"时,.qrs 恰是官方推荐的实验材料。

参考:PhysioNet AFDB 官方描述(.qrs/.qrsc 使用分工原文)。

⚠️ 坑点 2:00735 与 03665 没有信号文件(分类:工程陷阱)

问题:RECORDS 清单含 25 条记录,但 00735/03665 只有 .atr/.qrs 注释,.dat 信号从未发布(notes.txt 原文 “Signals unavailable”)。按 RECORDS 遍历读信号会抛 FileNotFoundError。

症状:全库批处理在 00735 处崩溃;统计"25 例信号"时样本量对不上。

解决:硬编码排除集合 {"00735", "03665"} 或按 .dat 是否存在过滤;这两条仍可计入注释级统计(负担分布、节律时长)。

参考:PhysioNet afdb notes.txt;ECGBench 验证说明(original 25 vs clean 23)。

⚠️ 坑点 3:零幅值磁带坏块与 06453 提前结束(分类:预处理陷阱)

问题:04043(第 39 块)、08405、08434 中,原始磁带不可读块被替换为每块 10.24 秒(2,560 样本)的零幅值平坦段;06453 在约 9 小时 15 分后提前结束。

症状:方差/能量特征在坏块处骤降为零,被某些判据误判为房颤或"信号丢失";全长对齐的批处理在 06453 处越界。

解决:以"连续 ≥2,560 个零样本"检测坏块并整窗剔除(§6.3 步骤 2 给出实现);批处理窗口上限取 min(各记录长度) = 8,325,000;在方法学中声明坏块处理。

参考:PhysioNet Release Info 与 notes.txt。

⚠️ 坑点 4:07859 的历史注释错位(分类:工程陷阱)

问题:07859 原始 .qrs 与波形错位(记录开头缺失 2,569 个样本)。2014-03 官方修复:原文件更名 07859.qrs-(仍在目录中流通),重对齐版为 07859.qrs(去掉前 14 条注释),并新增人工审核的 07859.qrsc。

症状:使用旧镜像或误读 .qrs- 时,RR 序列与节律掩码整体平移,07859(100% 持续房颤记录)的评估结果出现诡异错误。

解决:对 07859 一律使用 .qrsc(或修复后 .qrs);在代码中对 “.qrs-” 后缀做黑名单;用 SHA256SUMS.txt 校验本地副本版本。

参考:PhysioNet Release Info(2014 年 3 月修复说明,报告者 Henian Xia)。

⚠️ 坑点 5:窗口随机切分造成患者级泄漏(分类:数据泄漏)

问题:AFDB 一记录 10 小时可切上千窗口,同记录相邻窗口高度相关。随机切窗让同一患者的相邻窗口分落训练/测试两侧,模型实际在"认患者"而非"认房颤"。

症状:内部测试 Se/Sp 高达 99%+,换记录或换库(如 LTAFDB)后暴跌 10 个百分点以上;文献中此类虚高结果在 2018 年后屡被综述点名。

解决:一律按记录(=患者)分组划分(§5.2 代码);负担分层;报告逐记录性能表;对深度学习结果保持对 99% 级内部指标的天然怀疑(对照 Andersen 2019 跨库 87.4% 的现实)。

参考:PMC7930338(跨库基准对照表);Andersen et al. 2019(Expert Systems with Applications)。

⚠️ 坑点 6:(N 标签是"所有其他节律",不是窦性心律(分类:标签理解)

问题:官方定义 (N “used to indicate all other rhythms”——它混合了窦律、房早、室早、传导异常等一切非 AFIB/AFL/J 的节律。把 (N 当"正常窦律"训练,会让模型把不规则的非房颤节律也学成负类模板。

症状:在真正健康人群数据(如 NSRDB)上测试时特异度系统性偏低;论文中"Normal vs AF"的表述与标签语义不符被审稿人指出。

解决:方法学中写清"负类 = AFDB 的 (N 混合节律";需要纯窦律对照时引入 NSRDB(18 例)作为外部负类;报告指标时区分"(N 口径特异度"与"窦律口径特异度"。

参考:PhysioNet AFDB 官方描述;torch-ecg AFDB 文档注释。

⚠️ 坑点 7:双通道是未命名导联(ECG1/ECG2),不可假设 MLII/V1(分类:预处理陷阱)

问题:AFDB 的头文件只给出通道名 ECG1/ECG2,发布资料中没有任何电极位置文档。这与姊妹库 MIT-BIH Arrhythmia DB(明确 MLII + V1)不同——从 MITDB 文献带来的"导联 II 看 P 波、V1 看 f 波"的先验不能移植。

症状:按 MLII 假设设计的形态学特征(P 波极性、电轴)在跨库迁移时系统性失效;两通道结论不一致时无法用电极位置解释。

解决:把两通道当作匿名冗余观测:逐记录做通道质量评估(信噪比、基线漂移)后选优或融合;形态学结论只在 AFDB 内部陈述;需要导联语义的研究改用 MITDB。

参考:ECGBench AFDB 数据集说明(“Do not assume they are MLII and V1”)。

⚠️ 坑点 8:25 例全为房颤患者、无对照、负担谱极端(分类:评估误用)

问题:每条记录都来自房颤确诊患者——AFDB 内部测得的"特异度"只是"对房颤患者非发作时段的判别力",不能外推为一般人群筛查特异度;负担谱从 0.24% 到 100% 的极端分布使任何单一汇总数都高度依赖纳入了哪些记录。

症状:论文宣称"筛查灵敏度/特异度 98%+",但从未在含健康对照的数据上验证;低负担记录(如 05091 仅 43 秒 AF)上 episode 级检出率远差于时间加权指标。

解决:(1) 结论表述限定为"房颤患者长程监测中的发作检测";(2) 必配含对照的外部验证(NSRDB / CinC 2017 / 临床 Holter 队列);(3) 除时间加权 Se/Sp 外,补报 episode 级检出率与起止点时间误差;(4) 负担分层报告性能。

参考:ECGBench AFDB 说明(“nothing here measures specificity in a general population”)。

版本提示:AFDB 本体 v1.0.0 自 2014-03 冻结,无版本升级问题;真正的"版本风险"是旧镜像中残留的 07859.qrs-(坑点 4)与不同文献沿用的 652/260 h vs 623/255 h 两套统计口径(§3.2)。

§6.6 数据增强

✅ 安全增强 ❌ 危险增强(禁止)
按记录划分后,对训练侧加模拟肌电/基线漂移噪声(模拟 Holter 真实噪声谱) 划分前增广(同一增强样本的变体跨两侧 = 泄漏)
对 ECG 做小幅时间平移(<1 s)裁剪起点随机化 对 RR 序列做重采样/插值打乱顺序(破坏 AF 的核心不规则性信息)
重采样对齐(250→128 Hz)作为跨库域自适应 对波形做时间反转(房颤节律的时间方向有生理意义)
通道 dropout(随机用 ECG1 或 ECG2,模拟单导联穿戴场景) 把 (AFIB 窗口与 (N 窗口做 Mixup(节律边界语义被污染)
对 AFIB 长片段做 episode 内随机裁剪 跨记录拼接波形制造"合成患者"

§6.7 模型推荐

任务 推荐方案 特征/输入 预期性能(AFDB 内部口径)
快速基线 RR 统计特征 + LDA/SVM 12-21 心拍窗,RMSSD/CV/SampEn Se 92-96% / Sp 94-97%
文献对标(复现经典) Moody-Mark 三态马尔可夫 / K-S 直方图检验 / CoSEn 阈值 100-128 RR 窗 Se 94-97% / Sp 97-98%
轻量部署 CoSEn + 决策树/RF(Kennedy 2016 系) RR 窗 Se ~92% / Sp ~91%(跨库更稳)
深度学习 CNN(30 s 段)/ CNN+LSTM 原始波形 1-2 通道 Acc 97-99%(内部;注意坑点 5)
RR 端到端 LSTM/GRU 吃 100 RR 序列 心拍注释派生 Se ~99%(内部 20/3 划分口径)
跨库务实路线 LTAFDB 训练 → AFDB 测试 统一 128 Hz + 窗口口径 Acc 96-98%(最有说服力的报告方式)

§6.8 计算资源需求

硬件 最小配置 推荐配置
磁盘 1 GB 2 GB(含派生特征与缓存)
内存 4 GB(逐记录流式处理) 16 GB(全库窗口级张量驻留)
GPU 不需要(RR 路线/XGBoost) 1 × 8 GB(CNN/LSTM 波形路线,分钟级训练)
训练时间 XGBoost 基线 <5 分钟(CPU) 1D-CNN 全库 <1 小时(单卡)
云端替代 Colab 免费档全程可跑 wfdb 流式读取免下载

§6.9 评估指标

import numpy as np
from sklearn.metrics import (roc_auc_score, confusion_matrix,
                             precision_recall_curve, auc)

def afdb_report(y_true, y_prob, thr=0.5):
    """AFDB 文献标准四件套 + episode 级指标提示"""
    y_pred = y_prob >= thr
    tn, fp, fn, tp = confusion_matrix(y_true, y_pred).ravel()
    se = tp / (tp + fn); sp = tn / (tn + fp)
    ppv = tp / (tp + fp); acc = (tp + tn) / len(y_true)
    p, r, _ = precision_recall_curve(y_true, y_prob)
    print(f"Se={se:.4f} Sp={sp:.4f} PPV={ppv:.4f} Acc={acc:.4f}")
    print(f"AUROC={roc_auc_score(y_true, y_prob):.4f} AUPRC={auc(r, p):.4f}")

社区共识(AFDB 文献 40 年惯例):

  1. 时间/心拍加权口径:Se、Sp、PPV、Acc 四件套是必须项(与 Tateno 2001、Huang 2011、Sensors 2020 等可比);
  2. episode 级口径:发作检出率(episode sensitivity)与每记录误报次数——低负担记录上此口径远比时间口径苛刻;
  3. 起止点误差:检出延迟(onset delay,秒)与终止延迟;
  4. 跨库口径:LTAFDB→AFDB 的 Se/Sp/Acc(对齐 Gadhoumi 2021 Table 3 的报告格式);
  5. 负担分层报告(<5% / 5-95% / ≥95% 三档)。

§6.10 MLOps 笔记

  • 版本锁定:引用 “MIT-BIH AFDB v1.0.0, DOI: 10.13026/C2MW2D” 并注明访问日期;本地文件用 SHA256SUMS.txt 校验。
  • 引用三件套:Moody & Mark 1983(方法与原库论文)+ 数据集 DOI(10.13026/C2MW2D)+ PhysioNet 平台(Goldberger 2000 或 Pollard 2026)——ODC-By 1.0 的署名义务(见 §9)。
  • 心拍来源声明:.qrs / .qrsc / 自运行检测器(如 NeuroKit2 的 xqrs)三选一,必须在方法学写明,否则结果不可复现。
  • 口径声明:623/255 h(2026 重算)与 652/260 h(文献沿用)二选一并在文中注明。
  • 统计口径可复现性:episode 边界窗口的定标签规则(剔除 vs >50% 占比)对 Se/Sp 的影响可达 1-2 个百分点,写入附录。

§7 质量评估与局限性

§7.1 已知偏倚

偏倚类型 描述 严重程度 缓解措施
病例-only 偏倚 25 例全部为房颤患者,无任何非房颤对照——一般人群特异度不可知 必须配含对照的外部验证(NSRDB/CinC 2017/临床队列)
负担谱极端偏倚 AF 负担 0.24%-100% 跨度三个数量级;汇总指标被高负担记录主导 负担分层报告 + 逐记录性能表
选择偏倚 按"存在间歇性房颤"筛选的 Holter 记录,偏向有可见发作的患者 中高 结论限定为"房颤患者监测场景"
时代偏倚 约 1983 年录制,0.1-40 Hz 模拟带宽;无当代抗凝/消融治疗背景 波形高频特征(f 波细节)结论需当代数据复核
设备偏倚 单中心单一型号 Holter;导联未命名 跨设备外部验证(穿戴/贴片)
标注偏倚 节律注释为创建者团队单一判读,无多标注者一致性报告 episode 边界 ±1-2 s 容差评估;承认边界主观性
心拍注释偏倚 .qrs 为 1980 年代自动检测器水准,误差未量化 用 .qrsc 子集或现代检测器重跑并声明
样本量偏倚 25 例患者——任何子群分析都统计不足 LOSO-CV + 跨库验证;避免子群结论

§7.2 标注质量评估

标注类型 可靠性 一致性 局限性
节律注释(.atr) 高(40 年文献默认金标准) 单一团队判读,无 kappa 报告 边界判读尺度因人而异;(N 为排除法混合类别
心拍注释(.qrs) 中低(官方自述未校正) 自动算法一致但含系统误差 不可作心拍真值;适合鲁棒性研究
心拍注释(.qrsc) 高(人工审核) 仅部分记录覆盖
心拍类型 不存在(全部标为 N)
患者元数据 完全缺失

§7.3 泛化性讨论

场景 失效风险 证据
跨库(AFDB → MITDB/NSRDB) Andersen 2019:AFDB 系 5 折 CV Acc 97.8%,未见 MITDB 上 Acc 87.4%(Sp 86.0%)——跨库损失约 10 个百分点
跨库(LTAFDB ↔ AFDB 双向) 统一 128 Hz + 窗口口径后 Acc 96-98%(Zhou 2015、Gadhoumi 2021);是最成熟的双向验证对
跨设备(Holter → 穿戴单导联) CinC 2017 冠军 F1 仅 0.83(四分类 30-60 s 片段);JMIR 2026 服装式 Holter 外验 AFDB Acc 0.966 但噪声类 Se 仅 0.796
跨人群(房颤患者 → 一般人群筛查) 极高(原理性) 库内无对照,筛查特异度不可估计(坑点 8)
跨时间(1983 模拟带宽 → 当代高带宽采集) 40 Hz 上限截断高频成分;f 波谱分析结论需在当代数据复核

§7.4 伦理考量

  1. 数据录制于约 1983 年、公开发布于 2000 年,反映了医学数据共享伦理的早期实践;以今天的标准看,其伦理审查与知情同意文档并未随数据发布——研究者应意识到这一历史背景。
  2. 数据为纯波形与注释,无任何人口学或临床标识,重识别风险极低;ODC-By 1.0 允许再分发,但署名义务不可免除。
  3. 无人口学字段意味着公平性审计在原理上不可能——基于 AFDB 的"房颤筛查"结论不应直接外推到任何具体人群(尤其是与 1983 年波士顿就诊人群差异大的群体)。
  4. 房颤 AI 筛查的下游风险是假阳性导致的过度就医与焦虑——AFDB 内部口径的高特异度不能作为临床筛查性能的呈报依据(见 §7.1 与坑点 8)。

§7.5 公平性评估

AFDB 不发布年龄、性别、种族等任何敏感属性,标准公平性分析不可行。可行的替代是"记录级公平性"——检查模型是否在特定负担档或特定记录上系统性失效:

# 逐记录性能审计(AFDB 文献的透明度惯例)
per_rec = (df.assign(correct=(df.y_true == df.y_pred))
             .groupby(["record", "burden_tier"])["correct"]
             .agg(["mean", "count"]))
print(per_rec.sort_values("mean").head())  # 最差记录即公平性短板

已知差异:低负担记录(<5%,8 例)上 episode 级检出率显著低于时间加权指标;持续房颤记录(3 例)几乎人人满分——分层报告是唯一的诚实做法。

§7.6 数据漂移提示

  • 部署任何 AFDB 训练的模型前,须认识其训练分布停留在 1983 年:Holter 模拟带宽 0.1-40 Hz、无当代药物治疗背景、当代穿戴设备的采样率(300-500 Hz)与电极形态完全不同。
  • 监控信号:输入信号的采样率/带宽分布、RR 间期分布 PSI、以及(对穿戴场景)噪声段占比——CinC 2017 的 “Noisy” 类是 AFDB 中不存在的失败模式。
  • 1983→2000 的磁带重读是"内源漂移"的另一教训:物理介质老化会直接吃掉数据块(零段坏块),任何长寿命数据项目都应以此为鉴。

§7.7 DAIMS 24 项数据就绪度评估

# 检查项 状态 说明
1 数据为宽格式(每行一个样本/事件) ⚠️ WFDB 二进制格式非表格;需 wfdb 工具转换为样本/注释行
2 有唯一标识符列 记录名 + 样本索引构成全局唯一键
3 无 Unicode 或特殊字符 注释符号为 WFDB 标准 ASCII 码表
4 无重复行 注释按样本索引单调递增;信号无重复段
5 缺失值已识别并编码 §4.5:无信号记录、零段坏块、提前结束均有登记与检测方法
6 标签列被明确标识 .atr 的 aux_note 四值标签语义官方文档化
7 已对罕见类别(<3%)进行分组 AFL(0.64%)与 J(2.13%)未合并,四分类直接训练会严重偏斜
8 偏倚评估已完成 §7.1 列出 8 类偏倚与缓解措施
9 有完整的数据字典 官方描述 + notes.txt + WFDB 规范三层文档
10 对"信息性缺失"有明确编码解释 零段坏块=磁带损坏哨兵;(N=排除法类别(§4.5)
11 数据采集设备和设置已记录 ⚠️ 带宽(0.1-40 Hz)与采样参数完整,但记录仪型号与电极位置未记载
12 已移除完全共线性变量 ⚠️ 双通道高度相关,未做官方去重——留待用户通道选择
13 对编码的映射标准已说明 四类节律→ICD-10/ICD-11/SNOMED CT 映射(§2.1/§2.2)
14 对时间戳的处理已明确说明 ⚠️ 样本索引统一基准明确;但 08378/08405 缺起始时间,绝对时刻分析受限
15 训练/验证/测试划分建议已给出 官方无划分;社区三种事实口径(§5.1)需自行选择
16 数据泄漏风险已被讨论 §5.3 五种模式(窗口随机切分为首要风险)
17 标签分布已被分析 §4.2 四类标签时长/片段/记录数全表
18 选择性测量偏倚已被讨论 按"存在间歇性房颤"筛选的选择机制(§7.1)
19 外部验证建议已给出 §5.5 与 §7.8:LTAFDB/MITDB/NSRDB/CinC 2017 四路径
20 数据更新和版本信息已记录 2000 首发说明 + 2014 修复 changelog 完整
21 最小必要预处理脚本已提供 ⚠️ 官方无脚本;wfdb-python/torch-ecg 社区工具链成熟补位
22 合规使用要求已明确 ODC-By 1.0 署名义务明确,免认证
23 多模态对齐方法已说明 信号-节律-心拍三层共用同一样本索引系(§4.4)
24 去标识化方法已被记录 ⚠️ 无任何标识字段(天然脱敏),但历史伦理审查文档未随库发布

DAIMS 评分:18 / 24

评分解读良好——文档、格式与 40 年基准生态是其强项;扣分集中在小样本结构性缺陷(无划分、无人口学、罕见类别未分组、伦理文档缺失)。

对你意味着什么:AFDB 的 16 个 ✅ 项几乎全部来自"标准制定者"的位置红利——WFDB 格式发明者自己发布的数据,格式、注释语义、更新日志都是教科书级。扣分项则是 1983 年采集条件的历史局限:无官方划分(用 §5.2 记录级分层方案)、AFL/J 小类未合并(四分类任务建议合并为"非 AFIB"或单独报告)、无人口学(不要做子群结论)、设备型号与电极位置失载(不要写导联假设)。建议在使用前执行:(1) 用 §6.3 管道统一生成窗口级标签表并登记心拍来源;(2) 按负担三层分层划分;(3) 对照 LTAFDB 做双向跨库验证——这三步做完,AFDB 就是医疗信号领域最省心的基准之一。

§7.8 外部验证矩阵

外部数据集/场景 来源机构 评估任务 性能指标 相对内部测试集变化 关键发现
MITDB + NSRDB(未见数据) PhysioNet(Andersen 2019) AF vs NSR 二分类(CNN+RNN) Acc 87.40% / Se 98.96% / Sp 86.04% 内部 5 折 CV Acc 97.8% → -10.4 pp 深度学习跨库掉点的经典量化案例;Sp 是主要损失
AFDB(作为测试集,LTAFDB 训练) PhysioNet(Gadhoumi 2021) AF 检测(MESC + 决策树) Se 97.4% / Sp 98.1% / Acc 97.8% 与 LTAFDB 内部持平 轻量特征 + 简单模型的跨库稳定性优于复杂深度学习
AFDB(同上协议) PhysioNet(Zhou 2015) AF 检测(符号动力学 + Shannon 熵) Se 97.4% / Sp 98.4% / Acc 98.0% 持平 RR 路线跨库近乎无损
CinC 2017(AliveCor 单导联) 2017 Challenge(75 队) 短片段四分类 冠军 F1 = 0.83(隐藏测试集) 与 AFDB 内部 97%+ 不可比 移动端短片段 + 噪声类是全新失败模式;AFDB 预训练是常见上游
AFDB(作为外部验证集) 服装式 Holter 研究(JMIR Med Inform 2026) 三分类(AF/非 AF/噪声)2D-CNN 外验 Acc 0.9659 / AF Se 0.9416(3 min 窗 Acc 97.3%) 相对院内训练集略降 AFDB 作为"金标准外验场"的当代用法;噪声类 Se 仅 0.796 暴露新缺口

AFDB 在 2026 年还值得用吗? 值得——但角色已变。它不再是"刷分场"(内部口径早已饱和在 97-99%),而是三件事:基准标尺(与 40 年文献同口径对照)、跨库协议的一极(LTAFDB↔AFDB)、外部验证金标准(当代穿戴研究的必报外验集)。新课题若只报 AFDB 内部指标,2026 年的审稿人会直接追问跨库结果。


§8 基准性能与生态

§8.1 排行榜(AFDB 文献 40 年纵向谱系)

AFDB 没有官方排行榜——它的"榜单"是散落在 40 年文献中的同口径报告。下表按时间排列,跨行比较前必须核对口径(窗口长度、心拍来源、划分方式、是否含 AFL)。

年份 方法 Se Sp Acc 口径要点 完整引用
1983 三态马尔可夫 RR 模型(开山之作) 高 Se,PPV 受限(原文定性结论) 260 h 全库;boxcar N=121 Moody GB, Mark RG. “A new method for detecting atrial fibrillation using R-R intervals.” Computers in Cardiology 10:227-230, 1983
2001 CV + K-S 直方图检验(100 RR 窗) 94.4% 97.2% —(PPV 96.1%) 全库窗口口径 Tateno K, Glass L. “Automatic detection of atrial fibrillation using the coefficient of variation and density histograms of RR and ΔRR intervals.” Med Biol Eng Comput 39:664-671, 2001
2005 RR 方差(Logan & Healy) 96.0% 89.0% RR 方差阈值 Logan B, Healy J. “Detection of atrial fibrillation using variance of R-R intervals.” Computers in Cardiology 32:411-414, 2005
2011 ΔRR 分布差 + K-S 两步法 96.1% 98.1% ROC 定阈 Huang C et al. “A novel method for detection of the transition between atrial fibrillation and sinus rhythm.” IEEE Trans Biomed Eng 58(4):1113-1119, 2011
2013 CoSEn(12 RR 超短窗) 92.7% 94.2% 12 RR 窗口 Oster J et al.(CoSEn 方法,2013)
2015 符号动力学 + Shannon 熵(跨库协议) 97.4% 98.4% 98.0% LTAFDB 训练 → AFDB 测试 Zhou X et al. “A real-time atrial fibrillation detection algorithm based on the instantaneous state of heart rate.” PLoS ONE 10(9):e0136544, 2015
2016 CoSEn+RMSSD+MAD+CV + RF(30 树) 92.2% 91.4% 91.8% 跨库复现口径 Kennedy A et al. 2016(经 PMC7930338 复现口径转引)
2016 符号动力学逐拍分类 97.33% 98.67% 98.44% 逐心拍口径 Marsili M et al. 2016
2018 LSTM(100 RR 序列) 99.87% 99.61% 99.77% 20 例训练 / 3 例盲测,样本极小 Faust O et al. “Automated detection of atrial fibrillation using long short-term memory network with RR interval signals.” Comput Biol Med 102:327-335, 2018
2019 CNN(30 s 波形段) 98.7% 98.6% 98.7% 划分未说明(注意坑点 5) Erdenebayar U et al. 2019
2019 CNN+RNN 端到端 98.98% 96.95% 97.8% AFDB+MITDB+NSRDB 混合 5 折 CV Andersen RS, Peimankar A, Puthusserypady S. “A deep learning approach for real-time detection of atrial fibrillation.” Expert Systems with Applications 115:465-473, 2019
2020 LSVM(16 HRV 特征 + 聚合) 98.94% 98.80% 98.86% 21 心拍窗 + 110 拍聚合 “Detection of Atrial Fibrillation Episodes in Long-Term Heart Rhythm Signals Using a Support Vector Machine.” Sensors 20(3):765, 2020
2021 MESC 变异 + 决策树(跨库协议) 97.4% 98.1% 97.8%(F1 97.5%) LTAFDB 训练 → AFDB 测试 Gadhoumi K et al. “Visualizing and Quantifying Irregular Heart Rate Irregularities to Identify Atrial Fibrillation Events.” Front Physiol 12:631252, 2021

读表三原则:(1) 跨库协议行(Zhou 2015、Gadhoumi 2021)与内部口径行不可比——前者才是泛化性能;(2) Faust 2018 的 99.87% 建立在 3 例盲测记录上,统计功效极弱,引用时须带此限定;(3) 内部口径 97-99% 的区间自 2011 年起基本饱和——在 AFDB 内部声称"刷新 SOTA"的论文,价值主张几乎都在别处(实时性、参数量、跨库性、穿戴适配)。

§8.2 SOTA 总结与选型建议

如果你… 推荐方案 为什么
复现经典文献/打基线 K-S 直方图(Tateno 2001)或 CoSEn(2013)+ 全库窗口口径 实现 <100 行,与 20 年文献直接可比
写论文追求可信度 LTAFDB 训练 → AFDB 测试,按 Gadhoumi 2021 Table 3 格式报告 2026 年审稿人最认可的协议
部署到穿戴设备 CoSEn/熵类轻量特征 + 决策树(Kennedy 2016 系),AFDB 预训练 + 目标域微调 参数量与功耗可控,跨库最稳
研究 episode 起止点 .atr 边界 + 任意 Se 达标检测器,报 onset/offset 延迟 AFDB 独有的精确人工边界资产
验证深度学习增益 对照 Andersen 2019 双口径(内部 97.8% vs 跨库 87.4%) 一句话说清"深度学习的 10 个百分点代价"

§8.3 官方评测协议

无官方协议。社区事实标准(综合 Tateno 2001 以来的惯例):以 .atr 为金标准;窗口(12-128 RR 或 5-60 s)内 AFIB 占比 >50% 定正类;报告 Se/Sp/PPV/Acc 四件套;跨库协议为 LTAFDB 训练 → AFDB 测试(128 Hz 统一);建议补报 episode 检出率与起止点延迟。心拍来源(.qrs/.qrsc/自检)与边界窗口规则必须声明。

数据集 关系 说明
LTAFDB(Long-Term AF Database) 姊妹/互补 84 例 × 24 h、128 Hz;跨库协议的另一半
MIT-BIH Arrhythmia Database 姊妹库 48 例心拍级 15 类标注;AFDB 标签体系与其统一
MIT-BIH NSRDB 对照臂 18 例健康窦律,补 AFDB 无对照之缺
AFPDB(PAF Prediction Challenge) 任务衍生 面向"发作前预测"的配对片段设计
AF Termination Challenge 任务衍生 面向自发终止预测
CinC 2017 Challenge 下游生态 AliveCor 单导联 8,528 条四分类;AFDB 为其常见预训练集
MIMIC-IV-ECG 当代临床扩展 临床场景 12 导联波形,需凭证化访问

§8.5 关键论文 Top 10

  1. Moody GB, Mark RG (1983), Computers in Cardiology 10:227-230. “A new method for detecting atrial fibrillation using R-R intervals.” — 数据集与原方法一体两面的开山论文;RR 三态马尔可夫打分矩阵后被多篇专利引用。全文:http://georgebmoody.com/publications/afib-cinc-1983.pdf
  2. Tateno K, Glass L (2001), Med Biol Eng Comput 39:664-671. CV + K-S 直方图检验——AFDB 上第一个被广泛复现的统计基线(Se 94.4/Sp 97.2)。
  3. Huang C et al. (2011), IEEE TBME 58(4):1113-1119. ΔRR 分布差两步法——同时处理"检测"与"转变点定位"的先驱(Se 96.1/Sp 98.1)。
  4. Oster J et al. (2013). CoSEn(系数化样本熵)——12 RR 超短窗路线的代表,穿戴实时检测的理论基础之一(Se 92.7/Sp 94.2)。
  5. Zhou X et al. (2015), PLoS ONE 10(9):e0136544. 符号动力学 + Shannon 熵;LTAFDB→AFDB 跨库协议的标杆报告(Acc 98.0%)。
  6. Kennedy A et al. (2016). CoSEn 等 4 特征 + 随机森林——轻量可部署路线的经典(经 PMC7930338 复现口径转引:AFDB Acc 91.8%)。
  7. Faust O et al. (2018), Comput Biol Med 102:327-335. LSTM 吃 100 RR 序列——深度学习进 AFDB 的标志性工作,也是"小盲测样本报 99.87%"的方法学警示案例。
  8. Andersen RS, Peimankar A, Puthusserypady S (2019), Expert Systems with Applications 115:465-473. CNN+RNN 端到端;内部 97.8% vs 跨库 87.4% 的双口径报告是泛化性讨论的必引文献。
  9. Clifford GD et al. (2017), CinC 44 / Physiol Meas 2018 专题. PhysioNet/CinC 2017 房颤分类挑战赛总结——AFDB 生态向下游移动端延伸的枢纽(75 队,冠军 F1 0.83)。
  10. Gadhoumi K et al. (2021), Front Physiol 12:631252. MESC 变异可视化 + 决策树;统一 LTAFDB→AFDB/MITDB/NSRDB 报告格式的当代基准表(本页 §8.1 的主要转引源)。

§8.6 社区活跃度

维度 数据
原论文引用(Moody & Mark 1983) 700+(Google Scholar,截至 2026-09,量级估计——该 CinC 会议论文未被 OpenAlex/Semantic Scholar 系统索引;OpenAlex 全文库中含其标题短语的论文超 2,000 篇,AF 检测文献几乎必引)
PhysioNet 项目页访问 741(独立注册用户浏览,页面快照,截至 2026-09)
工业影响 RR 三态马尔可夫打分矩阵被 US7596405 等多篇房颤检测专利原文引用
工具链 wfdb-python(官方)、torch-ecg(内置 AFDB 数据类)、NeuroKit2、ECGBench(2026 全文件 SHA256 校验 + 统计重算)
教学采用 生理信号处理课程的标准数据集(WFDB 格式教学的第一案例之一)
评测寿命 1983-2026 持续有新论文在其上报告结果——43 年,医疗 AI 数据集最长纪录之一

§8.7 生态快照

资源 类型 链接 状态(截至 2026-09) 为什么值得关注
wfdb-python 工具库 https://github.com/MIT-LCP/wfdb-python 官方维护 PhysioNet 官方 Python 包,rdrecord/rdann 直读 AFDB,支持 pn_dir 流式
torch-ecg 工具库 https://github.com/DeepPSP/torch_ecg 活跃 内置 AFDB 数据类与节律注释解析,文档含多条本库特有警告
PhysioNet ATM 在线可视化 https://archive.physionet.org/cgi-bin/atm/ATM 长期在线 浏览器直接查看 25 条记录波形与注释,零配置教学首选
ECGBench AFDB 页 数据审计 https://huggingface.co/spaces/vlbthambawita/ECGBench 2026 活跃 155 文件 SHA256 全校验 + 负担谱/节律统计重算(本页 623/255 h 口径来源)
Moody 论文 PDF 原始文献 http://georgebmoody.com/publications/afib-cinc-1983.pdf 作者自托管 1983 原文全文,含马尔可夫矩阵与 260 h 评测描述
CinC 2017 Challenge 竞赛/下游 https://moody-challenge.physionet.org/2017/ 归档可查 结果、源码与 75 队论文全公开,AFDB 迁移研究的入口
LTAFDB 互补数据 https://physionet.org/content/ltafdb/ ODC-By 开放 跨库协议另一半,84 例 × 24 h

§9 相关资源与引用

官方资源

BibTeX 引用(三件套,ODC-By 署名义务)

% 1) 数据集原论文(必须引用)
@article{moody1983afdb,
  title={A new method for detecting atrial fibrillation using R-R intervals},
  author={Moody, George B and Mark, Roger G},
  journal={Computers in Cardiology},
  volume={10},
  pages={227--230},
  year={1983}
}

% 2) 数据集本体(PhysioNet DOI)
@misc{afdb-physionet-1.0.0,
  author={Moody, George and Mark, Roger},
  title={{MIT-BIH Atrial Fibrillation Database}},
  publisher={{PhysioNet}},
  year={2000},
  note={Version 1.0.0},
  doi={10.13026/C2MW2D}
}

% 3) PhysioNet 平台(官方要求同时引用;新旧两版口径任选并按官方页面当期要求执行)
@article{goldberger2000physionet,
  title={PhysioBank, PhysioToolkit, and PhysioNet: Components of a new research resource for complex physiologic signals},
  author={Goldberger, Ary L and Amaral, Luis AN and Glass, Leon and Hausdorff, Jeffrey M and Ivanov, Plamen Ch and Mark, Roger G and Mietus, Joseph E and Moody, George B and Peng, Chung-Kang and Stanley, H Eugene},
  journal={Circulation},
  volume={101},
  number={23},
  pages={e215--e220},
  year={2000}
}

% 3-alt) PhysioNet 平台新口径(2026 起官方页面推荐)
@article{pollard2026physionet,
  title={PhysioNet as a global platform for biomedical research},
  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},
  journal={Nature Health},
  volume={1},
  number={8},
  pages={792--795},
  year={2026},
  doi={10.1038/s44360-026-00096-z}
}

漏引第 1 条(1983 原论文)是 AFDB 文献中最常见的署名违规——ODC-By 1.0 的 “Attribution” 条款即指向它。

教程与学习资源

原始论文

  1. Moody GB, Mark RG (1983). “A new method for detecting atrial fibrillation using R-R intervals.” Computers in Cardiology 10:227-230. 全文:http://georgebmoody.com/publications/afib-cinc-1983.pdf
  2. Goldberger AL et al. (2000). “PhysioBank, PhysioToolkit, and PhysioNet.” Circulation 101(23):e215-e220.
  3. Tateno K, Glass L (2001). “Automatic detection of atrial fibrillation using the coefficient of variation and density histograms of RR and ΔRR intervals.” Med Biol Eng Comput 39:664-671.
  4. Clifford GD et al. (2017). “AF Classification from a Short Single Lead ECG Recording: the PhysioNet Computing in Cardiology Challenge 2017.” CinC 44. DOI: 10.22489/CinC.2017.065-469.

§10 AI 使用声明卡

§10.1 AI 模型使用

AI 模型 版本 用途
deep-model(WorkBuddy) 2026-09 初稿生成:INFOBOX 数据汇编、§1-§9 结构化写作、§6 代码示例生成、JSON-LD 构建
WebSearch(多源检索) 2026-09-05 7 组检索:PhysioNet 官方页、记录级怪癖(notes.txt 镜像)、基准性能综述表、CinC 2017 结果、ICD-11/SNOMED 编码、引用量核实尝试
OpenAlex / Semantic Scholar API 2026-09-05 引用量交叉核实(该 1983 会议论文未被系统索引的确认依据)

§10.2 AI 参与范围

AI 参与范围:初稿生成 + 资料整理 + 代码生成 + 格式化排版。

AI 在本页面的工作中负责:(1) 从 PhysioNet 官方页面、Moody & Mark 1983 原文、ECGBench 审计页与多篇综述的对照表中整理结构化信息;(2) 生成 §6 的 wfdb-python/PyTorch/XGBoost 代码示例;(3) 系统化组织 §6.5 的 8 个坑点与 §7.1 偏倚表;(4) 执行 G1/G2/G3 排版规范检查与中英文格式标准化;(5) 构建 §C 统一 JSON-LD @graph。

§10.3 输入来源

  1. PhysioNet AFDB 官方页(https://physionet.org/content/afdb/ 与 /afdb/1.0.0/,含 Release Info 与 2014 修复说明)
  2. Moody GB, Mark RG (1983), Computers in Cardiology 10:227-230(作者自托管全文)
  3. DataCite DOI 记录 10.13026/C2MW2D
  4. ECGBench AFDB 数据集审计页(HuggingFace Spaces,155 文件校验与统计重算,截至 2026)
  5. torch-ecg AFDB 数据类文档(注释口径与 sampfrom 警告)
  6. OpenDataLab MIT-BIH_AFDB 中文镜像(怪癖清单佐证)
  7. CSDN afdb 读取笔记(notes.txt 逐条翻译佐证)
  8. “Detection of Atrial Fibrillation Episodes in Long-Term Heart Rhythm Signals Using a Support Vector Machine”, Sensors 2020;20(3):765(含 Tateno/Huang 等对照表)
  9. Gadhoumi K et al. (2021), Front Physiol(PMC7930338,跨库基准对照表)
  10. “Using MRMR Algorithm to Select Minimal Sets of HRV Parameters for AF Detection”(PMC9318370,方法对照表)
  11. “Detection of atrial fibrillation using a nonlinear Lorenz Scattergram and deep learning in primary care”(PMC39033295,含 Andersen 2019 跨库数字)
  12. IEEE Access 8721643(CNN-BLSTM,含 Andersen 2019 双口径转引)
  13. PhysioNet/CinC Challenge 2017 官方页与结果 CSV(75 队、F1 0.83)
  14. Clifford GD et al. (2017), CinC 44(Challenge 总结论文,PMC5978770)
  15. JMIR Medical Informatics 2026;e91960(服装式 Holter 外部验证 AFDB)
  16. npj Biomedical Innovations 2024(mRMEBP,跨库方法对照)
  17. Waterloo Ross-Howe 课件(AFDB 652 片段/128 万心拍沿用口径)
  18. OpenCodelists NHSD AFIB_COD refset(SNOMED CT 49436004/5370000/282825002 核实)
  19. CMS EKG 监测计费编码页(ICD-10 I48 系列核实)与 ICD-11 BC81 类目说明
  20. US7596405 等房颤检测专利文本(Moody-Mark 矩阵工业引用佐证)
  21. OpenAlex / Semantic Scholar API(引用量索引覆盖核实,2026-09-05)

§10.4 人工校验表

内容模块 审核者 审核方式 审核状态
§2 医学背景(ICD-11/SNOMED 映射、临床任务、金标准) 千方病案医学编辑部 交叉审核 ✅ 已通过
§3 数据集规格(25 例/23 信号、记录怪癖、WFDB 格式) 千方病案医学编辑部 与 PhysioNet 官方页面及 notes.txt 交叉比对 ✅ 已验证
§4 数据结构(.atr/.qrs/.qrsc 三层注释、DAIMS 字段字典) 千方病案医学编辑部 与 WFDB 规范及 torch-ecg 文档交叉比对 ✅ 已验证
§5 数据划分策略 千方病案医学编辑部 交叉审核 ✅ 已通过
§6 代码示例与坑点 千方病案医学编辑部 逻辑审查 + 与 wfdb 官方文档比对 ✅ 已通过
§7 质量评估与 DAIMS 评分 千方病案医学编辑部 交叉审核 ✅ 已通过
§8 排行榜与引用数表述 千方病案医学编辑部 与原文及综述对照表交叉比对;引用量按索引覆盖情况保守表述 ✅ 已验证
§C JSON-LD @graph 千方病案医学编辑部 Schema v3.9 字段逐项校验 ✅ 已通过

§10.5 AI 生成章节标注

以下章节由 AI 生成初稿并经人工审核:§1.0 30 秒速览、§3.0 版本抉择矩阵、§6.0-§6.4 代码示例、§6.5 八个坑点、§6.9 评估指标代码、§7.5 公平性评估代码、§7.7 DAIMS 评估表与评分、§8.7 生态快照、§C JSON-LD。

§10.6 最后审核

最后一次人工审核日期:2026-09-05

页面状态:published(全部内容已完成审核并发布)

返回 AI-Ready 数据集