PhysioNet/CinC 2015 — ICU 假报警抑制挑战 AI-Ready Wikipedia

1,250 条 ICU 危及生命心律失常报警的真/假判别基准

来源 PhysioNet(Emory University / Georgia Institute of Technology / MIT) url: https://physionet.org/content/challenge-2015/1.0.0/发布时间: 2026-09-16最后更新: 2026-09-25 阅读 39
PhysioNet/CinC 2015 — ICU 假报警抑制挑战 AI-Ready Wikipedia

信息速览

数据集名称PhysioNet/CinC 2015 — ICU 假报警抑制挑战 AI-Ready Wikipedia
数据类型1,250 条报警记录,750 条公开训练波形,500 条隐藏测试记录,352.4 MB WFDB 格式,250 Hz 采样率,5 类报警类型
规模来自美国与欧洲 4 家医院 ICU 的数百名患者(官方未披露确切人数)
接入方式PhysioNet(Emory University / Georgia Institute of Technology / MIT) url: https://physionet.org/content/challenge-2015/1.0.0/
AI 就绪度

数据集封面

PhysioNet/CinC Challenge 2015(ICU 假报警抑制)— 危及生命心律失常报警真/假判别基准 AI-Ready Wikipedia


INFOBOX

字段 内容
数据集名称 假报警抑制 CinC 2015
英文全称 Reducing False Arrhythmia Alarms in the ICU: The PhysioNet/Computing in Cardiology Challenge 2015
别名/简称 PhysioNet Challenge 2015;CinC Challenge 2015;challenge-2015
疾病分类(ICD-11) MC82.2 心搏停止型心脏骤停;BC71.0 室性心动过速;BC71.1 心室颤动(事件概念映射)
SNOMED CT 397829000(Asystole);25569003(Ventricular tachycardia);71908006(Ventricular fibrillation)
数据模态 ICU 多参数波形(双导联 ECG + PLETH/ABP 脉搏波形,部分记录含 RESP)
AI 任务类型 二分类(真报警/假报警抑制),多信号时序判别
样本总数 1,250 条报警记录(公开训练 750 条 + 隐藏测试 500 条),每条记录对应一次报警
数据大小 352.4 MB(training.zip)
数据格式 WFDB(.mat 波形 + Octave/MATLAB 兼容 .hea 头文件 + ALARMS 标签清单)
许可证 ODC-BY 1.0(Open Data Commons Attribution License v1.0)
访问级别 开放(无需注册,遵守署名条款即可)
DUO 标签 NRES(无限制使用,须按 ODC-BY 署名)
语言 英语(文档与标注术语)
首发日期 2015-02-15
最后更新 v1.0.0(2015 年发布训练数据;2016-01-04 公布官方最终成绩)
发布机构 PhysioNet / Computing in Cardiology(Emory University、Georgia Tech、MIT 团队主持)
官方主页 https://physionet.org/content/challenge-2015/1.0.0/
下载地址 https://physionet.org/content/challenge-2015/1.0.0/training.zip
DOI 10.13026/C9FG-A467(v1.0.0)
引用次数 158+(Semantic Scholar,截至 2026-09)
AI 就绪度评分 ⭐⭐⭐⭐(4/5)— 有官方训练/隐藏测试划分、标签清单与 3 个开源示例基线;扣分项:测试集永不公开导致最终分不可复现、通道组合不固定需自行适配、无预处理一键脚本
页面状态 published

§0 E-E-A-T 可信度声明

  • 医学审核:千方病案医学编辑部(重症监护与心血管方向编辑)交叉审核:§2 医学背景(ICD-11 与 SNOMED CT 双映射、5 类报警临床定义)、§7 偏倚分析。
  • 数据工程审核:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。编码核验方式:SNOMED CT 概念经公共 FHIR 术语服务器(Ontoserver)逐码验证 display 名称。
  • 审核日期:2026-09-05

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

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

数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。PhysioNet/CinC Challenge 2015 采用 ODC-BY 1.0 开放许可,使用时须署名并引用官方论文。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。

§1 数据集概览

§1.0 📌 30 秒速览

这是什么? 这是 2015 年 PhysioNet/Computing in Cardiology Challenge(CinC 2015)发布的 ICU 假报警抑制数据集:1,250 条床旁监护仪波形记录,每条记录都对应一次监护仪发出的"危及生命心律失常"报警(心搏停止、极端心动过缓、极端心动过速、室性心动过速、心室扑动/颤动共 5 类),并由专家逐条标注为"真报警"或"假报警"。其中 750 条训练记录公开,500 条测试记录永久隐藏用于评分。

为什么重要? ICU 报警疲劳是公认的临床安全问题:文献报道 ICU 假报警率高达 86%,仅 2%–9% 的报警对患者管理真正重要(官方挑战页)。护士对噪声脱敏、响应变慢,患者睡眠被剥夺、谵妄风险升高。一个能可靠抑制假报警、又不吞掉真报警的算法,直接关系患者生死。该挑战用"假阳性权重 1、假阴性权重 5"的评分把这一临床不对称性写进了评测规则。

我能用它做什么? 你可以训练多信号(双导联 ECG + PLETH/ABP)时序判别模型来自动识别假报警;研究 ECG/PPG/ABP 伪迹检测与信号质量评估;复现当年冠军算法(Plesinger 81.39 分、Fallet 85.04 分)并与之比较;或把它作为 ICU 多模态波形自监督预训练的标注语料。数据以 WFDB 格式开放下载(352.4 MB),ODC-BY 1.0 许可,无需注册。

一句话记住它:ICU 报警的"真/假"裁判基准——750 条带专家标签的公开报警波形、一把 FN 加权 5 倍的评分尺、500 条永不公开的考题。

§1.1 摘要

CinC 2015 由 Gari D. Clifford(Emory University / Georgia Tech)主持,与 Ikaro Silva、Benjamin Moody、Roger Mark(MIT)等共同组织。数据自美国与欧洲四家医院、三家主流监护仪厂商的床旁监护仪收集:每段记录包含报警触发前 5 分钟的多参数波形(2 个 ECG 导联 + 1 个或多个 PLETH/ABP 脉搏通道,部分记录另有 RESP),报警触发点固定在记录第 5 分钟,触发事件起始须位于报警前 10 秒内以满足 ANSI/AAMI EC13 标准。一半训练记录为"实时"型(恰 5 分钟),一半为"回溯"型(额外含报警后 30 秒)。全部信号统一重采样至 250 Hz(官方内容页口径 12 bit),经 FIR 带通 0.05–40 Hz 与工频陷波滤波,并做了去除厂商/国别标识性频谱特征的去标识化处理。标注由至少 2 名专家独立完成、三分之二多数一致方纳入。挑战从 1,564 条合格报警中随机抽取 1,250 条(750 公开训练 + 500 隐藏测试),38 支队伍提交 215 份算法,冠军为 Event 1(实时)Plesinger 等 81.39 分与 Event 2(回溯)Fallet 等 85.04 分(挑战论文)。

数据以 WFDB 格式发布(每条记录一个 .mat 波形 + 一个 .hea 头文件,附 ALARMS 标签清单),训练集中假报警 456 条、真报警 294 条(实测统计,截至 2026-09)。值得注意的是类内真/假比高度分化:极端心动过速(Tachycardia)类仅 6.4% 为假,而心室扑动/颤动(Ventricular_Flutter_Fib)类高达 89.7% 为假——这直接决定了建模与评估策略(见 §4.2 与坑点 4)。官方还提供 3 个经典信号处理示例基线(得分 40.8–47.4),用于标定"朴素方法"与"冠军方法"之间的巨大提升空间。

§1.2 战略价值

维度一:临床问题与评测规则高度耦合的"不对称代价"范式。 大多数医学二分类基准用准确率或 AUC 评分,而 CinC 2015 的官方评分 Score = 100×(TP+TN)/(TP+TN+FP+5×FN) 直接把"漏掉一个真报警的代价是误报五倍"写入分母。这使它成为研究代价敏感学习、非对称损失函数与临床安全约束评测的天然试验台——这一设计也被后续报警抑制、脓毒症预警等 ICU 告警类研究广泛引用为评测范式。

维度二:多信号融合与"实时约束"的教科书级基准。 每条记录含双导联 ECG 与至少一个脉搏波形(PPG/ABP),且官方将 750 条训练记录精确对半切分为"实时"(无报警后信息)与"回溯"(含报警后 30 秒)两个子集,并设置两个独立赛道。研究者可以在同一数据上严格对比"报警触发瞬间可用的信息"与"事后复核可用信息"的算法性能差距——冠军数据显示实时赛道最高 81.39 分、回溯赛道 85.04 分,13 队投票集成达 87.04 分(编辑部文章),差距本身就是一个可研究的现象。

维度三:开放许可 + 永久隐藏测试集的"防泄漏"设计。 与许多一次性公开全部数据的基准不同,CinC 2015 的 500 条测试记录至今未公开,官方榜单分数无法被后续方法"刷分"。这为过拟合与测试集污染研究保留了干净的外部参照,也为后人提供了"训练集自举验证"的实践范本(官方提供 generateValidationSet.m 自检脚本与 3 个开源示例基线)。

维度四:教学与工程训练的理想规模。 352.4 MB、750 条记录、标签即取即用:一个下午即可完成从下载到第一版 Score 报告的全流程,但要从 40 分的朴素基线做到 80 分档,需要真正理解信号质量、通道一致性与代价敏感评测——难度梯度完整,适合作为医疗 AI 工程团队的入职训练与面试题库。

§1.3 同类数据集横向对比

数据集 规模 模态 标注 与本数据集的差异化
PhysioNet/CinC Challenge 2015 1,250 条报警记录(750 公开) ICU 多参数波形(ECG×2 + PLETH/ABP/RESP) 专家 2/3 多数标注真/假 以"报警事件"为单位的多信号真/假判别,FN 加权 5 倍评分
PhysioNet/CinC Challenge 2016 3,240 条心音录音 心音(phonocardiogram,部分同步 ECG) 正常/异常 + 信号质量 面向听诊心音分类,无 ICU 报警事件语境
MIMIC III 约 4 万名 ICU 患者 EHR 数值 + 部分波形 临床事件与结局 患者级纵向数据库,无报警真/假标注;与本数据集同属 PhysioNet/MIT 生态
PhysioNet/CinC Challenge 2014 200 条 10 分钟多参数记录 多参数波形 心搏位置标注 面向心搏检测而非报警判别
MIT-BIH 心律失常数据库 48 条 30 分钟双导联 ECG ECG 逐搏标注 单信号逐搏节律标注,无报警事件与多信号融合语境

§1.4 版本时间轴

时间 事件
2015-02-15 挑战开放,训练集(training.zip)发布,v1.0.0 登记于 PhysioNet
2015-03-05 训练集文件定稿(archive 目录时间戳:RECORDS/ALARMS 2015-03-05)
2015-04-10 非官方(Unofficial)阶段提交截止;Plesinger 76.6 分领跑
2015-09 CinC 2015 会议召开,挑战结果公布(Clifford 等,pp. 273-276)
2016-01-04 官方最终成绩公布:Event 1 冠军 Plesinger 等 81.39 分,Event 2 冠军 Fallet 等 85.04 分
2016-01-05 社区论坛(PhysioNet Challenges Google Group)开放答疑归档
2016-07 Physiological Measurement 特刊登出编辑部文章与后续研究(37(8):E5-E23)
截至 2026-09 数据保持 v1.0.0;测试集仍未公开

§1.5 典型应用场景

  1. ICU 假报警抑制算法研发:输入报警前多参数波形,输出真/假报警判别,直接对应挑战赛道与官方评分。这是数据集的第一性用途,冠军算法(Plesinger、Fallet)与全部 215 份官方提交都以此为任务。
  2. 多信号质量评估(SQI):假报警多源于电极脱落、脉搏传感器移位、管线冲洗等,数据天然构成"波形质量异常"语料。可据此训练通道级 SQI 模型,独立服务于监护数据清洗与下游建模。
  3. 代价敏感学习研究:FN 权重 5 倍于 FP 的评分规则适合检验非对称损失、代价敏感阈值校准方法。相比人工构造的不对称代价,该权重直接来自临床"漏报致死风险高于误报骚扰"的共识。
  4. 报警疲劳干预系统原型:以"抑制假报警且不漏真报警"为约束,评估延迟抑制、二次确认等临床交互策略的离线性能。官方投票集成实验(13 队投票 87.04 分)说明"多算法委员会"是可工程化的方向。
  5. 多模态波形自监督预训练:750 条标注记录 + 逐通道波形可作为 ECG/PPG/ABP 表征学习的小规模高质量微调集;与 MIMIC III 等大规模无标注 ICU 波形结合时,本数据集适合充当"对齐专家判别标准"的精调层。

§2 医学背景

§2.1 ICD-11 编码映射

本数据集的标签是"监护仪报警事件"而非患者最终诊断。下表将 5 类报警所对应的事件概念映射到 ICD-11(供病历检索与术语对齐使用):

报警事件 ICD-11 编码 ICD-11 中文名 备注
Asystole(心搏停止报警) MC82.2 心搏停止型心脏骤停 心脏骤停 MC82 下的非可电击节律分支
Extreme bradycardia(极端心动过缓报警) BC80.1 窦性心动过缓 报警为心率 <40 bpm 阈值事件,机制不限于窦性
Extreme tachycardia(极端心动过速报警) BC81 室上性心动过速(类属) 报警为心率 >140 bpm 阈值事件,机制不限于室上性
Ventricular tachycardia(室性心动过速报警) BC71.0 室性心动过速 含持续性与非持续性事件
Ventricular flutter/fibrillation(心室扑动/颤动报警) BC71.1 心室颤动 对应 ICD-10 I49.0(室颤与室扑合并编码)

§2.1b SNOMED CT 映射

以下 SNOMED CT 概念码已经公共 FHIR 术语服务器(Ontoserver)逐码验证:

术语 SNOMED CT 码 概念类型
Asystole 397829000 disorder
Cardiac arrest 410429000 disorder
Ventricular tachycardia 25569003 disorder
Ventricular fibrillation 71908006 disorder
Sinus bradycardia 49710005 disorder
Tachycardia 3424008 finding

§2.2 疾病与临床问题简介

本数据集面向的临床问题是 ICU 报警疲劳(alarm fatigue) 与 危及生命心律失常的床旁识别。五类报警事件在临床上分别意味着:心搏停止(心室电活动消失 ≥4 秒,须立即起搏/复苏)、极端心动过缓(心率 <40 bpm,可致脑灌注不足)、极端心动过速(心率 >140 bpm,可恶化为室颤)、室性心动过速(≥5 个室性搏动且 >100 bpm,可致血流动力学崩溃)与心室扑动/颤动(须立即除颤的可电击节律)。这些事件共同的特点是"分钟级恶化窗口"——从触发到不可逆损伤的时间常以分钟计,因此监护仪算法为保灵敏性普遍牺牲特异度:官方挑战页引述文献称 ICU 假报警率高达 86%,6%–40% 的报警虽为真但临床不重要,仅 2%–9% 对患者管理真正重要;报警声压可超过 80 dB,导致患者睡眠剥夺、应激激素升高、谵妄风险增加,并使护士响应变慢(官方挑战页)。在这些假报警中,伪迹是主要成因:起搏器钉样伪迹可伪装成 QRS,脉搏波形可因传感器脱落、运动伪影、管线冲洗或导管凝血而失真——这正是本数据集要求算法融合多信号交叉验证的原因。

报警类型 触发条件(官方定义) 危及生命的机制 典型假报警成因
Asystole 无 QRS ≥4 s 心室停搏、脑灌注中断 电极脱落致信号消失、起搏器伪迹掩盖
Extreme bradycardia <40 bpm 连续 5 搏 心输出不足、晕厥 心电幅值过低致 QRS 漏检
Extreme tachycardia >140 bpm 连续 17 搏 可恶化为室颤/室扑 T 波或伪迹被误检为 QRS
Ventricular tachycardia ≥5 室性搏动且 >100 bpm 血流动力学崩溃 室上性节律伴束支阻滞误判、伪迹
Ventricular flutter/fib 扑动/颤动波形 ≥4 s 须立即除颤 运动伪影、电极松动振荡

上表是理解本数据集"标注合理性"的钥匙:每类报警的触发条件都来自 ANSI/AAMI EC13:2002 标准,而"典型假报警成因"列正是 5 类报警真/假比例分化的机理来源——例如 Asystole 报警的电生理证据(一段平线)极易被电极脱落模拟,因此假报警占比高;Ventricular flutter/fib 的波形形态复杂、伪迹难以长期伪造,因此 6 条真报警对 52 条假报警中绝大部分假例来自"相似但不致命"的波形而非纯粹伪迹。算法设计应针对各类报警的"主导假因"做差异化特征(§6.4 报警类型特征表)。

§2.3 临床任务定义

  • 任务类型:报警事件级的二分类(抑制/放行),属于"后处理型临床决策支持"——在监护仪已触发报警之后,用同一时段的多参数波形复核报警真伪。
  • 输入:报警触发前 5 分钟的双导联 ECG + 至少一个脉搏波形(PLETH/ABP),实时赛道严禁使用报警后数据;回溯赛道可使用报警后 30 秒。
  • 输出:真报警(放行,通知医护)或假报警(抑制,可延迟处理)。
  • 风险约束:漏报(抑制真报警)的临床代价远高于误报,官方评分将 FN 权重设为 FP 的 5 倍,对应"宁可多响应、不可漏真报"的临床惯例。
  • 评价场景:算法须以"报警触发瞬间"为信息边界运行(Event 1),或以"事后复核"模式运行(Event 2),两者性能不可直接比较。
  • 与既有工作的关系:在挑战之前,基于 ABP 波形核验 ECG 报警的思路已被验证(Aboukhalil 等 2008;Li/Clifford 2009 的 ABP 伪迹模型),CinC 2015 的贡献是把这一思路升级为"全信号可用的公开可比赛基准"。

§2.4 患者人群

维度 内容
来源机构 美国与欧洲四家医院 ICU(官方未具名)
数据采集设备 三家最大 ICU 监护仪厂商的床旁监护仪(厂商未具名)
人群规模 官方未披露确切患者人数;每名患者每类报警最多纳入 3 条
入选条件 触发 5 类危及生命心律失常报警、且经 ≥2 名专家 2/3 多数判定为真或假的报警事件
年龄/性别/种族 官方未披露
就医类型 ICU 住院(成人监护场景为主,官方未披露细分)
排除 标注为"impossible to tell"、导出错误(Reject)或未达 2/3 多数的报警
伦理口径 回顾性使用已去标识化数据,无干预;官方及后续工作表述为无需伦理批准
数据保护 不含直接标识符;波形经滤波去除机构/国别可识别特征

§2.5 临床价值

若假报警抑制算法可靠落地,可同时改善三方:患者——噪声降低与睡眠结构改善可减少谵妄与 ICU 住院天数(官方页引述的文献链);护士——减少无效跑动与"狼来了"脱敏,缩短真报警响应时间;系统——报警分级与延迟抑制策略可建立在可量化的真/假判别之上。官方编辑部文章进一步指出,挑战的直接产出(开源算法 + 标注数据)为监护仪厂商改进报警逻辑提供了可复用的证据基础,并呼吁行业扩大此类数据库的建设(Physiol Meas 2016)。

本数据集的价值在于提供了一个经过专家标注、评测规则临床对齐的公开基准,使"抑制多少假报警、付出多少漏报风险"这一权衡可以被严格测量,而不是停留在经验层面。对 AI 工程团队而言,它还是少数把"临床代价不对称"写进官方指标的公开数据集,适合作为代价敏感方法的回归测试基准。

§2.6 金标准标注

维度 说明
标注对象 每条记录对应的报警事件(真/假二分类)
标注方式 盲法独立评审:标注者随机分配患者,逐条查看报警前 15 秒 + 报警后 5 秒波形(可缩放滚动),必要时查看监护仪搏动标签
标注者 多名专家组成标注团队(含临床与信号处理背景),跨 Emory、MIT、Beth Israel/Harvard
一致性规则 每条报警至少 2 人独立评审;2/3 多数一致为"真"或"假"方纳入;少数"impossible to tell"被排除
标注性质 专家共识金标准(事件级二分类);记录前 5 分钟内的其他心律失常事件未标注
已知局限 真值依赖人眼判读;监护仪自身搏动位置与可变报警阈值未随数据发布
与数据文件的关系 论文表 1 与发布文件存在 ±3 例出入;统计以 ALARMS 文件为准(坑点 5)

这套标注协议的强度在 2015 年属于领域最高标准:跨机构多专家盲评、多数共识、排除不可判读样本。它的边界也同样清晰——标注者看到的是"报警时刻附近"的波形窗口而非全程住院数据,因此真值回答的是"这次报警是否值得响应",而非"该患者最终诊断是什么"。使用者在任何论文或产品文档中转述标签语义时,应保持这一事件级语义,不得外推为诊断标签。

§3 数据集规格

§3.0 版本抉择矩阵

你的需求 推荐版本/入口 大小 理由
复现挑战、批量训练 PhysioNet v1.0.0 training.zip 352.4 MB 一次性获得全部 750 条训练记录 + ALARMS 标签
只取少量记录试验 PhysioNet 文件页逐记录下载 数 KB/记录 免下载整包,直接按记录名取 .hea/.mat
查阅挑战规则与原始公告 archive.physionet.org/challenge/2015 网页 保留官方评分公式、双赛道规则与新闻时间线
查看冠军开源代码 physionet.org/challenge/2015/sources 代码包 顶部开源提交源码与 AUTHORS/LICENSE

版本唯一性是本数据集的一个优点:自 2015 年发布以来官方从未修改数据内容(恒为 v1.0.0),这使跨年份论文之间的复现结果可直接对比——唯一需要留意的口径差异仍是"论文表 1 vs ALARMS 实测"的 ±3 例出入(坑点 5)。

§3.1 模态详情

每条记录为一段 ICU 床旁多参数波形:2 个 ECG 导联(实测观察到 II、V、aVF、III 等组合,官方称优先"一个肢体导联 + 一个胸前导联";导联未必是触发报警的导联)加 1 个或多个脉搏通道(PLETH 光电容积脉搏波和/或 ABP 动脉血压),部分记录另含 RESP 呼吸阻抗通道(实测样本 a109l 含 II/aVF/ABP/RESP 四通道)。训练集中脉搏通道构成为:仅 PPG 405 条、仅 ABP 122 条、两者皆有 223 条(论文表 1)。

通道 实测名称 物理单位 临床含义 建模角色
ECG 导联 1 II / aVF / III 等 mV 肢体导联心电 QRS 检测、节律核验主信号
ECG 导联 2 V / aVF / III 等 mV 胸前/备用导联 交叉核验、导联脱落冗余
脉搏波 PLETH NU(无量纲) 光电容积脉搏波 与 ECG 心率一致性核验
动脉血压 ABP mmHg 有创动脉压波形 搏动核验、定标明确
呼吸 RESP NU 呼吸阻抗 部分记录存在,辅助伪迹溯源

所有信号统一重采样至 250 Hz、经 FIR 带通 0.05–40 Hz 与工频陷波滤波;官方内容页称重采样为 12 bit,挑战论文则称缩放至 16-bit 范围(两处官方口径并存,正文以内容页 12 bit/250 Hz 为准,逐通道增益以各 .hea 文件为准)。监护仪自身的心搏位置标记与可变报警阈值未随数据发布。

§3.2 按子集样本数

子集 记录数 真报警 假报警 说明
训练集(公开) 750 294 456 实测 ALARMS 文件统计;论文表 1 为 458F/292T,存在 ±3 例出入
├ short(实时) 375 — — 恰 300 s,无报警后数据
└ long(回溯) 375 — — 330 s,含报警后 30 s
测试集(隐藏) 500 157 343 论文表 1;永不公开
├ short 250 — — 仅用于 Event 1 评测
└ long 250 — — 两个事件均参与评测

按报警类型的训练集构成(实测 ALARMS):Asystole 122、Bradycardia 89、Tachycardia 140、Ventricular_Tachycardia 341、Ventricular_Flutter_Fib 58——与官方抽样时参照的原始池分布(VTA 47% 为最大类)方向一致。按记录名前缀实测计数为 a=122、b=89、t=140、v=341、f=58,与 ALARMS 完全吻合,可作为加载器的完整性校验。

§3.3 数据格式

文件类型 格式 说明
波形数据 .mat(WFDB 格式,Octave/MATLAB 兼容) 每记录一个文件,格式声明 “16+24”;可直接 MATLAB/Octave 读取,须按增益缩放
头文件 .hea 含通道数、采样率(250)、样本数(75,000 或 82,500)、逐通道增益/基线/单位与通道名;尾注释含报警类型与真/假
标签清单 ALARMS CSV:record,alarm_type,label(0=假/1=真),共 750 行
记录清单 RECORDS 750 条记录名(如 a103l、t106s、v100s)
校验文件 MD5SUMS/SHA1SUMS/SHA256SUMS 逐文件校验和
论文集 papers/(PhysioNet 文件页) CinC 2015 相关论文 HTML 索引(CCAL 3.0 许可)

§3.4 存储大小

  • training.zip 官方标注 352.4 MB(解压后含 750 对 .hea/.mat 与清单文件);单个记录约 439–645 KB(实测目录)。
  • 无官方披露的完整(训练+测试)归档大小;测试集不公开。

§3.5 标注方式

事件级人工金标准:每条报警由多名专家独立盲评(true/false/impossible to tell 三选),以 2/3 多数共识为准;无自动预标注、无弱监督标签。波形本身无逐搏标注。

§3.6 标注者资质与一致性

标注团队由挑战组织方遴选的专家组成(作者署名含 Emory、MIT、Beth Israel/Harvard 的临床信息学与生理信号研究者)。官方仅披露"≥2 名标注者 + 2/3 多数一致"的纳入规则,未披露标注者人数、Kappa 等一致性系数——引用一致性时请标注"官方未披露"。

§3.7 采集周期

数据为挑战举办前集中收集的 ICU 住院片段(每条对应一次报警事件,事件间同一患者报警间隔 ≥5 分钟)。官方未披露精确起止日期;temporalCoverage 以"2015 年前后"口径记述。每段记录的时间跨度为 300 秒(short)或 330 秒(long),报警固定在第 300 秒触发。

§3.8 地域覆盖

美国与欧洲四家医院(官方未具名、未披露国别分布);信号已滤波去除可识别厂商与国别的频谱特征。单一医院或厂商在训练/测试集中均不超过一半。对使用者的影响:无法按地域分层评估,任何"地域稳健性"结论都需要外部数据支撑。

§3.9 设备规格

设备维度 内容
监护设备 三家最大 ICU 监护仪厂商的床旁监护设备(官方未具名厂商与型号)
信号来源 床旁监护仪导出的数字化波形 + 报警消息文本
采样/量化 统一重采样 250 Hz;内容页口径 12 bit(论文另有 16-bit 范围缩放表述)
预滤波 FIR 带通 0.05–40 Hz + 工频陷波;去除厂商/国别标识性频谱特征
已知伪迹 ECG 起搏器钉样伪迹与其他噪声;脉搏通道运动伪影、传感器脱落、管线冲洗、导管凝血
未发布内容 监护仪自身搏动标记、可变报警阈值、厂商/医院归属标签

§3.10 深度溯源链

  1. 床旁采集:三家最大 ICU 监护仪厂商的床旁监护仪,在美国与欧洲四家医院 ICU 连续记录多参数波形与报警消息。
  2. 事件筛选:按 ANSI/AAMI EC13 对齐的 5 类报警定义筛选合格报警,共 1,564 条。
  3. 专家标注:多专家盲评(true/false/impossible to tell),≥2 人且 2/3 多数一致方保留。
  4. 去标识化:滤波去除厂商/国别标识性频谱特征;报警注记名归一化;不含患者元数据。
  5. 标准化:统一重采样 250 Hz、带通/陷波滤波、按 1,250 条随机抽样并划分训练/隐藏测试。
  6. 发布:WFDB 打包,PhysioNet v1.0.0(DOI 10.13026/C9FG-A467),ODC-BY 1.0 许可。

本数据集与 MIMIC III 同属 PhysioNet/MIT 生态,但官方文档未将其描述为 MIMIC II/III 的衍生子集。

§4 数据结构

§4.0 目录树

training/                       # training.zip 解压后(data_root = .../training)
├── ALARMS                      # 标签清单:record,alarm_type,label(0/1),750 行
├── RECORDS                     # 记录名清单,750 行
├── MD5SUMS / SHA1SUMS / SHA256SUMS
├── a103l.hea / a103l.mat       # a=Asystole;l=long(330 s)
├── a104s.hea / a104s.mat       # s=short(300 s)
├── b*.hea/.mat                 # b=Bradycardia(极端心动过缓)
├── t*.hea/.mat                 # t=Tachycardia(极端心动过速)
├── v*.hea/.mat                 # v=Ventricular_Tachycardia
├── f*.hea/.mat                 # f=Ventricular_Flutter_Fib
└── ...                         # 记录名编号自 100 起,如 v100s、a103l、t106s

ALARMS 文件首行实例(与 RECORDS/.hea 三方一致,可作加载自检):

v100s,Ventricular_Tachycardia,0
v101l,Ventricular_Tachycardia,0
a103l,Asystole,0
t106s,Tachycardia,1
t107l,Tachycardia,1
a109l,Asystole,0

.hea 头文件实例(a103l,实测):

a103l 3 250 82500
a103l.mat 16+24 7247/mV 16 0 -171 -27403 0 II
a103l.mat 16+24 1.052e+04/mV 16 0 9127 -301 0 V
a103l.mat 16+24 1.253e+04/NU 16 0 6042 -17391 0 PLETH
#Asystole
#False alarm

§4.1 DAIMS 字段字典

字段 类型 说明 示例值 AI 用途 观测误差 信息性缺失编码 取值范围
record string 记录名:类型前缀 + 编号 + s/l 后缀 a103l 主键,关联波形与标签 无 无 前缀 a/b/t/v/f;后缀 s/l
alarm_type string 报警类别(ALARMS 第 2 列) Ventricular_Tachycardia 分层抽样/分组评估 无 无 5 个枚举值
label int 真值:0=假报警,1=真报警(ALARMS 第 3 列) 0 监督信号 专家 2/3 共识 无
signal(.mat) float 波形 物理单位波形(须按 .hea 增益缩放) ECG:mV;ABP:mmHg;PLETH:NU 模型输入 含伪迹(起搏器、运动、脱落) 平线/脱落段即假报警证据,勿删 逐通道按增益定标
channel_name string 通道名(.hea 行尾) II / V / aVF / ABP / PLETH / RESP 动态通道索引 通道组合逐记录不同 无 见 §3.1
sampling_rate int 统一 250 Hz 250 时频特征 无 无 250
num_samples int 75,000(short)/82,500(long) 82500 时间窗识别 无 无
alarm_time int 报警固定于记录第 300 s 300 特征窗边界 官方标准化 无 300
suffix s/l string 实时/回溯子集标识(记录名末位) l 双赛道约束 无 无
.hea 注释行 string #报警类型 与 #True/False alarm #False alarm 冗余校验标签 与 ALARMS 一致 无 文本
flat/nan(派生) bool/float 使用者可从波形派生的质量标记 flat=True(≥2 s 平线) 信息性缺失特征(坑点 6) 派生口径自行定义 无 逐通道
suffix s/l(派生) string 从 record 名解析的子集标识 l 赛道约束与分组评估 无 无

§4.2 标签分布

实测训练集(750 条,统计自官方 ALARMS 文件,截至 2026-09):

alarm_type 假(0) 真(1) 合计 占比
Asystole 100 22 122 16.3%
Bradycardia 43 46 89 11.9%
Tachycardia 9 131 140 18.7%
Ventricular_Tachycardia 252 89 341 45.5%
Ventricular_Flutter_Fib 52 6 58 7.7%
合计 456 294 750 100%

两点必须注意:其一,整体 60.8% 为假报警;其二,类别内真/假比极度分化——Tachycardia 仅 6.4% 为假、Ventricular_Flutter_Fib 高达 89.7% 为假。论文表 1 的训练集数字(458F/292T,ASY 100/20、EBR 45/45、ETC 8/131、VTA 253/90、VFB 52/6)与实际发布的 ALARMS 文件存在 ±3 例级出入,以数据文件为准(见坑点 5)。

这种类内分化并非数据错误,而是有临床逻辑的:监护仪的心率阈值报警(Tachycardia)在真实 ICU 中绝大多数由真实快速心律引发(假报警多被"临床不重要但为真"类别吸收),而心室扑动/颤动的波形判据最容易被运动伪影与电极振荡触发——故 VFB 类假报警占压倒多数。对建模者而言,这意味着"报警类型"本身就是强先验:模型应按 alarm_type 条件化(分层采样、类型特异特征或类型条件头),而不是把 5 类混在一起学一个全局判别面。

按类别读表的第三个收获是"哪些类别不值得花力气":Tachycardia 假报警仅 9 条,任何模型在这 9 条上的表现都属统计噪声,正确的做法是把 Tachycardia 当作"接近恒真"的类别处理并在消融中单独说明;同理 VFB 真报警 6 条,其召回率的置信区间极宽,不应作为模型优劣的主张依据。真正承载分数差异的是 Asystole(122 条)与 Ventricular_Tachycardia(341 条)两类。

按 s/l 后缀的真/假构成官方未逐类披露;使用 long 记录时还应意识到:其 30 秒后置数据里包含医护干预(如胸外按压、调整电极)的物理痕迹,Event 2 的高分(85.04 vs 81.39)部分来自这类"事后信息"。

§4.3 关键统计

统计项 数值 来源
报警总数(训练+测试) 1,250 官方内容页
合格报警池 1,564 挑战论文
训练集真/假 294 真 / 456 假(实测) ALARMS 文件
测试集真/假 157 真 / 343 假 论文表 1
记录时长 short 300 s / long 330 s .hea 实测
采样率 250 Hz(统一) .hea 实测
通道数/记录 3–5 个(2 ECG + 1–2 脉搏,偶含 RESP) .hea 实测
单记录文件大小 约 439–645 KB archive 目录实测
同患者报警间隔 ≥5 分钟(通常更长) 官方挑战页
每患者每类报警上限 3 条 官方挑战页
标注一致性规则 ≥2 名标注者、2/3 多数 官方挑战页
提交规模 38 队 / 215 份 挑战论文
原始池报警类型分布 ASY 17%、EBR 11%、ETC 17%、VTA 47%、VFB 7% 挑战论文

§4.4 数据层级

数据层级为:医院(4 家,未具名)→ 患者(未披露人数,每患者每类报警 ≤3 条)→ 报警记录(1,250 条,每条一个 WFDB 记录)→ 通道(3–5 个并行波形)→ 样本点(250 Hz)。注意:同一患者的多条报警未提供关联字段,患者级分组需依赖官方"互斥患者群"的陈述而非数据内标识——这对划分策略是硬约束(见 §5)。

这一层级也决定了本数据集的统计单位是"报警事件"而非"患者":所有性能指标都是事件级计数。若要做患者级推断(如"模型对哪类患者更准"),需要外部数据补充患者属性;直接把事件级指标当患者级指标解释是常见的方法学错误。

§4.5 缺失值与信息性缺失

情形 表现 处理建议
通道缺失 记录仅 3 通道(无 ABP 或无 PLETH) 按通道名动态索引;缺失通道置零并附掩码
平线/脱落 PLETH/ABP 恒定值 ≥2 s(传感器脱落、管线冲洗) 信息性特征:保留并显式编码,勿当作噪声滤除
NaN/异常值 导出接口错误、样本饱和 按增益与量程检测饱和;逐通道稳健归一化
未标注事件 报警前 5 min 内其他心律失常事件未标注 勿将前段波形当作"无事件"负样本使用
后置数据 long 记录第 300 s 后含 30 s 数据,short 记录没有 赛道约束(Event 1 截断);后置段含医护干预痕迹
心率/报警阈值 监护仪可变阈值未随数据发布 勿尝试还原监护仪内部决策;专注波形证据

§5 划分与使用建议

§5.1 官方划分

训练集 750 条公开(375 short + 375 long),测试集 500 条隐藏(250 short 仅 Event 1 + 250 long 双赛道);训练与测试来自互斥患者群,同一医院/厂商不超过任一集合的一半(挑战论文)。

官方划分的两层意图值得理解:患者互斥防止"同一患者的波形特征"跨集泄漏;医院/厂商占比约束防止"识别某家机构信号风格"的捷径(官方甚至主动滤波抹去了厂商/国别标识性频谱特征)。这意味着任何在训练集内做的研究,都天然继承了这两层保护——自行引入外部数据时要重新检查这两类泄漏。

一个容易忽略的细节:官方测试集含 250 条 short 记录,但这些记录只参与 Event 1 评分;Event 2 仅在 250 条 long 记录上评测。因此训练集的 s/l 对半结构(375/375)本身就是官方为了让两个子集都有足够样本而刻意设计的,使用者在划分自建验证集时应保持这一比例。

§5.2 社区惯例划分

由于测试集不可得,社区通行做法是在 750 条训练记录上做分层 k 折交叉验证(常用 5 折,按 alarm_type 分层),或使用官方 generateValidationSet.m 思路随机抽取训练子集自检。有工作进一步把 long/short 子集分开评估以模拟双赛道:short-only 评估对应"纯实时"能力,long 记录内部再按"是否使用后置 30 秒"做消融,可量化事后信息的边际价值。

另一种常见做法是把 alarm_type × label 组合作为分层键(如 Tachycardia-假仅 9 条,须保证每折至少含 2 条),并在报告时给出折间方差而非单点分数——单点分数在 VFB(仅 58 条)这类小类上噪声极大。

无论采用哪种划分,报告规范保持一致:给出每折的 TP/FP/TN/FN 原始计数、官方 Score 与逐类别 TPR/TNR;只报均值会掩盖小类折间震荡,也使复现者无法核对评分公式实现是否正确(坑点 5)。

§5.3 划分策略与泄漏风险(重点)

  1. 按患者分组划分是理想,但不可执行:数据不含患者 ID,只能依赖官方"训练/测试患者互斥"的保证;自行划分时无法严格按患者分组——应在论文中显式说明这一局限,并采用报警间隔 ≥5 分钟的官方规则作为近似隔离。
  2. long 记录的 30 秒后置数据是最大泄漏源:若目标是模拟 Event 1(实时),必须在第 300 s 截断信号;混用 long 记录的后置数据会使指标虚高。
  3. 分层维度:按 alarm_type 分层(5 类,尤其保护 VFB 仅 58 条、Tachycardia 仅 9 条假报警的小类)。
  4. 禁止用 .hea 注释行以外的任何渠道"恢复"测试标签:测试集从未公开,任何声称"测试集分数"的非官方结果都无法核验。
  5. 特征工程里的时间窗越界:滑动统计(滑动均值/方差)若不小心把报警时刻之后的数据卷入窗口(对 long 记录),即构成实时赛道泄漏;所有 rolling 操作应在第 300 s 处硬截断。
  6. 折间 s/l 构成不一致:若训练与验证折的 long/short 比例不同,折间分数差异会混入"信息量差异",掩盖模型真实方差;分层键应包含 s/l 后缀。

§5.4 交叉验证建议

推荐 5 折分层 CV(按 alarm_type × label 双层分层)+ 每折内分别报告 TPR/TNR 与官方 Score;如需模拟双赛道,为 short/long 记录分别建立折并独立评分。

操作要点:其一,折划分前固定随机种子并检查每折小类计数(VFB 真报警 6 条、Tachycardia 假报警 9 条,任何折缺失都会让该折 Score 失真);其二,所有阈值调优(含"5 倍 FN 权重"相关的决策边界)必须在训练折内部完成,验证折只做最终评估一次,否则会引入阈值过拟合;其三,若同时报告准确率/ROC-AUC,请并列给出官方 Score,方便与官方榜单对话。

§5.5 外部验证建议

外部验证可接入与 MIMIC III 同源的 ICU 波形资源,或 MIMIC IV 配套波形组件;亦可参考后续 CinC 2016 心音分类挑战的多机构做法,在独立医院数据上做前瞻性评估。凡以"隐藏测试集分数"为指标的工作,须以官方 Jan 2016 公告与 Physiol Meas 2016 编辑部文章为准。

若目标是发表,建议采用"三层证据"结构:训练集分层 CV(内部效度)→ 独立 hold-out(如 15% 完全不参与调参)→ 外部 ICU 波形库的迁移评估(外部效度),并在正文明确三者与官方隐藏测试集之间的不可比性。

§6 AI 就绪指南

§6.0 云端快速启动

数据体量小(352.4 MB),CPU/单卡 GPU 即可完成训练与推理,无需特殊云配置。Google Colab / Kaggle Notebook 直接 wget 即可;AWS Open Data 提供 s3://physionet-open/challenge-2015/1.0.0/ 免签名读取(官方内容页)。

最小环境:Python 3.9+ 与 wfdb、numpy、scipy、torch 四个包(pip install wfdb numpy scipy torch);官方挑战时代的参考环境为 Ubuntu 14.04 + MATLAB 2014b + WFDB Toolbox 0.9.9,复刻历史提交时才需要 MATLAB 栈。所有代码均可离线运行——把 training.zip 解压到本地后,仅依赖标准科学计算栈。

云上加载三点注意:其一,wfdb 远程读取(pn_dir)在 Colab 首次运行会触发约 350 MB 下载与缓存,长任务建议改用 wget 预取 training.zip 后本地解析,便于断点续跑;其二,AWS Open Data 桶可直接 aws s3 cp --no-sign-request s3://physionet-open/challenge-2015/1.0.0/ . 拉取,免凭证;其三,若把数据转传为 Kaggle Dataset 等中间格式,请原样保留 ALARMS/RECORDS 文件名与 .hea 逐字节内容——任何"整理"都可能破坏 wfdb 解析(坑点 2)。

§6.1 快速上手

# 目录结构预期:
#   data_root/                      # 你存放数据的根目录
#     training/                     # training.zip 解压后的目录(官方原始结构)
#       ALARMS  RECORDS  a103l.hea  a103l.mat ...
# data_root 拼接关系:wfdb 记录路径 = data_root/training/<record_name>(无扩展名)
# 最小可用子集:ALARMS 中任意一行对应的 1 个 .hea + 1 个 .mat,即可跑通加载→标签→波形
# 本例不落盘直接用 wfdb 的 pn_dir 远程读 PhysioNet(首次会缓存到本地 WFDB 缓存目录)
import wfdb

rec = wfdb.rdrecord("a103l", pn_dir="challenge-2015/1.0.0/training")  # 远程读官方数据
print(rec.fs, rec.sig_name, rec.p_signal.shape)   # 250 ['II','V','PLETH'] (82500, 3)
print(rec.p_signal[:5])                            # 物理单位波形:ECG=mV,PLETH=NU
# 标签读取:ALARMS 每行 record,alarm_type,label(0=假/1=真)

要点:wfdb.rdrecord 返回的 p_signal 已按 .hea 增益换算为物理单位(坑点 1);通道名在 rec.sig_name,请按名索引(坑点 2)。

自检基线:运行后 rec.fs == 250、rec.sig_len 为 75,000(short)或 82,500(long)、rec.n_sig 在 3–5 之间。若任何一项不符,大概率是中间格式转传破坏了 .hea(坑点 2),应回到官方 zip 重新取数。

§6.2 数据获取

方式 命令/链接 大小 前置条件
ZIP 直下 training.zip 352.4 MB 无(开放访问)
wget 递归 wget -r -N -c -np https://physionet.org/files/challenge-2015/1.0.0/ 352.4 MB 无
AWS S3 aws s3 cp --no-sign-request s3://physionet-open/challenge-2015/1.0.0/ ./challenge2015/ --recursive 352.4 MB AWS CLI
Python 流式 wfdb.rdrecord(<record>, pn_dir="challenge-2015/1.0.0/training") 按需 pip install wfdb
# 申请流程:无。ODC-BY 1.0 开放许可,无需注册/签署协议;使用时署名并引用官方论文
wget -q https://physionet.org/content/challenge-2015/1.0.0/training.zip
unzip -q training.zip -d data_root
ls data_root | head    # 解压后即 training/ 目录

下载后请先用官方校验和验完再用:cd data_root && sha256sum -c SHA256SUMS(或 MD5SUMS/SHA1SUMS),避免传输损坏导致的静默波形错乱(坑点 8)。若网络受限,可改用 AWS S3 免签名同步,或用 §6.1 的 pn_dir 流式读取按需取记录。

§6.3 预处理全流程

流程:读取(含物理量换算)→ 通道对齐 → 质量检查(平线/饱和/缺失)→ 截窗(Event 1 在第 300 s 截断)→ 逐通道标准化 → 输出固定长度张量。

步骤 输入 输出 关键规则
读取 .hea + .mat 物理单位波形 [N,C] wfdb 自动按增益换算(坑点 1)
通道对齐 原始通道序 类型分组张量 + 掩码 按通道名索引(坑点 2)
质量检查 物理波形 平线/NaN/饱和标记 平线是证据不是噪声(坑点 6)
截窗 全记录 第 300 s 前波形 Event 1 严禁后置数据(坑点 3)
标准化 截窗波形 零均值单位方差 逐通道稳健统计(中位数/IQR)
输出 标准化波形 [C,N] 张量 + label 通道零填充至固定 C
import numpy as np
import wfdb

ALARM_AT = 300 * 250          # 报警固定在第 300 s(75,000 个样本处)
WIN_PRE  = 10 * 250           # 官方口径:触发事件起始位于报警前 10 s 内(4:50-5:00)

def load_record(path_stem: str, event1: bool = True):
    """读取一条记录,返回 (物理单位波形 [N,C], 通道名列表)。
    path_stem: 形如 'data_root/training/a103l'(不带扩展名)"""
    rec = wfdb.rdrecord(path_stem)
    x = rec.p_signal.astype(np.float32)          # 已按 .hea 增益换算(坑点 1)
    if event1:
        x = x[:ALARM_AT, :]                      # 实时赛道:严禁使用报警后数据
    return x, rec.sig_name

def quality_mask(x: np.ndarray, flat_sec: float = 2.0) -> dict:
    """逐通道质量检查:平线(信息性:传感器脱落/管线冲洗)与 NaN 比例。
    返回 {通道索引: {'flat': bool, 'nan': float}}"""
    out = {}
    flat_n = int(flat_sec * 250)                 # 平线判定的最小连续样本数
    for c in range(x.shape[1]):
        d = np.abs(np.diff(x[:, c]))
        is_flat = d < 1e-8                       # 相邻样本几乎不变的游程
        run = best = 0
        for v in is_flat:
            run = run + 1 if v else 0
            best = max(best, run)
        out[c] = {'flat': bool(best >= flat_n),
                  'nan': float(np.mean(~np.isfinite(x[:, c])))}
    return out

平线段是假报警的直接证据(如 PLETH 传感器脱落导致的"心搏停止"假象),务必作为特征保留而非清洗掉(坑点 6)。

在深度模型之外,特征工程基线仍是本数据集上最稳的路线(冠军与多数高分队均以此为主)。下例给出通道一致性核心特征——用脉搏通道(PPG/ABP)估计的心率与 ECG 心率的"矛盾程度",这是冠军 Plesinger 与 Fallet 方法的共同思想:

from scipy.signal import find_peaks

def pulse_rate_consistency(x: np.ndarray, names: list, alarm_sec: float = 295.0):
    """计算 ECG 心率与各脉搏通道心率的一致性特征(Event 1 约束:只看报警前)。
    返回 dict:{'ecg_hr': float, 每个脉搏通道: {'pulse_hr', 'abs_diff', 'agree'}}"""
    end = int(alarm_sec * 250)                    # 检查窗:报警前最后 ~2 分钟内更稳
    start = max(0, end - 120 * 250)
    feats = {'ecg_hr': np.nan}
    ecg_idx = [i for i, n in enumerate(names) if n in ('II', 'V', 'aVF', 'III')]
    pulse_idx = [i for i, n in enumerate(names) if n in ('PLETH', 'ABP')]
    def hr_of(sig):
        s = sig - np.median(sig)
        pk, _ = find_peaks(s, distance=int(0.3 * 250))   # 最小 200 bpm 间距
        if len(pk) < 3:
            return np.nan
        ibi = np.diff(pk) / 250.0
        return 60.0 / np.median(ibi)
    if ecg_idx:
        feats['ecg_hr'] = hr_of(x[start:end, ecg_idx[0]])
    for i in pulse_idx:
        hr = hr_of(x[start:end, i])
        ok = np.isfinite(hr) and np.isfinite(feats['ecg_hr'])
        feats[names[i]] = {'pulse_hr': hr,
                           'abs_diff': abs(hr - feats['ecg_hr']) if ok else np.nan,
                           'agree': bool(ok and abs(hr - feats['ecg_hr']) < 10)}
    return feats
# 解读:报警时若 ECG 心率与全部脉搏通道心率一致 → 倾向真报警;
#      ECG 显示停搏/极慢而脉搏通道正常 → 电极问题(假报警)的概率大增。

该特征族可直接喂入逻辑回归/GBDT(§6.7),也可作为深度模型的辅助输入;官方三个示例基线得分仅 40.8–47.4 分,说明"无交叉核验的朴素 QRS 检测"离及格线很远——通道间一致性是本数据集最重要的归纳偏置。

按报警类型组织特征族(类型特异性是高分提交的共同经验):

报警类型 核心判别问题 特征族示例
Asystole(122 条) ECG 无 QRS 是真停搏还是信号消失 各 ECG 导联 QRS 检出一致性、脉搏通道有无搏动、起搏钉检测计数
Bradycardia(89 条) 慢心率是真还是漏检 ECG×脉搏通道心率差、IBI 变异系数、QRS 形态置信度
Tachycardia(140 条) 快心率是真还是 T 波/伪迹误检 RR 间期分布、脉搏通道率差、ECG 与 PLETH 搏动数比
Ventricular_Tachycardia(341 条) 宽 QRS 快节律真伪 QRS 宽度/形态聚类、房室分离线索、ABP 脉搏幅度是否维持
Ventricular_Flutter_Fib(58 条) 颤动波 vs 伪影振荡 频谱集中度、通道间相关性、ABP 是否同步失搏

§6.4 PyTorch DataLoader(完整可运行)

<details>
<summary>展开完整 Dataset + DataLoader 代码(约 40 行)</summary>

import csv, random
import numpy as np
import torch
from torch.utils.data import Dataset, DataLoader
import wfdb

ALARM_AT = 300 * 250          # 报警样本点
CTX_SEC  = 300                # 使用报警前全部 5 分钟上下文
CTX_N    = CTX_SEC * 250

class Challenge2015AlarmDataset(Dataset):
    """CinC 2015 假报警二分类数据集。
    root: training 目录(含 ALARMS/RECORDS 与 .hea/.mat)
    event1=True 时在第 300 s 截断(实时赛道约束,见坑点 3)。
    """
    def __init__(self, root: str, event1: bool = True, ctx_sec: int = CTX_SEC,
                 augment: bool = False):
        self.root, self.event1, self.augment = root, event1, augment
        self.ctx_n = ctx_sec * 250
        with open(f"{root}/ALARMS") as f:
            self.items = [(r, t, int(y)) for r, t, y in csv.reader(f)]
        self.type2id = {t: i for i, t in enumerate(
            sorted({t for _, t, _ in self.items}))}

    def __len__(self):
        return len(self.items)

    def __getitem__(self, i):
        rec, atype, y = self.items[i]
        recobj = wfdb.rdrecord(f"{self.root}/{rec}")
        sig, names = recobj.p_signal.astype(np.float32), recobj.sig_name
        sig = sig[:ALARM_AT, :] if self.event1 else sig
        sig = sig[-self.ctx_n:, :]                       # 取上下文窗(不足则保留全长)
        sig = np.nan_to_num(sig, nan=0.0)
        for c in range(sig.shape[1]):                    # 逐通道稳健标准化
            s = sig[:, c]; sd = np.std(s) + 1e-6
            sig[:, c] = (s - np.median(s)) / sd
        if self.augment:                                 # 轻度高斯噪声(勿做时移破坏报警窗)
            sig = sig + 0.01 * np.random.randn(*sig.shape).astype(np.float32)
        x = torch.from_numpy(np.ascontiguousarray(sig)).T   # [C, N]
        # 通道数不固定(3-5),此处按最大 5 通道零填充并记录有效通道掩码
        C = 5
        xf = torch.zeros(C, x.shape[1]); m = torch.zeros(C)
        xf[:x.shape[0]] = x; m[:x.shape[0]] = 1
        return xf, m, torch.tensor(y), torch.tensor(self.type2id[atype])

train_set = Challenge2015AlarmDataset("data_root/training", event1=True, augment=True)
train_loader = DataLoader(train_set, batch_size=16, shuffle=True,
                          num_workers=4, pin_memory=True)
for xf, m, y, t in train_loader:
    print(xf.shape, y.sum().item())   # [16,5,75000];y 为真报警数
    break

配套的最小分类头(与上方 Dataset 输出对齐):

import torch.nn as nn

class AlarmNet(nn.Module):
    """通道掩码 + 1D 卷积骨干 + 均值池化二分类头(最小可运行骨架)"""
    def __init__(self, c_dim: int = 5, width: int = 32):
        super().__init__()
        self.stem = nn.Sequential(
            nn.Conv1d(c_dim, width, 15, stride=5, padding=7), nn.ReLU(),
            nn.Conv1d(width, width, 15, stride=5, padding=7), nn.ReLU(),
            nn.Conv1d(width, width, 15, stride=5, padding=7), nn.ReLU())
        self.head = nn.Sequential(nn.Linear(width, 32), nn.ReLU(),
                                  nn.Linear(32, 1))
    def forward(self, x, mask):            # x [B,C,N],mask [B,C]
        h = self.stem(x).mean(dim=-1)      # [B,width] 时间池化
        h = h * mask[:, :1].float()        # 掩码占位,简单实现
        return self.head(h).squeeze(-1)    # logits;损失建议用 BNLL/BCE

完整训练循环(含官方评分导向的阈值校准):

import numpy as np
import torch.nn as nn

device = "cuda" if torch.cuda.is_available() else "cpu"
model = AlarmNet().to(device)
opt = torch.optim.AdamW(model.parameters(), lr=1e-3, weight_decay=1e-4)
lossf = nn.BCEWithLogitsLoss()

def run_epoch(loader, train=True, thr=0.0):
    model.train(train)
    ys, ps = [], []
    for xf, m, y, t in loader:
        xf, m, y = xf.to(device), m.to(device), y.float().to(device)
        with torch.set_grad_enabled(train):
            logits = model(xf, m)
            loss = lossf(logits, y) if train else None
        if train:
            opt.zero_grad(); loss.backward(); opt.step()
        ys += y.tolist(); ps += torch.sigmoid(logits).tolist()
    ys, ps = np.array(ys), np.array(ps)
    return ys, ps

# 训练若干 epoch 后:在训练折内部扫描决策阈值 th,
# 以 challenge_score(ys, (ps > th)) 最大者为最终阈值——
# 阈值校准是本数据集涨分的关键手段之一(5 倍 FN 权重靠阈值落地)。

注意:75,000 点/样本意味着显存主要耗在卷积中间层,stride 与分段池化务必先行;若复现冠军路线,建议先用 §6.3 的特征工程 + GBDT 建立基线,再迁移到端到端。

</details>

§6.5 坑点 8 个(本数据集真实特有失败模式)

⚠️ 坑点 1:逐记录 ADC 增益与基线不同,直接读原始整数等于读错单位(分类:预处理陷阱)

问题:每条记录每个通道的增益/基线由各自 .hea 定义(实测:II 通道增益 9,902/mV、7,247/mV、3,775/mV 等逐记录不同),直接读取 .mat 原始整数或套用统一增益,会让 ECG 幅值差出数量级。
症状:阈值型特征(R 波幅度、ABP 定标)在部分记录上离谱;模型在训练集内部"看起来能跑",跨记录泛化时特征分布漂移严重。同一批记录混入同一 batch 时,损失曲线出现难以收敛的双峰。
解决:

  1. 简单方法:一律用 wfdb.rdrecord(...).p_signal,它按 .hea 自动换算物理单位。
  2. 进阶方法:手动解析 .hea 时逐行读取 gain/baseline,physical = (raw - baseline) / gain,并对 PLETH 的 “NU” 单位显式标注为无量纲,不与 mV/mmHg 混用。
  3. SOTA 方法:物理量换算后按通道类型分组做标准化(ECG 用中位数/IQR,ABP 校验 0–300 mmHg 量程),并将"增益异常"记录为质量元特征输入模型。
    参考:官方训练集说明(“must take care to scale it into the correct physical units”)与各记录 .hea 实测。

⚠️ 坑点 2:通道组合与导联名逐记录不同,按固定索引取通道必崩(分类:工程陷阱)

问题:每条记录为 2 个 ECG 导联 + 1–2 个脉搏通道,部分记录含 RESP;实测导联名有 II、V、aVF、III 等组合,通道数 3–5 不等。按"第 0 列一定是 II、第 3 列一定是 ABP"式硬编码会错读或越界。
症状:部分 batch 报形状错误;更隐蔽的是静默错读——把 PLETH 当 ECG 去做 QRS 检测,指标莫名下降。由于训练/测试患者互斥,验证阶段才会暴露的记录可能携带训练阶段从未见过的通道组合。
解决:

  1. 简单方法:按 rec.sig_name 名字索引通道,缺通道时置零并输出掩码。
  2. 进阶方法:建立通道类型映射表(ECG/ABP/PLETH/RESP),每条记录输出"类型有序张量 + 有效性掩码"(见 §6.4 代码)。
  3. SOTA 方法:按通道类型使用独立编码器(ECG 分支、脉搏分支),掩码加权聚合,天然适配通道缺失。
    参考:挑战论文 §3.1(“Up to four signals… two ECG leads, and up to two other signals”)与 archive 目录 .hea 实测(a109l 含 RESP)。

⚠️ 坑点 3:用报警后数据做实时赛道,评测违规且指标虚高(分类:数据泄漏)

问题:训练集一半为 long 记录(含报警后 30 秒),一半为 short 记录(恰 5 分钟)。Event 1(实时)规则要求算法只使用报警触发瞬间已知的信息;混入后置数据既违反赛道定义,也高估线上可用性。
症状:在训练集自检中分数异常漂亮;一旦严格按第 300 s 截断立刻掉分;审稿被质疑"破坏实时约束"。
解决:

  1. 简单方法:所有样本统一 signal[:300*250] 截断(§6.4 的 event1=True)。
  2. 进阶方法:双赛道分别建模——Event 1 用截断窗,Event 2 允许 long 记录的 30 秒后置数据,并在论文中分列报告。
  3. SOTA 方法:对 long 记录做"时间掩码 curriculum"(先只看报警前数据,再逐步放开后置窗),量化"事后信息价值"。
    参考:官方挑战页(“real-time subset… does not have any information beyond what was known to the monitor”)。

⚠️ 坑点 4:类内真/假比极端分化,平衡采样会"压死"真报警(分类:标签理解)

问题:训练集 Tachycardia 140 条中仅 9 条为假(6.4%),Ventricular_Flutter_Fib 58 条中 52 条为假(89.7%)。若按"类别平衡"或"全局 50/50"重采样/设阈值,模型会系统性把真 ETC 报警判为假——而官方评分 FN 权重是 FP 的 5 倍。
症状:准确率很高但 Score 惨烈;TPR 塌缩(如 TPR 60%、TNR 98%)。常见误判:以为"5 倍权重"只影响最终分数换算,实际上它要求决策边界本身向"少漏报"方向偏移。
解决:

  1. 简单方法:以官方 Score 为唯一优化目标调阈值,禁止用 accuracy/F1 选模型。
  2. 进阶方法:训练用类内分层采样,推理阈值按 Score 曲线(TPR-TNR 权衡)逐类别校准。
  3. SOTA 方法:直接优化非对称代价目标(loss 中 FN:FP = 5:1),或对 Score 做可微代理优化。
    参考:评分公式 挑战论文 §4;类内分布见 §4.2(ALARMS 实测)。

⚠️ 坑点 5:论文表 1 与实际 ALARMS 文件有 ±3 例出入;隐藏测试分不可复现(分类:评估误用)

问题:官方论文表 1 的训练集分布(458F/292T)与实际发布的 ALARMS 文件(456F/294T)存在个位数出入(ASY/EBR/ETC/VTA 各差 1–3 例);同时 500 条测试集永不公开,挑战最终分(如 81.39)无法被任何复现实验核验。
症状:按论文表 1 做类别先验/加权,与数据实际分布对不上;论文里"测试集 Score"与自己训练集 CV 分数差距大,误判为代码 bug。
解决:

  1. 简单方法:一切以数据文件为准(实测统计见 §4.2),论文表 1 仅作官方口径引用。
  2. 进阶方法:用 5 折分层 CV 的均值±标准差报告,并明确"与官方隐藏测试分不可比"。
  3. SOTA 方法:预留 stratified hold-out(如 15%)模拟官方互斥划分,其余做 CV;对外只报告同一协议数字。
    参考:挑战论文 表 1 与 ALARMS 文件(本条目实测)。

⚠️ 坑点 6:把假报警的"证据"当噪声清洗掉(分类:预处理陷阱)

问题:本数据集的假报警恰恰由伪迹造成——起搏器钉样伪迹伪装 QRS、PLETH/ABP 平线(传感器脱落/管线冲洗/导管凝血)、运动伪影。常规"去伪迹再建模"的流水线会把判别证据一并删除。
症状:高质量滤波后模型 TNR 下降;消融实验发现"不滤波反而更好"。
解决:

  1. 简单方法:保留原始波形输入,把去伪迹交给模型学习。
  2. 进阶方法:伪迹显式特征化——平线时长、饱和占比、起搏钉检测计数、各通道 SQI 分数作为辅助特征(官方挑战页明示脉搏通道的脱落/冲洗场景)。
  3. SOTA 方法:多通道交叉验证式设计(如冠军思路:用 ECG 校验脉搏通道心率、用 PLETH 幅值交替性辅助判别),让"通道间不一致"成为核心特征。
    参考:官方训练集说明(伪迹清单);Sadr et al. 2019(SQI + 特征工程路线)。

⚠️ 坑点 7:把本数据的报警分布当作真实 ICU 报警流行率(分类:偏倚陷阱)

问题:官方从 1,564 条合格报警中随机抽样,且施加"每患者每类 ≤3 条、间隔 ≥5 分钟"的规则,刻意剔除了重复报警模式;训练集 60.8% 为假报警、VTA 占 45.5%——这些都不是真实 ICU 的报警构成。
症状:部署到真实监护数据流后,先验、误报率与类别占比全部对不上;用本数据估计"ICU 报警 X% 为假"会得出与临床调查不一致的数字。VTA 真报警(89 条)在训练集中的占比也远高于临床实际发生频率。
解决:

  1. 简单方法:论文中显式声明"事件级抽样基准,不代表监护流分布"。
  2. 进阶方法:在真实报警流上做重要性加权评估(按实际类占比重加权 Score)。
  3. SOTA 方法:与本数据 + 真实 ICU 报警日志双数据集联合评估,报告分布偏移下的性能退化曲线。
    参考:官方训练集说明(“do not necessarily represent the true statistics for false alarm rates”)。

⚠️ 坑点 8:WFDB 细节坑——"16+24"格式、.hea 注释行与 0 基线错位(分类:工程陷阱)

问题:.mat 采用 WFDB "16+24"格式声明(16 位样本 + 24 字节 skew),非标准 MATLAB 矩阵排布;.hea 尾部注释行(#Asystole、#False alarm)是便捷真值来源,但部分解析器会把它当数据行;手动解析时的 baseline 处理错位会造成直流偏移。
症状:自写 MATLAB/Python 解析器读出的波形错位或存在未知直流偏移;注释行混入标签表产生脏数据。
解决:

  1. 简单方法:用成熟 WFDB 库(Python wfdb、MATLAB WFDB Toolbox 的 RDMAT)读取。
  2. 进阶方法:自写解析时按 WFDB 规范跳过 skew 字节、按 (raw - baseline)/gain 换算;标签一律以 ALARMS 文件为准,.hea 注释仅作交叉校验。
  3. SOTA 方法:入库前用官方 MD5SUMS/SHA256SUMS 校验每个文件,防止传输损坏导致的静默波形错乱。
    参考:官方训练集说明(WFDB 格式与 RDMAT 说明);archive 目录实测 .hea 实例(§4.0)。

§6.6 数据增强(安全 ✅ / 危险 ❌)

  • ✅ 轻度高斯噪声(σ ≤ 1% 信号标准差,逐通道独立)。
  • ✅ 通道随机 dropout + 掩码(模拟 3–5 通道组合差异,与真实分布一致)。
  • ✅ 幅值缩放(0.9–1.1×,逐通道,模拟增益/贴片阻抗差异)。
  • ✅ 基线漂移注入(低频正弦扰动,幅值 ≤ 信号 5%):模拟呼吸/移动基线漂移,保留心跳形态。
  • ✅ Mixup 仅在同类(同 alarm_type 且同 label)内使用,避免制造医学上不存在的混合波形。
  • ❌ 随机时移/循环平移:报警窗与第 300 s 固定事件对齐,时移会破坏"事件在报警前 10 s 内"的官方时序结构。
  • ❌ 用信号生成模型合成"假报警样伪迹"后混入训练集且不做来源区分:会改变假报警定义边界,与专家标注分布冲突。
  • ❌ 对 ABP 做阈值削波/重定标:血压波形幅值本身是判别证据,破坏定标等于销毁特征。
  • ❌ 跨赛道混用:对 Event 1 数据"增强"出报警后片段(如回溯填充),直接违反实时约束。

§6.7 模型推荐

模型 适配任务 输入 参考性能(本数据集语境) 备注
特征工程 + GBDT/SVM 报警判别(Event 1/2) 逐通道 SQI + 心率一致性 + 形态特征 官方示例基线仅 40.8–47.4 分,优秀特征工程可达约 79 分档 可解释性强,符合临床审计
1D CNN / ResNet-1D 端到端波形判别 [C,N] 波形 训练集 CV 常见 75–80 分档(社区复现) 需掩码适配通道数不固定
CRNN(CNN+GRU) 时序依赖 + 报警前动态 分段波形序列 社区复现约 78–81 分档 捕捉报警前节律演变
多分支交叉验证网络(ECG×PPG/ABP) 通道间一致性建模 类型分组多通道 冠军思路的现代等价实现 直接编码"通道间矛盾"先验
Transformer(长上下文窗口) 全 5 分钟上下文建模 分 patch 波形 token 无官方数字;社区探索中 序列长(75,000 点)需 patch 化与降采样
投票/集成(多算法) 降低单模型失效风险 各算法判别 13 队投票 84.26/87.04 分(官方) 超过所有个人最佳,工程上最稳

注:表中"分档"为社区复现经验区间,与官方隐藏测试集分数不可直接比较(见坑点 5)。

选型优先级建议:先跑通特征工程基线(1–2 天,Score 约 70+ 分档),再决定是否投入端到端深度模型;若目标是临床落地,把可解释特征层保留在最终方案里(监管审计需要)。

§6.8 硬件需求

阶段 最低配置 推荐配置 说明
数据加载/预处理 4 核 CPU、8 GB RAM 8 核 CPU、16 GB RAM 全集 352.4 MB,内存可容纳
特征工程基线 纯 CPU 纯 CPU 分钟级全量特征提取
端到端深度模型 单卡 8 GB VRAM(如 RTX 3060) 单卡 24 GB VRAM batch 16 × 5 通道 × 75,000 点约需 8–16 GB
全套 5 折 CV 单卡 × 数小时 单卡 × 1–2 天内 无分布式需求

§6.9 评估指标代码

官方唯一榜单指标是带 5 倍 FN 权重的 Score;TPR/TNR 用于诊断"漏报/误报"权衡。以下实现与官方公式逐项对齐:

import numpy as np

def challenge_score(y_true, y_pred):
    """官方评分:Score = 100*(TP+TN)/(TP+TN+FP+5*FN)。
    y_true/y_pred ∈ {0,1},1=真报警。FN(漏掉真报警)权重为 FP 的 5 倍。"""
    y_true = np.asarray(y_true); y_pred = np.asarray(y_pred)
    tp = int(((y_true == 1) & (y_pred == 1)).sum())
    tn = int(((y_true == 0) & (y_pred == 0)).sum())
    fp = int(((y_true == 0) & (y_pred == 1)).sum())
    fn = int(((y_true == 1) & (y_pred == 0)).sum())
    denom = tp + tn + fp + 5 * fn
    return 100.0 * (tp + tn) / denom, dict(TP=tp, TN=tn, FP=fp, FN=fn,
                                           TPR=tp / max(tp + fn, 1),
                                           TNR=tn / max(tn + fp, 1))

# 用法:每折调用一次;报告 Score 均值±std + TPR/TNR(与官方口径一致)
# score, cm = challenge_score(y_true, y_pred)

与官方口径配套的分层交叉验证骨架(按 alarm_type × label 双层分层,保护小类):

import numpy as np
from collections import defaultdict
from sklearn.model_selection import StratifiedKFold

def stratified_folds(items, n_splits: int = 5, seed: int = 2015):
    """items: [(record, alarm_type, label), ...](读自 ALARMS)
    返回 [(train_idx, val_idx), ...],按 alarm_type+label 分层"""
    strat_key = defaultdict(list)
    for i, (_, t, y) in enumerate(items):
        strat_key[f"{t}|{y}"].append(i)
    labels = np.array([f"{t}|{y}" for _, t, y in items])
    skf = StratifiedKFold(n_splits=n_splits, shuffle=True, random_state=seed)
    return list(skf.split(np.zeros(len(items)), labels))

# folds = stratified_folds(train_set.items)
# for k, (tr, va) in enumerate(folds):
#     # 训练折内调阈值 → 验证折一次性评估 challenge_score
#     ...
# 小类自检:每折验证集应包含 ≥1 条 VFB 真(6) 与 Tachycardia 假(9),否则重设种子

报告规范建议:主表给出每折 Score + 均值±标准差,副表给出 TPR/TNR;如同时报告 AUC/F1,须注明它们与本数据集官方评分目标不一致(坑点 4)。

§6.10 MLOps 笔记

  • 数据版本化:训练数据仅 352.4 MB 且 v1.0.0 恒定,建议将原始 zip + ALARMS 纳入 DVC/LFS 固定哈希,实验可完整复现。
  • 评测协议固化:把"event1 截断 + 分层 5 折 + challenge_score"写成唯一评估入口,禁止实验代码内散落自定义切分。
  • 双赛道分离:Event 1 与 Event 2 的模型、阈值、评测入口分别建仓管理;long/short 后缀写进数据清单主键,防止意外混入(坑点 3)。
  • 监控:线上部署时监控 TPR 滑动窗口——抑制类系统的最大风险是静默漏报,TPR 掉线必须触发回滚到"全放行"模式。
  • 审计:医疗场景要求保留"模型为何抑制"的证据链(SQI、通道一致性分数),对齐 §6.7 的可解释基线。
  • 再训练:本数据无时间漂移轴(无绝对时间戳),漂移监控需依赖部署端新数据,而非数据集内部信号。
  • 复现纪律:任何对外声称的"测试集性能"只能引用官方 2016-01-04 公告口径;自有实验一律标注"训练集 CV",避免与官方分数混淆(坑点 5)。

§7 质量评估与局限性

§7.1 已知偏倚

本节偏倚均可在官方文档或数据文件中找到直接依据;"缓解措施"列为对使用者的可操作建议。

偏倚类型 描述 严重程度 缓解措施
抽样偏倚 从 1,564 条合格报警随机抽样,剔除重复报警(间隔 ≥5 min、每类每患者 ≤3 条),不代表真实监护流 高 部署前用真实报警流重校准(坑点 7)
类别偏倚 训练集 VTA 占 45.5%;Tachycardia 仅 6.4% 为假,VFB 89.7% 为假 高 分层 CV + 逐类别阈值校准
机构偏倚 四家医院/三厂商未具名,无构成披露;单一来源不超过一半 中 外部验证(§5.5);避免厂商特定特征
标注偏倚 事件级人眼判读,"impossible to tell"被排除,边界样本被系统性过滤 中 敏感性分析:对低置信样本单独报告
设备偏倚 信号滤波抹去厂商特征后,残余的形态学差异仍可能被模型当判别线索 中 跨记录增益/形态鲁棒化(坑点 1)
时间偏倚 数据采集于 2015 年前,监护仪报警算法已迭代 中 部署端持续监控(§6.10)

§7.2 标注质量

官方协议为多专家盲评 + 2/3 多数共识,事件级二分类的标注歧义相对较小(真报警有明确波形证据);但官方未披露标注者人数、逐条标注者数与一致性系数。论文表 1 与实际发布文件存在 ±3 例出入(坑点 5),提示"以发布数据文件为最终真值"。

三个值得注意的标注细节:其一,标注者初始只看报警前 15 秒 + 后 5 秒,可自行缩放滚动,因此标注质量依赖标注者的主动复核深度;其二,“impossible to tell"与导出错误(Reject)被排除,使发布集天然偏"可判读"样本;其三,监护仪自身搏动标记仅在"可能"时展示给标注者,标注者也可能被监护仪提示锚定——这些因素都不影响金标准地位,但写论文时应如实引述协议而非简化为"专家标注”。

§7.3 泛化性

场景 失效风险 证据
换监护仪厂商 中高:滤波已抹去厂商特征,但波形形态学差异仍可能被模型当作判别特征 官方称数据覆盖三厂商并做去标识滤波
换 ICU / 国家 中:报警协议、阈值习惯不同(官方移除了可变阈值) 官方训练集说明
真实报警流(含重复报警) 高:本数据无重复报警模式 官方"间隔 ≥5 分钟"抽样规则
儿科/特殊人群 高:人群构成未披露,成人 ICU 为主 官方未披露人口学信息
长期部署 中:监护仪固件升级改变报警触发逻辑 时间偏倚(§7.1)

泛化性的总判断:本数据集训练出的判别器应被视为"2015 年代、成人 ICU、五类报警"范围内的证据,跨年代、跨设备、跨人群迁移都需要新增验证数据。§7.3 表中五个场景没有一个是"低风险",这并非数据质量问题,而是事件级小样本基准的固有边界——恰当的定位是:把本数据集当作算法设计与代价敏感评测的公共语言,把泛化论证留给部署端的前瞻性数据。

§7.4 伦理

数据经去标识化(滤波去除厂商/国别标识特征、归一化注记名、不含人口学与结局信息),以 ODC-BY 1.0 开放发布;官方挑战论文表述回顾性使用公开数据无需伦理批准(Sadr et al. 2019 同口径)。波形属可识别生理数据范畴,二次分发应保留许可与署名。

§7.5 公平性

数据不含年龄、性别、种族字段,无法做群体公平性审计;这是数据集局限而非优势——使用者应在部署端补齐人群维度监控,避免"指标平均而群体失衡"。同理,医院/厂商归属未公开,无法审计"模型是否对某家机构的数据更准";在向真实场景迁移时,建议以机构为单位做分组评估。

§7.6 数据漂移

数据集为静态快照(v1.0.0 恒定),内部无时间轴;漂移风险全部来自部署端:监护仪型号迭代、报警算法更新、护理流程变化。建议以部署端 TPR/TNR 滑动监控 + 定期人工抽检为漂移对策。另外,2015 年以来床旁监护仪的报警逻辑与去噪算法已升级,新监护流上的假报警成因分布(如改善电极贴附后脱落类减少)可能与本数据集不同,属于需要显式评估的"协议漂移"。

§7.7 DAIMS 24 项评估

DAIMS(Dataset AI-readiness Information Mapping Standard)是千方医数集对数据集"AI 可用性"的 24 项固定检查清单,覆盖结构、标识、标签、偏倚与合规五个层面。评估基于官方文档比对与文件实测(.hea/ALARMS/RECORDS 逐项核验):✅ 表示该维度有官方依据或实测验证支撑;⚠️ 表示存在缺口,需使用者自建补齐。评分口径为 ✅=1、⚠️=0.5,满分 24。

# 检查项 状态 说明
1 宽格式 ✅ 每记录独立 .mat/.hea,逐样本张量可重构
2 唯一标识 ✅ record 名全局唯一,ALARMS/RECORDS/波形三方可关联
3 特殊字符 ⚠️ 通道单位含 “NU”,通道名大小写混用(aVF),需映射表
4 重复行 ✅ ALARMS/RECORDS 均无重复记录
5 缺失编码 ⚠️ 波形缺失以平线/NaN 隐式表达,无显式缺失码
6 标签标识 ✅ ALARMS 0/1 + .hea 注释双通道,且一致
7 罕见类分组 ⚠️ VFB 仅 58 条(6 真)、Tachycardia 假仅 9 条,小类易被 CV 折忽略
8 偏倚评估 ✅ 官方论文与说明页明确抽样与互斥规则
9 数据字典 ✅ .hea 即自描述头,官方页有格式说明
10 信息性缺失解释 ⚠️ 平线=脱落/冲洗为信息性证据,需使用者自行编码(坑点 6)
11 设备记录 ✅ 官方披露三厂商/四医院(未具名型号)
12 共线性 ✅ 通道间无冗余列;ECG 双导联相关性高属生理属性
13 编码映射 ⚠️ alarm_type 字符串与医学编码(ICD/SNOMED)需自行映射(本页 §2 已给)
14 时间戳处理 ⚠️ 仅相对时间(报警=300 s),无绝对时间戳,患者级时序不可重建
15 划分建议 ✅ 官方训练/测试互斥 + s/l 子集划分明确
16 泄漏讨论 ✅ 官方明确实时约束;本页坑点 3/5 系统化
17 标签分布 ✅ 论文表 1 + ALARMS 实测(§4.2)
18 测量偏倚 ⚠️ 三厂商波形形态差异被统一滤波掩盖,残余差异未量化
19 外部验证建议 ✅ 编辑部文章给出后续方向;本页 §5.5 给出路径
20 版本记录 ⚠️ 仅 v1.0.0,无 changelog;论文与文件分布存在 ±3 例出入
21 预处理脚本 ✅ 官方提供 3 个示例算法源码 + generateValidationSet.m
22 合规要求 ✅ ODC-BY 1.0,开放无注册,署名即可
23 多模态对齐 ✅ 多通道同源同采样(250 Hz),时间严格对齐
24 去标识化 ✅ 滤波去厂商/国别标识特征,无人口学信息

DAIMS 评分:19.5 / 24(✅×15 + ⚠️×9×0.5)

评分解读:结构、标识、标签与合规维度接近满分,扣分集中在"隐式缺失编码、无绝对时间戳、版本记录薄弱、罕见类脆弱、残余测量偏倚未量化"五项。作为 2015 年发布的挑战数据集,其工程化程度高于同期绝大多数生理信号库,但按现代 MLOps 标准仍需使用者补齐元数据层。

对你意味着什么:(1) 可以直接把 ALARMS + .hea 接入标准 WFDB 管线,无需清洗标签表;(2) 必须自建"平线/NaN/通道缺失"的信息性编码层,否则会误删假报警证据;(3) 一切分布统计以 ALARMS 文件为准,不要引用论文表 1 的个位数;(4) 小类(VFB 真、Tachycardia 假)必须分层采样保护;(5) 不要试图从数据内部做患者级或时间级分析——该信息不存在;(6) 若要把模型推向发表或落地,为 ⚠️ 项补齐自建文档(缺失编码规范、机构分组评估、版本 changelog),即可把本数据集的使用质量推到接近满分水平。

§7.8 外部验证矩阵

外部数据集/场景 来源机构 评估任务 性能指标 相对内部变化 关键发现
隐藏测试集(CinC 2015 官方) 挑战组织方 假报警判别(Event 1/Event 2) Score 81.39 / 85.04(冠军);13 队投票 84.26 / 87.04 官方最终口径,不可复现 FN 加权 5 倍下集成投票超过所有个人参赛者
同池未用报警 挑战组织方 假报警判别 官方未披露 — 1,564 条池中未被抽用的 314 条未发布
独立 ICU 前瞻验证 后续研究者 假报警判别 各文献自报 官方未披露统一矩阵 特刊(Physiol Meas 2016, 37(8))收录多篇后续分析

注:本数据集无跨机构公开外部验证金矩阵;表中仅录有同行评审支撑的结果,其余标注"官方未披露"。若需要引用"最可信的外部参照",官方隐藏测试集结果(Event 1/Event 2 冠军与投票集成)是唯一在统一协议、统一评分下产生的数字——但其测试记录不可复核,应作为历史锚点而非可刷榜目标。

§8 基准性能与生态

§8.1 排行榜(官方隐藏测试集,Event 1 / Event 2)

排名 模型/参赛者 Event 1 分数 Event 2 分数 年份 关键技术 完整引用 代码
1 Plesinger et al. 81.39 84.96 2015 多参数规则 + 血压波形分析 Plesinger F, Klimes P, Halamek J, Jurak P. Computing in Cardiology 2015. 开源索引
2 Kalidas & Tamil 79.44 81.85 2015 小波增强的通用事件核验 Kalidas V, Tamil L. Computing in Cardiology 2015. 开源索引
3 Couto et al. 79.02 78.28 2015 去趋势 + 多信号核验 Couto P, Ramalho R, Rodrigues R. Computing in Cardiology 2015. 开源索引
4 Fallet et al. 76.11 85.04 2015 PPG 幅值交替性 + 通道一致性 Fallet S, Yazdani S, Vesin J-M. Computing in Cardiology 2015. 开源索引
5 Hoog Antink & Leonhardt 75.55 75.18 2015 多模态相关尺度分析 Hoog Antink C, Leonhardt S. Computing in Cardiology 2015. 开源索引
6 Eerikäinen et al. 75.54 75.52 2015 特征 + 监督学习抑制器 Eerikäinen LM, Vanschoren J, Rooijakkers MJ, Vullings R, Aarts RM. Computing in Cardiology 2015. 开源索引
7 Ansari et al. 74.48 76.57 2015 多信号特征 + ML Ansari S, Belle A, Najarian K. Computing in Cardiology 2015. 开源索引
8 Liu & Zhao 71.68 75.91 2015 多信号特征组合 Liu C, Zhao L. Computing in Cardiology 2015. 开源索引
— 官方示例基线 ×3 41.41–47.35 40.83–47.35 2015 经典信号处理开箱基线 Clifford GD et al. Computing in Cardiology 2015. 挑战包
— 投票集成(N=11/13) 82.78 / 84.26 86.67 / 87.04 2016 多算法投票 Clifford GD et al. Physiological Measurement 37(8):E5-E23, 2016. DOI 10.1088/0967-3334/37/8/E5 编辑部文章
— Krasteva et al.(闭源) 79.41 79.56 2015 未公开细节的闭源提交 Krasteva V et al. Computing in Cardiology 2015. 闭源,无公开代码
— Sadr et al.(后续工作) 官方未披露逐项分数 官方未披露 2019 SQI + 报警类型特异特征 + 优化 ML Sadr N, Huvanandana J, Nguyen DT, Kalra C, McEwan A, de Chazal P. Reduction of false alarms in the intensive care unit using an optimized machine learning based approach. 2019. 论文

数值不可直接比较的原因:Event 1 与 Event 2 评测子集不同(500 条 vs 250 条 long 记录)、信息边界不同(无/有报警后 30 秒);闭源参赛者(如 Krasteva 79.41/79.56)成绩不在官方开源索引内;所有分数均为 2015 年隐藏测试集一次性评测,与任何训练集 CV 复现分数不可比(坑点 5)。官方排行榜以 Event 1 分数为主排序键(见 §8.6 所述编辑部分析)。

官方口径注记(依据编辑部文章表 2 与 PhysioNet News 2016 成绩公告逐项核对):

  • 排行榜主排序键为 Event 1 分数;Event 2 冠军 Fallet 的 Event 1 成绩仅 76.11 分(第 4 名),说明两赛道各有专精,不存在"全维度碾压"的单一最优方法。
  • 非官方阶段(2015-04-10 截止)与官方阶段(2015-06-01 截止)使用同一评分公式,但隐藏测试子集抽样不同,跨阶段分数不可直接对比。
  • 第 9 名以后队伍在编辑部文章表 2 中有完整成绩记录,本表仅列 Top 8 与三个代表性补充条目(基线、投票集成、后续工作)。
  • "投票集成"是赛后官方回溯性实验:对提交队伍做多数投票,不占参赛名次,其 87.04 分(Event 2)至今是该任务在统一协议下的最高分。
  • 2015 年成绩公告分数保留两位小数,不同二手来源偶有 ±0.1 出入;正式引用请以编辑部文章表 2 为准。

§8.2 SOTA 总结与选型建议

官方冠军之后,Sadr et al. 2019 以 SQI + 报警类型特异性特征 + 优化机器学习声称取得该隐藏测试集已发表工作中的最高分(论文),表明在固定隐藏测试集上"特征工程 + 强分类器"路线仍有上探空间。选型建议:面向部署优先投票集成/多分支一致性架构(官方 87.04 分证据);面向研究复现优先 Plesinger 与 Fallet 的开源实现;面向可解释临床审计优先特征工程路线(§6.7)。

从技术演进看,2015 年的高分方案几乎全部依赖人工特征与浅层分类器;此后深度学习在节律分类上全面领先,但在"假报警抑制"这一小样本、强约束任务上,公开文献尚未出现显著超越当年投票集成(87.04)的可验证结果——原因正是测试集不可得:任何新方法都无法在同一把尺上证明自己。这也是把本数据集用作"方法学对照"而非"刷分目标"的重要理由。

对使用者的实际含义:(1) 训练集 CV 分数达到 80 分档即接近历史最优方法学水平,不必追逐与官方榜单相同的数字;(2) 若论文需要"SOTA 对照",引用投票集成 87.04(Event 2)与 Plesinger 81.39(Event 1)即可,并注明不可比性;(3) 真正有增量价值的方向是小样本条件下的鲁棒性(通道缺失、逐记录增益漂移)与跨机构迁移,而非在 750 条记录上继续堆模型容量。

§8.3 评测协议

提交完整可运行算法包(zip/tar,GNU/Linux 可编译运行),评分系统先在训练集随机子集上对照参赛者自报结果做一致性校验,未通过即终止并回传错误;随后在隐藏测试集上运行,Event 1 限定实时信息边界、Event 2 允许后置 30 秒;评分 Score = 100×(TP+TN)/(TP+TN+FP+5×FN)(挑战论文)。

协议细节值得复用:其一,"先在训练集子集上验证自报结果"的机制挡住了大量跑不通的提交,38 队 215 份提交的筛选即靠此完成;其二,参赛包需含 AUTHORS.txt 与预期结果文件,形成"代码即评测"的封闭链路;其三,支持 C/C++/Fortran/Haskell/Java/Octave/Perl/Python/R/MATLAB 十种语言,官方参考环境为 Ubuntu 14.04 + MATLAB 2014b。自行举办内部评测时,这套"可运行包 + 训练集校验 + 隐藏集评分"的三段式协议可直接移植。

一次提交失败不影响最终成绩——参赛者可在截止前多次提交、以最高分计;但官方同时明确:同一队伍以一个"最终算法"进入名次排序,不允许用多份差异化提交占据多个名次。这一"多次提交、单算法排名"的规则兼顾了探索自由与榜单公平,也是后续挑战沿用的惯例。

数据集 关系 差异
PhysioNet/CinC Challenge 2016 同系列后续挑战 转向心音正常/异常分类,3,240 条录音
MIMIC III 同属 PhysioNet/MIT 生态的 ICU 数据库 EHR 纵向数据库,无报警真/假标注;本数据官方未称衍生自 MIMIC
PhysioNet/CinC Challenge 2014 同系列前置挑战 心搏检测(beat-level),200 条 10 分钟多参数波形记录
MIT-BIH 心律失常数据库 经典 ECG 节律金标准 逐搏标注、单信号,无报警事件语境
QT Database 心搏间期基准 面向 QT 间期与心搏定位

选型指引:做报警级真/假判别只有本数据集有金标准标签;做逐搏节律识别应选 MIT-BIH 或 CinC 2014 数据;做心音与多机构训练集范式研究看 CinC 2016。同系列数据集均为 WFDB 格式与 ODC-BY/PhysioNet 开放许可,工程管线可直接复用本页 §6.1 的加载代码。

§8.5 关键论文 Top 10

  1. Clifford GD, Silva I, Moody B, Li Q, Kella D, Shahin A, Kooistra T, Perry D, Mark RG. The PhysioNet/computing in cardiology challenge 2015: reducing false arrhythmia alarms in the ICU. Computing in Cardiology 2015:273-276. IEEE. DOI 10.1109/CIC.2015.7408639 — 挑战设计、数据与官方结果的原始论文。
  2. Clifford GD, Silva I, Moody B, Li Q, Kella D, Shahin A, Kooistra T, Perry D, Mark RG. False alarm reduction in critical care. Physiological Measurement 37(8):E5-E23, 2016. DOI 10.1088/0967-3334/37/8/E5 — 编辑部文章:完整榜单、投票集成分析与领域建议。
  3. Plesinger F, Klimes P, Halamek J, Jurak P. Event 1 冠军算法. Computing in Cardiology 2015 — 多参数规则链与血压波形核验,实时赛道 81.39 分。
  4. Fallet S, Yazdani S, Vesin J-M. Event 2 冠军算法. Computing in Cardiology 2015 — PPG 幅值交替性特征,回溯赛道 85.04 分。
  5. Kalidas V, Tamil L. 通用事件核验的小波增强方法. Computing in Cardiology 2015 — Event 1 亚军 79.44 分。
  6. Eerikäinen LM, Vanschoren J, Rooijakkers MJ, Vullings R, Aarts RM. 特征 + 监督学习抑制假报警. Computing in Cardiology 2015 — 监督学习路线代表。
  7. Sadr N, Huvanandana J, Nguyen DT, Kalra C, McEwan A, de Chazal P. Reduction of false alarms in the intensive care unit using an optimized machine learning based approach. 2019 — 声称隐藏测试集已发表工作最高分。
  8. Aboukhalil A, Nielsen L, Saeed M, Mark RG, Clifford GD. Reducing false alarm rates for critical arrhythmias using the arterial blood pressure waveform. Journal of Biomedical Informatics, 2008 — ABP 核验假报警的先导工作,为挑战设计铺垫。
  9. Li Q, Mark RG, Clifford GD. Artificial arterial blood pressure artifact models and an evaluation of a robust blood pressure and heart rate estimator. Biomedical Engineering Online, 2009 — ABP 伪迹建模与稳健心率估计,挑战数据的配套方法学。
  10. American National Standard ANSI/AAMI EC13:2002. Cardiac monitors, heart rate meters, and alarms. AAMI, 2002 — 五类报警触发定义与事件时间窗的标准依据。

§8.6 社区活跃度

数据托管于 PhysioNet(长期稳定访问),挑战社区论坛为 PhysioNet Challenges Google Group;顶部开源代码在官方索引长期可取;截至 2026-09,CinC 2015 论文在 Semantic Scholar 记录 158 次引用,2016 编辑部文章 50 次引用,假报警抑制仍是 ICU 监护 AI 的活跃子方向。

后续影响的三条主线:其一,方法论——投票集成超过全部个人最佳的结果,成为医疗 AI 领域"集成优于单模型"的经典证据;其二,数据建设——挑战直接推动了 PhysioNet 后续年 度挑战(2016 心音、2017 房颤、2018 睡眠分期)的训练集开放惯例;其三,临床话语——"假报警率 86%、临床相关仅 2%–9%"这组数字经挑战论文广泛传播,成为报警疲劳文献的标准引述。

跟进社区的三条实操路径:其一,Google Group 检索关键词 “2015” + 报警类型,可查到当年参赛者对边界记录与评分细节的官方答复;其二,开源代码索引中冠军(Plesinger)与亚军(Kalidas)实现均附参赛论文,逐条阅读可还原 2015 年特征工程的演进序列;其三,Physiol Meas 37(8) 特刊收录了 2015 年后的多篇后续分析(含 Eerikäinen 等的前瞻性 ICU 验证思路),是把"挑战成绩"推进到"临床证据"的必读材料。

§8.7 生态快照

资源 类型 链接 推荐理由
PhysioNet 内容页 v1.0.0 数据主页 https://physionet.org/content/challenge-2015/1.0.0/ 权威下载与引用入口(截至 2026-09 有效)
挑战主页(archive) 规则/公告 https://archive.physionet.org/challenge/2015/ 双赛道规则、评分公式、时间线原文
训练集目录(archive) 数据文件 https://archive.physionet.org/pn3/challenge/2015 逐记录浏览 ALARMS/RECORDS/.hea
开源代码索引 代码 https://www.physionet.org/challenge/2015/sources/ 顶部开源提交源码(含冠军)
挑战论文 PDF 论文 https://www.cinc.org/archives/2015/pdf/0273.pdf 表 1 分布与协议细节
Physiological Measurement 特刊 期刊 https://doi.org/10.1088/0967-3334/37/8/E5 完整榜单与后续研究合集
PhysioNet Challenges Google Group 社区 https://groups.google.com/forum/#!forum/physionet-challenges 历史问答与后续挑战讨论

§9 相关资源与引用

§9.1 官方资源清单

§9.2 BibTeX 完整引用

@inproceedings{clifford2015physionet,
  title     = {The PhysioNet/Computing in Cardiology Challenge 2015:
               Reducing False Arrhythmia Alarms in the ICU},
  author    = {Clifford, Gari D and Silva, Ikaro and Moody, Benjamin and
               Li, Qiao and Kella, Danesh and Shahin, Abdullah and
               Kooistra, Tristan and Perry, Diane and Mark, Roger G},
  booktitle = {2015 Computing in Cardiology Conference (CinC)},
  pages     = {273--276},
  year      = {2015},
  organization = {IEEE},
  doi       = {10.1109/CIC.2015.7408639}
}

@article{clifford2016falsealarm,
  title   = {False alarm reduction in critical care},
  author  = {Clifford, Gari D and Silva, Ikaro and Moody, Benjamin and
             Li, Qiao and Kella, Danesh and Shahin, Abdullah and
             Kooistra, Tristan and Perry, Diane and Mark, Roger G},
  journal = {Physiological Measurement},
  volume  = {37},
  number  = {8},
  pages   = {E5--E23},
  year    = {2016},
  doi     = {10.1088/0967-3334/37/8/E5}
}

@article{goldberger2000physiobank,
  title   = {PhysioBank, PhysioToolkit, and PhysioNet:
             Components of a New Research Resource for Complex Physiologic Signals},
  author  = {Goldberger, Ary L and Amaral, Luis AN and Glass, Leon and
             Hausdorff, Jeffrey M and Ivanov, Plamen Ch and Mark, Roger G and
             Mietus, Joseph E and Moody, George B and Peng, Chung-Kang and
             Stanley, H Eugene},
  journal = {Circulation},
  volume  = {101},
  number  = {23},
  pages   = {e215--e220},
  year    = {2000}
}

@misc{challenge2015data,
  title        = {Reducing False Arrhythmia Alarms in the ICU:
                  The PhysioNet/Computing in Cardiology Challenge 2015 (v1.0.0)},
  author       = {Clifford, Gari D and Silva, Ikaro and Moody, Benjamin and Mark, Roger},
  year         = {2015},
  publisher    = {PhysioNet},
  doi          = {10.13026/C9FG-A467},
  url          = {https://physionet.org/content/challenge-2015/1.0.0/}
}

@article{li2009artificial,
  title   = {Artificial arterial blood pressure artifact models and an evaluation
             of a robust blood pressure and heart rate estimator},
  author  = {Li, Qiao and Mark, Roger G and Clifford, Gari D},
  journal = {Biomedical Engineering Online},
  year    = {2009}
}

@article{sadr2019reduction,
  title   = {Reduction of false alarms in the intensive care unit using an
             optimized machine learning based approach},
  author  = {Sadr, Nadi and Huvanandana, Jacqueline and Nguyen, Doan Trang and
             Kalra, Chandan and McEwan, Alistair and de Chazal, Philip},
  year    = {2019},
  note    = {PMCID: PMC6728371}
}

§9.3 引用指南

引用本数据集时请至少包含:挑战论文(clifford2015physionet,含数据设计)+ PhysioNet 数据引用(challenge2015data,含 DOI 10.13026/C9FG-A467);如讨论榜单或投票集成,另引 clifford2016falsealarm。使用波形工具链时可加引 Goldberger 2000(PhysioNet 平台引用)。

补充建议:讨论 SNOMED/ICD 映射时注明"事件概念映射,非患者诊断";复用评分公式时给出完整定义域(TP/TN/FP/FN 均为事件级计数);引用训练集分布数字时注明"实测 ALARMS 文件,截至 2026-09"以区别于论文表 1 口径。

§9.4 数据获取的合规要点

ODC-BY 1.0 只要求署名(attribution),不限制商业使用、不要求签署协议或完成培训课程——这与 MIMIC III 的凭证化申请流程形成鲜明对比,也是本数据集适合教学与快速原型的原因。但开放不等于无约束:二次分发时应保留许可声明、不得暗示官方背书;基于本数据训练的模型若进入临床语境,须独立完成伦理与监管流程。

落可操作的合规清单:(1) 论文/产品文档中引用数据时使用官方推荐格式(§9.2–§9.3),标注 DOI 10.13026/C9FG-A467 与访问日期;(2) 再分发保持 ODC-BY 1.0 兼容许可并附原始出处链接;(3) 不得将 PhysioNet/挑战组织者署名为产品背书方;(4) 若与自有 ICU 数据混合训练,对外表述须区分"本数据集贡献"与"自采数据贡献"的实验证据;(5) 医疗器械注册语境下,本数据集仅可作为算法开发与内部验证证据,不能替代前瞻性临床验证。

§10 AI 使用声明卡

§10.1 本页面生产使用的 AI 模型

模型 用途
千方病案编辑部写作助手(LLM) 检索结果整合、章节起草、代码示例生成
公共 FHIR 术语服务器(Ontoserver)查询脚本 SNOMED CT 概念码机器验证
Snowstorm/Ontoserver 查询脚本 SNOMED 概念反查与误传码排除(如 418715001、59931005)

§10.2 AI 参与范围

AI 完成检索汇总、初稿撰写与代码草拟;事实核验(官方页面、论文 PDF、ALARMS/RECORDS/.hea 文件实测)、医学编码验证、章节取舍与最终定稿由人工完成。

核验轨迹说明:SNOMED 编码经公共术语服务器逐码验证(发现并排除了两个常见误传码);训练集标签分布由脚本直接统计官方 ALARMS 文件得出;榜单分数与官方成绩公告逐项比对;论文表 1 与数据文件的出入由人工确认后写入坑点 5。

§10.3 输入来源列表

  1. Clifford GD, Silva I, Moody B, Li Q, Kella D, Shahin A, Kooistra T, Perry D, Mark RG. The PhysioNet/computing in cardiology challenge 2015: reducing false arrhythmia alarms in the ICU. Computing in Cardiology 2015:273-276. IEEE. DOI 10.1109/CIC.2015.7408639.
  2. Clifford GD, Silva I, Moody B, Li Q, Kella D, Shahin A, Kooistra T, Perry D, Mark RG. False alarm reduction in critical care. Physiological Measurement 37(8):E5-E23, 2016. DOI 10.1088/0967-3334/37/8/E5.
  3. PhysioNet. Reducing False Arrhythmia Alarms in the ICU: The PhysioNet/Computing in Cardiology Challenge 2015, v1.0.0. https://physionet.org/content/challenge-2015/1.0.0/.
  4. PhysioNet(archive). Reducing False Arrhythmia Alarms in the ICU: the PhysioNet/CinC Challenge 2015(挑战主页与规则). https://archive.physionet.org/challenge/2015/.
  5. PhysioNet(archive). PhysioNet/CinC Challenge 2015: Training Sets(训练集说明). https://archive.physionet.org/pn3/challenge/2015.
  6. PhysioNet(archive). Challenge 2015 训练目录(RECORDS/ALARMS/.hea/.mat 实测). https://archive.physionet.org/pn3/challenge/2015/training/.
  7. PhysioNet. PhysioNet/CinC 2015 Challenge Software Index(开源代码索引). https://www.physionet.org/challenge/2015/sources/.
  8. PhysioNet News 2016(官方成绩公告). https://physionet.org/news/2016/.
  9. Moody Challenge 官方站点 2015 页(moody-challenge.physionet.org/2015).
  10. Sadr N, Huvanandana J, Nguyen DT, Kalra C, McEwan A, de Chazal P. Reduction of false alarms in the intensive care unit using an optimized machine learning based approach. 2019. https://www.ncbi.nlm.nih.gov/pmc/articles/pmc6728371/.
  11. Clifford GD et al. False Alarm Reduction in Critical Care(MIT DSpace 存档). https://dspace.mit.edu/handle/1721.1/112810/.
  12. PubMed 27331073(挑战论文题录与摘要). https://pubmed.ncbi.nlm.nih.gov/27331073.
  13. Ontoserver FHIR 术语服务器(SNOMED CT 概念验证:397829000、25569003、71908006、49710005、3424008、410429000). https://tx.ontoserver.csiro.au/fhir/.
  14. 维基文库 ICD-11 中文版第 11 章(BC71.0/BC71.1/BC80.1/BC81 编码). https://zh.wikisource.org/.
  15. Semantic Scholar API(引用数,截至 2026-09). https://api.semanticscholar.org/graph/v1/paper/DOI:10.1109/CIC.2015.7408639.

§10.4 人工校验记录

内容模块 审核者 审核方式 审核状态
规模/划分/评分公式等硬事实 千方病案医学编辑部 与官方内容页、挑战论文、archive 页逐项比对 ✅ 已通过
ALARMS/RECORDS/.hea 实测数据(标签分布、通道、增益、样本数) 千方病案医学编辑部 直接下载官方文件并用脚本统计核验 ✅ 已通过
ICD-11 与 SNOMED CT 编码映射 千方病案医学编辑部 维基文库 ICD-11 中文版 + Ontoserver 逐码 display 验证 ✅ 已通过
排行榜与引用数字 千方病案医学编辑部 与官方成绩公告、编辑部文章表 2、Semantic Scholar API 核对 ✅ 已通过
代码示例可运行性 千方病案医学编辑部 依 wfdb 官方 API 与实测 .hea 结构审查 ✅ 已通过
坑点与真实失败模式 千方病案医学编辑部 逐条对应官方文档/论文/实测数据溯源 ✅ 已通过
YAML frontmatter 与 §C JSON-LD 结构 千方病案医学编辑部 python yaml.safe_load / json.loads 解析验证,URL 占位与字段顺序逐项检查 ✅ 已通过
全文表述合规(地区表述、禁用占位符、站内链接规范) 千方病案医学编辑部 全文 grep 扫描禁词与占位符后逐条人工复核 ✅ 已通过

§10.5 AI 生成章节标注

§1–§10 初稿由 AI 依据 §10.3 所列来源起草;§2 医学编码表、§4.2 标签分布、§7.7 DAIMS 与坑点中的关键断言均经人工二次核验修订。代码块(§6.1–§6.4、§6.9)由 AI 生成骨架后按官方 .hea 实测结构人工校正(通道名、样本数、ALARMS 格式均与实文件一致)。

§10.6 最后人工审核日期

2026-09-05(与 §0 审核日期一致)

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


相关数据集导航

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

  • mover — 共享标签:生理信号 / 电子健康记录 / 重症监护 / 心电信号 / 时序数据
  • sicdb — 共享标签:生理信号 / 电子健康记录 / 重症监护 / 时序数据
  • pulsedb — 共享标签:生理信号 / 电子健康记录 / 重症监护 / 心电信号
  • eicu-crd — 共享标签:电子健康记录 / 重症监护 / 心血管疾病 / 时序数据
  • mimic-iv-waveform — 共享标签:生理信号 / 重症监护 / 时序数据
  • ptb-xl — 共享标签:生理信号 / 心电信号 / 心血管疾病 / 时序数据
  • code-15 — 共享标签:生理信号 / 心电信号 / 心血管疾病 / 时序数据
  • mimic-iv-ecg — 共享标签:生理信号 / 重症监护 / 心电信号 / 心血管疾病
  • mimic3wdb — 共享标签:生理信号 / 电子健康记录
  • mimic3wdb-matched — 共享标签:生理信号 / 电子健康记录

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

返回 AI-Ready 数据集