信息速览

Daphnet FoG — 帕金森冻结步态可穿戴基准数据集 AI-Ready Wikipedia
INFOBOX
| 字段 | 内容 |
|---|---|
| 数据集名称 | Daphnet 帕金森冻结步态数据集 |
| 英文全称 | Daphnet Freezing of Gait Dataset(Daphnet FoG Dataset) |
| 别名/简称 | Daphnet FoG;Daphnet Gait Dataset;UCI id 245 |
| 疾病分类(ICD-11) | 8A00.0 帕金森病(冻结步态为其运动症状,无独立编码) |
| SNOMED CT | 49049000(Parkinson’s disease) |
| 数据模态 | 可穿戴三轴加速度计 ×3(踝上方、大腿上方、下背部),9 通道 @ 64 Hz |
| AI 任务类型 | 时序监督分类:FoG 检测(二分类/三分类)与 FoG 预测(pre-FoG) |
| 样本总数 | 17 段录音、8 小时 20 分钟连续记录、237 次 FoG 事件(0.5-40.5 s) |
| 数据大小 | 压缩包 20.5 MB |
| 数据格式 | 空格分隔 .txt 矩阵(每文件 10 列:时间戳 + 9 通道加速度 + 标注) |
| 许可证 | CC BY 4.0 |
| 访问级别 | 开放(UCI 直接下载,无需注册) |
| DUO 标签 | NRES(无限制研究使用;CC BY 4.0 要求署名) |
| 语言 | 英语(文档与元数据) |
| 首发日期 | 2010(随 IEEE TITB 论文发布;UCI 收录 2013-03-06) |
| 最后更新 | 2013-03-06(UCI 捐赠版,此后无版本演进) |
| 发布机构 | 特拉维夫 Sourasky 医学中心步态与神经动力学实验室 & ETH Zurich 可穿戴计算实验室 |
| 官方主页 | UCI ML Repository - Daphnet Freezing of Gait |
| 下载地址 | UCI 官方下载(20.5 MB) |
| DOI | 10.24432/C56K78 |
| 引用次数 | 621+(Semantic Scholar,截至 2026-09) |
| AI 就绪度评分 | ⭐⭐⭐(3/5)— 格式统一、体量小、免申请;扣分项:无官方划分与预处理脚本,窗口标签仲裁与泄漏控制需自行实现 |
| 页面状态 | published |
§0 E-E-A-T 与审核声明
医学审核:千方病案医学编辑部(执业医师 + 运动障碍方向资料审校)交叉审核:§2 医学背景(ICD-11/SNOMED 映射、帕金森病与冻结步态临床定义、流行病学数字)、§7 偏倚分析。
数据工程审核:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。Daphnet FoG 以 CC BY 4.0 在 UCI Machine Learning Repository 开放分发,发表成果须引用原始论文(Bächlin et al., IEEE TITB 2010)与数据集 DOI(10.24432/C56K78)。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 30 秒速览
这是什么? Daphnet FoG 是一个专门用来研究"冻结步态"(Freezing of Gait, FoG)的公开数据集。冻结步态是帕金森病患者最常见的致残性症状之一——患者明明想走路,双脚却像被粘在地上一样迈不开步。该数据集让 10 例帕金森患者佩戴 3 个小型加速度传感器(脚踝上方、大腿上方、腰部),在实验室里完成直线行走、随机转身行走、模拟日常生活(取咖啡、开门、进出房间)三类任务,并用录像逐帧标注了每一次冻结发生的确切时刻。数据于 2008 年在特拉维夫 Sourasky 医学中心录制,以 CC BY 4.0 完全免费开放。
为什么重要? 它是可穿戴 FoG 检测领域事实上的标准对照基准:原始论文(Bächlin et al., IEEE TITB 2010)首次证明可以用身体佩戴的加速度传感器在线检测冻结并触发节奏性听觉提示,其后十余年间几乎所有可穿戴 FoG 算法论文都用它与同类数据集做对照。237 次真实冻结事件 + 8 小时 20 分钟连续 9 通道加速度,让这个体量很小的数据集成为"小而金"的教学与算法迭代利器。
我能用它做什么? 训练冻结步态检测模型(每 0.5 秒判断一次"是否冻结")、研究冻结发生前几秒的前兆信号(pre-FoG 预测)、比较不同佩戴位置(踝/大腿/腰)的检测性能、或者作为时序可穿戴信号 + 类不平衡标注的完整教学案例。注意事项:受试者仅 10 人且全部在实验室录制,它适合做算法原型与对照,不适合直接宣称"适用于家庭日常环境"。
§1.1 摘要
Daphnet FoG 由 ETH Zurich 可穿戴计算实验室与特拉维夫 Sourasky 医学中心步态与神经动力学实验室合作采集(EU FP6 Daphnet 项目,合同号 018474-2),录制于 2008 年,随 Bächlin 等人 2010 年发表于 IEEE Transactions on Information Technology in Biomedicine 的论文正式发布。10 例有冻结病史的帕金森患者(7 男 3 女,平均年龄 66.5 ± 4.8 岁)在脚踝上方(shank)、大腿上方(thigh)与下背部(trunk)佩戴 3 个三轴加速度计,9 通道信号以 64 Hz 采样、单位为毫克(mg),经蓝牙传输到腰部可穿戴计算系统,累计 8 小时 20 分钟。每名患者完成两类 session(带/不带实时听觉提示),任务包括直线往返行走(含 180° 转身)、随机行走(含 360° 转身与主动停止)和模拟日常生活活动。专业理疗师对照同步录像进行事后标注,把每个采样点标为 0(非实验段)/ 1(实验、无冻结)/ 2(冻结),共确认 237 次冻结事件(时长 0.5-40.5 s,其中 8 例患者出现冻结)。原始系统在线检测达到敏感度 73.1%、特异度 81.6%(0.5 秒帧评估),该数字至今仍是社区默认对照基线。数据以 17 个空格分隔的 txt 文件(S01R01-S10R01)经 UCI ML Repository 开放(DOI 10.24432/C56K78,压缩包 20.5 MB)。
§1.2 战略价值分析
范式开创维度:Daphnet FoG 是"可穿戴症状触发式干预"路线的第一个公开基准。原始论文验证的闭环——传感器检测冻结 → 触发节奏性听觉提示 → 帮助患者解除冻结——定义了此后移动健康(mHealth)领域一类重要的研究范式。2010 年前后 FoG 研究依赖实验室测力台与专业运动分析系统,Daphnet FoG 把"患者日常可穿戴"的技术路线变成了可复现、可对照的公开问题,并直接催生了 CuPiD 等后继项目(EU FP7,合同号 288516 为其数据发布提供支持)。
算法迭代维度:它是极少数"体量小到一晚能跑完、标注细到逐样本"的生理信号基准,天然适合做方法学消融:比较踝/大腿/腰三种佩戴位置、比较时域/频域特征(冻结频带 3-8 Hz 能量比,即 freeze index)、比较经典机器学习与深度学习。Bächlin 2010 论文本身就给出了 3 种传感器位置与 4 类派生信号的检测性能拆解,为后续论文提供了可直接引用的坐标。社区共识的评估协议(留一受试者,LOSO)也是围绕这类小队列可穿戴基准逐步定型的,Daphnet FoG 是其中最常被引用的测试床之一。
数据科学教学维度:这个数据集几乎浓缩了可穿戴时序项目的全部经典陷阱——滑窗重叠泄漏、类不平衡、窗口级标签仲裁、单位与采样率细节、小队列统计功效——而且每个陷阱都能在一小时内亲手触发一次(见 §6.5 的 8 个坑点)。相比动辄数 GB、需要申请审批的大型医疗数据,它让学习者把时间花在"理解为什么错"而不是"等数据下载"上,这也是它在课程与教程中被反复采用的原因。
§1.3 同类数据集横向对比
| 数据集 | 规模 | 模态与采样 | 标注 | 与 Daphnet FoG 的差异化 |
|---|---|---|---|---|
| Daphnet FoG(本条目) | 10 例患者,17 段录音,8 h 20 min | 3 个三轴加速度计(踝/大腿/腰),64 Hz,9 通道 | 逐样本 0/1/2 视频标注,237 次 FoG 事件 | 实验室强诱发性协议,冻结密度最高,多佩戴位置可对照 |
| IMU(圣保罗大学) | 35 例 PD 患者 | 单 shank IMU(加速度+角速度),128 Hz | 视频标注,转身任务 | 患者数更多、含陀螺仪,但仅单个佩戴点、任务单一 |
| CuPiD | 18 例 PD 患者 | 踝上+大腿 IMU | 任务级+视频标注 | 含日常生活场景走廊/大厅行走,协议更贴近真实环境 |
| BXHC 多模态(北京宣武医院) | 12 例有效 | 加速度 + EEG + EMG + 皮电 | 视频标注 | 多模态脑-肌-自主神经联合,适合 FoG 神经机制研究 |
| REMPARK | 21 例 PD 患者 | 单腰佩戴 IMU | 临床评估 | 面向家庭/日常监测,实验室诱导成分低 |
| PhysioNet Gait in PD | 93 例 PD + 73 例对照 | 足底 16 传感器垂直地面反作用力,100 Hz | 诊断标签(PD/对照) | 模态完全不同(测力台而非可穿戴),用于 PD 识别而非 FoG 检测 |
§1.4 版本时间轴
| 时间 | 版本/事件 | 说明 |
|---|---|---|
| 2008 年 | 数据采集 | 于特拉维夫 Sourasky 医学中心实验室录制,通过当地人体受试者审查委员会批准 |
| 2009-11 | 论文上线 | Bächlin et al. 在 IEEE TITB 在线发表(DOI 10.1109/TITB.2009.2036165),描述采集协议、传感器与基线性能 |
| 2010-03 | 正式发布 | IEEE TITB 14(2):436-446 刊出;同期姊妹篇发表于 Methods of Information in Medicine |
| 2010 年 | ETH 原始发布 | ETH Zurich 以 dataset_fog_release 形式发布原始数据包(doc/dataset 目录结构沿用至今) |
| 2013-03-06 | UCI 收录 | 捐赠至 UCI Machine Learning Repository(id 245,DOI 10.24432/C56K78,CC BY 4.0),成为此后最常用的获取渠道 |
| 截至 2026-09 | 当前状态 | 单版本维护,无后续数据更新;社区通过 ucimlrepo(fetch_ucirepo(id=245))或 UCI 页面直接下载 |
§1.5 典型应用场景
- FoG 检测算法基准:在新模型(1D CNN、ConvLSTM、Transformer、对比学习)与经典基线(频域 freeze index 阈值、SVM)之间做同协议对照,社区最普遍的用法。
- pre-FoG 预测研究:把标注中冻结前数秒定义出 “pre-FoG” 类,研究冻结的可预测性(如 Palmerini et al. 2014 用 SAX 符号化识别冻结前运动模式)。
- 佩戴位置消融实验:踝/大腿/腰三处信号同屏记录,可定量回答"用几个传感器、放哪里最划算",对可穿戴产品设计有直接工程价值。
- 可穿戴提示系统原型:检测延迟、在线计算量、提示触发策略(节奏性听觉提示)的端到端评估。
- 教学与课程设计:体量仅 20.5 MB、无申请门槛、标注语义清晰,是"时序信号 + 类不平衡 + 泄漏控制"三个教学难点的理想案例。
§2 医学背景
§2.1 ICD-11 编码映射
| 数据集标签 | ICD-11 编码 | ICD-11 中文名 | 说明 |
|---|---|---|---|
| 帕金森病患者队列 | 8A00 | 帕金森综合征(Parkinsonism) | 数据集所有受试者的基础疾病分类 |
| 帕金森病 | 8A00.0 | 帕金森病(Parkinson disease) | 队列的具体诊断;冻结步态作为其运动症状记录,ICD-11 中无独立编码 |
| 冻结步态(标注目标) | 无独立编码 | —(归入 8A00.0 的运动症状) | 以"尽管有行走意图,足部前进短暂、发作性消失或显著减弱"为操作定义 |
§2.1b SNOMED CT 映射
| 标签 | ICD-11 | SNOMED CT 码 | 术语 |
|---|---|---|---|
| 帕金森病(主要诊断) | 8A00.0 | 49049000 | Parkinson’s disease |
| 冻结步态(FoG) | 8A00.0(作为 PD 运动症状) | 无独立概念编码,编码实践为帕金森病诊断 + 步态相关发现的组合表达 | Freezing of gait(国际运动障碍学会定义见 §2.2) |
§2.2 疾病简介与流行病学
帕金森病(Parkinson’s Disease, PD) 是第二大常见神经退行性疾病,核心病理为黑质多巴胺能神经元退行性丢失,临床表现为静止性震颤、肌强直、运动迟缓与姿势步态异常。冻结步态(Freezing of Gait, FoG) 是 PD 中晚期最具致残性的步态症状之一,国际运动障碍学会将其定义为"尽管存在行走意图,足部向前行进短暂地、发作性地消失或显著减轻"。约 50% 的晚期 PD 患者会出现 FoG;FoG 常在起步、转身、穿越门口与双重任务时被诱发,是跌倒的重要诱因——研究提示至少 30% 的 PD 相关跌倒可与 FoG 关联,而约 60.5% 的 PD 患者一生中至少跌倒一次,39% 反复跌倒。除致残与跌倒风险外,FoG 对药物治疗反应不佳,因此"检测 → 实时提示(节奏性听觉/触觉/视觉提示)"的非药物干预路线具有重要临床价值,这正是 Daphnet FoG 数据集的服务场景。流行病学层面,受试者病程跨度 2-30 年、年龄 59-75 岁,代表了门诊运动障碍专病门诊中典型的 FoG 易发人群。
FoG 的典型诱发情境与其在本数据集协议中的对应关系:
| 诱发情境 | 临床表现 | 本数据集协议中的对应任务 |
|---|---|---|
| 行走启动 | 第一步迈出困难(起步冻结) | 直线往返行走任务的起步段 |
| 转身(尤其 180°/360°) | 转身中脚步粘滞、小碎步 | 直线行走含 180° 转身;随机行走含 360° 转身 |
| 穿越门口/狭窄空间 | 接近门框时骤停 | ADL 模拟(开门、进出房间) |
| 双重任务 | 边走边做认知任务时冻结加重 | ADL 模拟(取咖啡/水、开外门等组合动作) |
| 焦虑与时间压力 | 症状随情境紧张度上升 | 实验任务计时与指令压力(未单独控制) |
治疗层面的对应关系同样决定了本数据集的价值定位:节奏性听觉提示(rhythmic auditory cueing)是 FoG 少数有效果的非药物手段之一,原始系统正是在检测到冻结时播放节奏性节拍声帮助患者"解冻"——因此数据集中"带/不带实时提示"两类 session 既服务于检测器训练,也记录了提示对步态本身的影响。
§2.3 临床任务定义
| 任务 | 输入 | 输出 | 临床意义 |
|---|---|---|---|
| FoG 检测(detection) | 滑动窗口内的 9 通道加速度(常为 2-4 s 窗口) | 窗口级/帧级二分类:冻结 vs 非冻结 | 实时发现冻结并触发节奏性提示,缩短"脚下粘住"的时长,降低跌倒风险 |
| FoG 预测(prediction) | 冻结前数秒的加速度序列 | 三分类:pre-FoG / 行走 / 冻结 | 在冻结发生前预警,提前启动提示或安全保护(如制动轮椅) |
| 佩戴位置/信号源评估 | 单位置或多位置信号 | 各位置检测性能对比 | 指导可穿戴产品的传感器数量与佩戴点设计 |
| 症状定量与纵向监测 | 逐日累计的冻结频次/时长 | FoG 负荷指标 | 作为疗效评估与远程随访的数字生物标志物(本数据集为横断面,纵向需自建) |
§2.4 患者人群表
| 维度 | 内容 |
|---|---|
| 来源 | 特拉维夫 Sourasky 医学中心(TASMC)神经科步态与神经动力学实验室,运动障碍专病队列 |
| 采集时间 | 2008 年(实验室环境录制) |
| 样本量 | 10 例 PD 患者(8 例在实验中实际出现 FoG) |
| 性别 | 7 男 / 3 女 |
| 年龄 | 平均 66.5 ± 4.8 岁(范围 59-75 岁) |
| 病程 | 2-30 年 |
| 药物状态 | 覆盖 ON 期与 OFF 期(数据在带/不带听觉提示两类 session 中采集) |
| 种族/地域 | 单中心(以色列特拉维夫),未见种族分层数据发布 |
| 入组特征 | 均有明确 FoG 病史;个别患者因病情严重(患者 1)或足下垂(患者 8)存在步态合并问题 |
§2.5 临床价值
对临床而言,这套数据支撑的核心命题是:用少量可穿戴传感器实时识别 FoG 是否可行、放在哪里最可靠。原始论文的答案(敏感度 73.1%、特异度 81.6%,0.5 秒帧评估)证明可行性已经达成"能触发有用提示"的门槛,多数患者主观认可自动提示的价值。对产品与研究者而言,逐样本视频标注提供了罕见的"冻结发生的确切时间窗",使检测延迟(原始系统约 350-500 ms 量级)和事件级敏感度可以被严格度量——这两项恰是 FoG 干预设备能否"来得及帮忙"的关键指标。对数字生物标志物研究而言,数据中的冻结频带(3-8 Hz)能量特征(freeze index)已成为 PD 步态分析中可跨数据集迁移的候选特征。
§2.6 金标准参考表
| 维度 | 内容 |
|---|---|
| 标注对象 | 9 通道加速度信号流的每个采样点(64 Hz) |
| 标注方式 | 专业理疗师对照同步数字录像的事后(post hoc)逐段标注;现场另有理疗师记录事件起止时间与当时活动 |
| 标注者 | 职业理疗师(professional physiotherapists),具体人数与一致性系数(如 Cohen’s κ)未随数据发布 |
| 标注体系 | 0 = 非实验段(安装传感器、与协议无关的活动);1 = 实验中无冻结(站、走、转身均可);2 = 冻结 |
| 事件规模 | 237 次 FoG 事件,单次时长 0.5-40.5 s |
| 性质 | 视频 + 专家事件的"金标准"级行为标注;非自动化标签,边界处存在逐样本切换的固有模糊 |
§3 数据集规格
§3.0 版本抉择矩阵
| 你的需求 | 推荐版本 | 大小 | 理由 |
|---|---|---|---|
| 快速跑通基准、写论文对照 | UCI ML Repository(id 245) | 20.5 MB | 最权威分发渠道,DOI 10.24432/C56K78 可直接引用,CC BY 4.0 |
| Python 一行拉取、云端实验 | ucimlrepo 包 fetch_ucirepo(id=245) |
20.5 MB | 免手动下载,直接返回 pandas DataFrame 与元数据 |
| 需要原始 README/文档原貌 | ETH 原始发布包(dataset_fog_release) | 与 UCI 相同内容 | 含原始许可与引用要求说明;GitHub 等社区镜像较多,注意校验完整性 |
| 需要陀螺仪/日常环境/更大队列 | 本数据集不适用,改用 IMU(圣保罗)、CuPiD 或 REMPARK | — | Daphnet 仅加速度、实验室协议、10 例 |
§3.1 模态详情
| 模态 | 细节 |
|---|---|
| 可穿戴三轴加速度计 ×3 | 佩戴于踝上方(shank,水平前向/垂直/水平侧向 3 轴)、大腿上方(thigh,3 轴)、下背部(trunk,3 轴),共 9 通道 |
| 采样率 | 64 Hz(时间戳以毫秒记录,名义间隔约 15.6 ms) |
| 单位与量纲 | 毫克 mg(1 mg = 0.001 g),非 m/s²,使用前需换算 |
| 传输与记录 | 传感器经蓝牙链路传输至佩戴于下背部的可穿戴计算系统 |
| 同步标注源 | 数字录像与可穿戴数据同步,用于事后逐样本标注 |
| 不包含 | 陀螺仪、EMG、EEG、测力台、步态视频本身(视频未随数据发布) |
§3.2 按子集样本数表
| 受试者 | 文件 | 说明 |
|---|---|---|
| S01 | S01R01, S01R02 | 患者病情严重致步态困难,短冻结与行走难分(原始研究已知局限) |
| S02 | S02R01, S02R02 | S02R01 被后续方法学研究列为冻结量适中、适合分析的文件 |
| S03 | S03R01, S03R02, S03R03 | 唯一有 3 段录音的受试者;S03R02 亦为推荐分析文件 |
| S04 | S04R01 | 无 FoG 事件(该文件标注 2 类缺失) |
| S05 | S05R01, S05R02 | 患者出现多达 66 次 FoG 事件(全队列最多) |
| S06 | S06R01, S06R02 | S06R01 为推荐分析文件 |
| S07 | S07R01, S07R02 | — |
| S08 | S08R01 | 患者足下垂,短冻结难分(原始研究已知局限);FoG 事件时长方差较大 |
| S09 | S09R01 | — |
| S10 | S10R01 | 无 FoG 事件 |
| 合计 | 17 段录音,8 h 20 min,237 次 FoG 事件 | 患者 5/6 分别对应事件数最多(66)与最少(10)的 FoG 患者 |
§3.3 格式表
| 属性 | 规格 |
|---|---|
| 文件组织 | 每个 .txt 文件对应一名受试者的一段录音(SXXRYY:XX=受试者,YY=录音序号) |
| 行结构 | 一行一个 64 Hz 采样点,列为空格分隔数值 |
| 列布局(10 列) | 1 时间戳(ms);2-4 踝部(水平前向/垂直/水平侧向,mg);5-7 大腿(同序);8-10 下背部(同序);11 标注(0/1/2) |
| 数值类型 | 时间戳与标注为整数,加速度为实数(单位 mg) |
| 缺失值 | UCI 元数据标注 “Has Missing Values? No” |
| 压缩分发 | UCI 打包为 zip(20.5 MB),亦可通过 ucimlrepo 程序化获取 |
§3.4 存储大小
| 项目 | 大小 |
|---|---|
| UCI 官方压缩包 | 20.5 MB |
| 单文件规模 | 约 6.8-8.7 MB(如 S01R01.txt 6.8 MB、S04R01.txt 8.7 MB) |
| 解压后内存占用 | 全量载入 pandas 约数百 MB 级以内,普通笔记本(8 GB 内存)可全量处理 |
§3.5 标注方式
标注为人工事后标注(manual post hoc annotation):现场由理疗师记录事件发生时间与患者当时活动,同时数字录像与可穿戴数据同步;标注者事后对照录像把每个采样点归入 0(非实验)/ 1(无冻结)/ 2(冻结)。与同领域其他标注范式的对照:
| 标注范式 | 本数据集是否采用 | 说明 |
|---|---|---|
| 人工事后标注(视频对齐) | ✅ 采用 | 专业理疗师 + 同步录像,金标准路径 |
| 现场实时人工记录 | ✅ 辅助采用 | 现场理疗师记录事件起止与当时活动,与事后标注互补 |
| 自动/启发式弱标注 | ❌ 未采用 | 无基于阈值或频域判据自动生成的标签 |
| 众包/自报告标注 | ❌ 未采用 | 无患者自报告成分 |
这是行为症状数据中的"金标准"路径,但要理解两点固有局限:其一,标注粒度是采样点级,冻结起止边界(1↔2 切换)处不可避免存在一到两个采样步的模糊;其二,未发布标注者人数与一致性系数(如 κ),标注间信度无法从数据本身复核。标注 0 的段落不是"缺失值",而是协议外的信息性排除段(如安装传感器、事后交流),预处理时通常直接剔除。
§3.6 标注者资质与一致性
标注由专业理疗师(professional physiotherapists)完成,原始论文明确 237 次 FoG 事件由其通过事后视频分析识别;现场记录与事后视频标注两路信息互补。数据发布未包含标注者人数、资质年限与一致性统计(κ/ICC),复现事件级指标时应把"边界判定差异"计入不确定度。
§3.7 采集周期
全部数据于 2008 年在特拉维夫 Sourasky 医学中心集中采集;每名受试者在单日完成两类 session(带实时听觉提示与不带),每个 session 内完成直线行走、随机行走与日常生活模拟三类任务。数据集为横断面单日采集,无纵向随访分量。
单名受试者的采集流程与文件产出的对应关系:
| 步骤 | 内容 | 数据产出 |
|---|---|---|
| 1. 传感器安装 | 魔术贴/弹性绑带固定踝上、膝上、下背部三个加速度计 | 标注 0(非实验段,安装过程中) |
| 2. Session A/B:直线行走 | 直线往返 + 180° 转身 | 标注 1(行走/站立/转身)+ 标注 2(冻结) |
| 3. Session A/B:随机行走 | 随机路径 + 360° 转身 + 主动停止 | 同上 |
| 4. Session A/B:ADL 模拟 | 进出房间、取咖啡/水、开外门 | 同上 |
| 5. 事后标注 | 理疗师对照同步视频逐样本标注 | 0/1/2 标注列写入数据文件 |
| 6. 导出 | 每段连续录音导出为一个 txt | SXXRYY.txt(全队列共 17 个文件) |
注:带/不带提示两类 session 在文件级元数据中未显式标记(见坑点 8);受试者录音数为 1-3 段不等(S03 有 3 段,S04/S08/S09/S10 各 1 段,其余各 2 段)。
§3.8 地域覆盖
单中心:以色列特拉维夫(Tel Aviv Sourasky Medical Center)。无多中心、多地域覆盖,泛化到其他人群时需谨慎(见 §7.3)。
§3.9 设备规格
| 项目 | 规格 |
|---|---|
| 传感器 | 身体佩戴式三轴加速度计(ETH Zurich 自研,随论文描述;具体型号与量程未随数据发布) |
| 通道 | 3 位置 × 3 轴 = 9 通道 |
| 采样率 | 64 Hz |
| 单位 | mg |
| 佩戴与传输 | 魔术贴/弹性绑带固定于踝上、膝上、下背部;蓝牙传输至腰部可穿戴计算系统 |
| 同步设备 | 数字摄像机(录像仅用于标注,未随数据发布) |
§3.10 深度溯源链
| 层级 | 内容 |
|---|---|
| 资助 | EU FP6 Daphnet 项目(合同 018474-2)资助数据采集;EU FP7 CuPiD 项目(合同 288516)支持数据发布 |
| 采集 | 特拉维夫 Sourasky 医学中心步态与神经动力学实验室(Meir Plotnik、Jeffrey M. Hausdorff、Nir Giladi 团队) + ETH Zurich 可穿戴计算实验室(Marc Bächlin、Daniel Roggen、Gerhard Tröster 团队) |
| 论文 | Bächlin et al., “Wearable Assistant for Parkinson’s Disease Patients With the Freezing of Gait Symptom”, IEEE TITB 14(2):436-446, 2010(数据协议、传感器、基线均以此文为准) |
| 分发 | ETH 原始发布(dataset_fog_release)→ UCI ML Repository(2013-03-06 捐赠,id 245,DOI 10.24432/C56K78,CC BY 4.0) |
| 伦理 | 当地人体受试者审查委员会批准,符合《赫尔辛基宣言》 |
§4 数据结构
§4.0 目录树
解压 UCI 下载包(或 ETH 原始发布包)后的结构如下:
daphnet+freezing+of+gait/ # UCI 压缩包根目录
└── dataset_fog_release/ # 原始发布目录
├── dataset/ # 17 个录音文件(核心数据)
│ ├── S01R01.txt # 受试者 01 · 录音 01
│ ├── S01R02.txt
│ ├── S02R01.txt
│ ├── S02R02.txt
│ ├── S03R01.txt
│ ├── S03R02.txt
│ ├── S03R03.txt
│ ├── S04R01.txt # 受试者 04:无 FoG 事件
│ ├── S05R01.txt
│ ├── S05R02.txt
│ ├── S06R01.txt
│ ├── S06R02.txt
│ ├── S07R01.txt
│ ├── S07R02.txt
│ ├── S08R01.txt
│ ├── S09R01.txt
│ └── S10R01.txt # 受试者 10:无 FoG 事件
└── doc/ # 原始发布说明(协议、许可与引用要求)
§4.1 DAIMS 字段字典
以下为单个 txt 文件的字段定义(8 列格式:字段/类型/说明/示例/AI 用途/观测误差/信息性缺失/取值范围):
| 字段 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| Time(列 1) | Integer | 采样时间戳,毫秒 | 150 | 对齐滑窗、检测采样抖动 | 名义 64 Hz,实际间隔约 15.6 ms 且非严格均匀 | 无缺失 | 单调递增整数 |
| Ankle-HorizontalForward(列 2) | Float | 踝部水平前向加速度(mg) | -128.0 | 步态节律、冻结频带特征 | 传感器噪声 + 佩戴松动伪影 | 无缺失 | 实数 |
| Ankle-Vertical(列 3) | Float | 踝部垂直加速度(mg) | 96.0 | 冻结频带(3-8 Hz)能量主要来源 | 同上 | 无缺失 | 实数 |
| Ankle-HorizontalLateral(列 4) | Float | 踝部水平侧向加速度(mg) | 24.0 | 左右摆动模式 | 同上 | 无缺失 | 实数 |
| Thigh-HorizontalForward(列 5) | Float | 大腿水平前向加速度(mg) | -48.0 | 步幅/摆腿动力学 | 同上 | 无缺失 | 实数 |
| Thigh-Vertical(列 6) | Float | 大腿垂直加速度(mg) | 120.0 | 步态周期分割 | 同上 | 无缺失 | 实数 |
| Thigh-HorizontalLateral(列 7) | Float | 大腿水平侧向加速度(mg) | -16.0 | 转身动作特征 | 同上 | 无缺失 | 实数 |
| Trunk-HorizontalForward(列 8) | Float | 下背部水平前向加速度(mg) | 32.0 | 躯干推进特征 | 同上 | 无缺失 | 实数 |
| Trunk-Vertical(列 9) | Float | 下背部垂直加速度(mg) | 984.0 | 重力分量 + 躯干节律 | 同上 | 无缺失 | 实数 |
| Trunk-HorizontalLateral(列 10) | Float | 下背部水平侧向加速度(mg) | -8.0 | 姿势摆动 | 同上 | 无缺失 | 实数 |
| Annotation(列 11) | Integer | 逐样本行为标注 | 2 | 分类目标标签 | 边界处 1↔2 切换有 1-2 步模糊 | 0 = 非实验段(信息性排除) |
§4.2 标签分布
标签体系为三分类语义:0 = 非实验段(安装传感器、协议外活动,约占每个文件的开头与结尾片段);1 = 实验、无冻结(站立、行走、转身等正常运动,占绝对多数);2 = 冻结(少数类)。官方未发布逐类样本占比统计,需自行统计;可确认的硬数字是:237 次冻结事件分布在 8 例患者(S04、S10 完全无冻结事件),单次时长 0.5-40.5 s,其中患者 5 贡献 66 次(最多)、患者 6 仅 10 次(FoG 患者中最少)。按 64 Hz 换算,即便取事件时长下限估计,冻结类样本在剔除 0 类后的占比仍属典型不平衡场景(个位数到百分之十几量级),建模时必须处理类不平衡(见坑点 8)。
事件重建与分布核查建议:把每个文件中"连续标注 2 的区段"重建为事件列表后,全队列事件总数应为 237;单患者事件数排序(患者 5 → 66 次,患者 6 → 10 次)可作为重建正确性的快速校验锚点。若重建数与 237 不符,优先检查是否把标注 0 段落一并计入、或对跨文件边界做了错误拼接。
§4.3 关键统计
| 统计项 | 数值 | 来源 |
|---|---|---|
| 受试者数 | 10(8 例有 FoG) | 原始论文 |
| 录音文件数 | 17 | 数据发布 |
| 总时长 | 8 小时 20 分钟(≈500 min) | 2024 年 meta 分析 |
| 总采样点数(估算) | ≈ 30,000 s × 64 Hz ≈ 192 万行 | 由总时长 × 采样率推算 |
| FoG 事件数 | 237 次(0.5-40.5 s) | 原始论文 |
| 单患者事件数 | 最多 66 次(患者 5),FoG 患者中最少 10 次(患者 6) | 2019 年 De Gruyter 专著章节 |
| 采样率 | 64 Hz,单位 mg | 数据发布 |
| 在线检测基线 | 敏感度 73.1% / 特异度 81.6%(0.5 s 帧) | 原始论文 |
§4.4 数据层级
队列(10 例 PD 患者)
└── 受试者 S01-S10(匿名编号,人口学仅论文级汇总)
└── 录音 R01/R02/R03(每段一个 txt 文件,对应一个 session 内的连续记录)
└── 采样点(64 Hz,每点 9 通道加速度 + 1 个标注)
└── 事件(237 个 FoG episode = 连续标注 2 的区段)
注意:样本(采样点) 与 事件(episode) 是两个不同粒度,官方 “237 instances” 指事件而非采样点;所有建模指标必须先声明评估粒度(见坑点 4)。
§4.5 缺失值与信息性缺失
UCI 元数据明确标注 “Has Missing Values? No”:17 个文件内无缺失采样与缺失通道。信息性缺失体现在标注维度:标注 0 的段落代表"协议外"(传感器安装、事后交流等),并非传感器故障,预处理的标准做法是直接剔除而非插补;没有任何文件用特殊数值(如 -999)编码缺失。
载入全库后的三分钟快检脚本(在任何训练前先跑一遍):
import numpy as np
import pandas as pd
from pathlib import Path
root = Path("./daphnet+freezing+of+gait/dataset_fog_release/dataset")
COLS = ["time_ms", "ankle_hf", "ankle_v", "ankle_hl",
"thigh_hf", "thigh_v", "thigh_hl",
"trunk_hf", "trunk_v", "trunk_hl", "annotation"]
total_events = 0
for f in sorted(root.glob("S*.txt")):
df = pd.read_csv(f, sep=r"\s+", header=None, names=COLS)
n_files_ok = df.shape[1] == 11 # 快检 1:11 列
labels_ok = set(df["annotation"].unique()) <= {0, 1, 2} # 快检 2:标注取值合法
mono_ok = (df["time_ms"].diff().dropna() > 0).all() # 快检 3:时间戳单调
events = (df["annotation"].diff() == 2).sum() # 快检 4:事件段计数(近似)
total_events += (df["annotation"] == 2).any() * events # 仅统计有冻结的文件
print(f.name, "cols:", n_files_ok, "labels:", labels_ok,
"mono:", mono_ok, "events~", events)
print("总事件数应≈237(边界拼接误差内)") # 快检 5:对照官方事件总数
§5 划分与使用建议
§5.1 官方划分
官方不提供任何训练/验证/测试划分。原始论文采用在线检测协议(0.5 秒帧评估 + 检测延迟分析),并区分了"用户特定"与"用户独立"两种性能视角,但没有落成可下载的划分文件。因此划分方案是使用者的自由度,也是最大的泄漏风险源(见 §5.3)。
§5.2 社区惯例划分
| 惯例 | 做法 | 适用场景 | 陷阱 |
|---|---|---|---|
| 随机窗口 80/20 | 全部滑窗样本随机划分 | 仅用于快速调试 | 相邻窗口重叠导致严重泄漏,性能虚高(社区常见 95%+ 假象) |
| 10 折交叉验证 | 按样本折分 | 历史论文常用 | 同样有窗口相邻泄漏问题,与 LOSO 结果不可比 |
| 留一受试者(LOSO) | 每次 leave out 1 例患者全部数据 | 用户独立性能,社区事实标准 | 注意 S04/S10 无正样本、患者数仅 10,方差大 |
| 按录音划分 | 划分 17 个文件(同一受试者文件不跨集) | 折中方案 | 同一受试者仍在两集时属"用户内泛化",需注明 |
§5.3 泄漏风险与防泄漏策略(重点)
三条必须遵守的纪律:
- 窗口重叠泄漏:常用 4 s 窗口 + 0.5 s 步长(相邻窗口 87.5% 重叠),随机划分会让几乎相同的窗口分属训练与测试集。解决:任何随机划分前先按"受试者"(严格)或至少按"连续时间块"(宽松)分组切分。
- 预处理泄漏:标准化、特征选择、过采样都必须只在训练折内 fit。在全数据上做 z-score 或 SMOTE 后再划分,是最常见的隐性泄漏。
- 阈值/特征工程泄漏:freeze index 的频带参数(3-8 Hz / 0.5-3 Hz)来自领域先验可以使用,但任何在测试折上调出来的窗长、阈值、滤波参数都属于泄漏。
§5.4 交叉验证建议
推荐 LOSO 10 折(10 例患者轮流做测试)+ 折内按时间块切出验证集做早停与调参;报告跨折均值 ± 标准差而非单折最优。由于 S04/S10 折没有正样本,建议在事件级评估中把它们仅用于特异度统计,或在论文中明确说明其处理方式。若做事件级指标,测试受试者的事件应整体保留或整体划入,不允许同一事件的不同部分跨集。
§5.5 外部验证建议
在同一模型上接入圣保罗 IMU 数据集(35 例、单 shank、128 Hz)或 CuPiD(18 例、踝+大腿)做跨数据集迁移测试时,需注意采样率(64 vs 128 Hz)、通道定义与标注协议差异,先做重采样与通道对齐。任何"实验室 → 家庭"的泛化声明都应使用以家庭环境采集的数据(如 REMPARK、ADL 协议数据集)验证,而不是只引用本数据集的实验室结果。
§5.6 合规与署名检查清单
投稿或开源前逐项自查:
- 论文/仓库引用了 Bächlin et al. 2010(IEEE TITB)与数据集 DOI(10.24432/C56K78)。
- 转发的数据副本附带原始许可说明(CC BY 4.0),未移除或替换许可。
- 未声称数据经过额外临床验证或与官方不同的标注语义。
- 对 S04/S10 无冻结受试者、cueing session 混合等协议事实的描述与原始论文一致。
- 若使用了 ETH 原始发布渠道,按 README 建议知会原作者(daniel.roggen@ieee.org)。
§6 AI 就绪指南
§6.0 云端快速启动
无需任何申请,Google Colab 直接运行:
# Google Colab / Kaggle 均可直接运行(无需 API Key)
!pip -q install ucimlrepo
from ucimlrepo import fetch_ucirepo
daphnet = fetch_ucirepo(id=245) # UCI id 245 = Daphnet Freezing of Gait
X = daphnet.data.features # 9 通道加速度(pandas DataFrame)
y = daphnet.data.targets # annotation 标注列
print(daphnet.metadata) # 数据集元信息
print(daphnet.variables) # 官方变量表(列语义以此为准)
§6.1 快速上手
下面代码假设你已从 UCI 下载并解压 20.5 MB 压缩包。目录结构预期:DATA_ROOT/dataset_fog_release/dataset/S01R01.txt ... S10R01.txt;data_root 与文件名的拼接关系为 os.path.join(data_root, "dataset_fog_release", "dataset", fname)。最小可用子集建议从 S02R01.txt、S03R02.txt、S06R01.txt 起步(后续方法学研究标注的"冻结量适中"文件)。
import numpy as np
import pandas as pd
from pathlib import Path
# DATA_ROOT 指向解压目录;列布局见 §4.1
DATA_ROOT = Path("./daphnet+freezing+of+gait/dataset_fog_release")
COLS = ["time_ms",
"ankle_hf", "ankle_v", "ankle_hl",
"thigh_hf", "thigh_v", "thigh_hl",
"trunk_hf", "trunk_v", "trunk_hl",
"annotation"]
def load_recording(fname: str) -> pd.DataFrame:
"""读入单个录音文件;每行一个 64 Hz 采样点,空格分隔 10 列。"""
df = pd.read_csv(DATA_ROOT / "dataset" / fname, sep=r"\s+", header=None, names=COLS)
return df
df = load_recording("S02R01.txt")
df = df[df["annotation"] != 0] # 关键一步:剔除非实验段(标注 0)
X = df[COLS[1:-1]].to_numpy(dtype=np.float32) # (N, 9),单位 mg
y = (df["annotation"] == 2).to_numpy(dtype=np.int64) # 二分类:1=冻结
print(X.shape, y.mean()) # 查看样本量与冻结类占比
§6.2 数据获取
| 方式 | 操作 | 大小 | 要求 |
|---|---|---|---|
| UCI 网页下载 | 访问 UCI 官方页,点击 Download | 20.5 MB | 无需注册 |
| Python 程序化 | pip install ucimlrepo 后 fetch_ucirepo(id=245) |
20.5 MB | 无需注册 |
| ETH 原始发布 | 从原始 dataset_fog_release 发布渠道/社区镜像获取 | 同内容 | 发表须引用 Bächlin 2010 并知原作者(README 注明可邮件告知 daniel.roggen@ieee.org 以做交叉引用) |
获取后建议核对:文件数 = 17;每个文件 11 列(时间戳 + 9 通道 + 标注);标注取值仅 {0, 1, 2}。
# 下载后一键核对(约 1 分钟)
import pandas as pd
from pathlib import Path
files = sorted(Path("./daphnet+freezing+of+gait/dataset_fog_release/dataset").glob("S*.txt"))
assert len(files) == 17, f"文件数应为 17,实际 {len(files)}" # 文件数
for f in files:
head = pd.read_csv(f, sep=r"\s+", header=None, nrows=5)
assert head.shape[1] == 11, f"{f.name} 列数异常" # 列数
assert set(head.iloc[:, -1].unique()) <= {0, 1, 2} # 标注域
print("全部核对通过:17 个文件 × 11 列,标注取值合法")
§6.3 预处理全流程
完整流水线:格式读取 → 剔除标注 0 → 单位换算(mg → m/s²,可选)→ 带通/低通滤波 → z-score 标准化(仅在训练折内 fit)→ 滑窗切分 → 窗口标签仲裁。超过 30 行的完整脚本折叠如下:
<details>
<summary>预处理完整脚本(约 60 行,点击展开)</summary>
import numpy as np
from scipy.signal import butter, filtfilt
from pathlib import Path
DATA_ROOT = Path("./daphnet+freezing+of+gait/dataset_fog_release")
COLS = ["time_ms", "ankle_hf", "ankle_v", "ankle_hl",
"thigh_hf", "thigh_v", "thigh_hl",
"trunk_hf", "trunk_v", "trunk_hl", "annotation"]
WIN_SEC, STEP_SEC, FS = 4.0, 0.5, 64 # 原始论文同款窗长;步长可按任务调整
def butter_lowpass(sig, cutoff=15.0, fs=FS, order=4):
"""人体步态动力学主要低于 15 Hz,高频以噪声为主(社区常用设定)。"""
b, a = butter(order, cutoff / (0.5 * fs), btype="low")
return filtfilt(b, a, sig, axis=0)
def load_clean(fname: str):
df = pd.read_csv(DATA_ROOT / "dataset" / fname, sep=r"\s+",
header=None, names=COLS)
df = df[df["annotation"] != 0] # 1) 剔除非实验段
sig = df[COLS[1:-1]].to_numpy(dtype=np.float64) # (N, 9) mg
sig_ms2 = sig * 9.80665e-3 # 2) mg -> m/s^2
sig_ms2 = butter_lowpass(sig_ms2) # 3) 低通滤波
label = df["annotation"].to_numpy(dtype=np.int64)
return sig_ms2, label
def make_windows(sig, label, win=int(WIN_SEC * FS), step=int(STEP_SEC * FS),
freeze_ratio: float = 0.5):
"""4) 滑窗 + 5) 窗口标签仲裁:窗口内冻结采样占比 >= freeze_ratio 记为 FoG。
也可改用更保守的三段式(freeze/no-freeze/过渡段剔除)。"""
X, y = [], []
for s in range(0, len(sig) - win + 1, step):
seg_lab = label[s:s + win]
pos = (seg_lab == 2).mean()
if pos == 0.0:
y_i = 0 # 纯无冻结
elif pos >= freeze_ratio:
y_i = 1 # 冻结为主
else:
continue # 过渡窗:默认丢弃
X.append(sig[s:s + win].T) # (9, T)
y.append(y_i)
return np.stack(X).astype(np.float32), np.asarray(y, dtype=np.int64)
if __name__ == "__main__":
all_X, all_y, all_sid = [], [], []
for fname in sorted(p.name for p in (DATA_ROOT / "dataset").glob("S*.txt")):
sid = int(fname[1:3]) # SXXRYY -> XX 作为分组键
sig, lab = load_clean(fname)
Xw, yw = make_windows(sig, lab)
all_X.append(Xw); all_y.append(yw); all_sid.append(np.full(len(yw), sid))
X = np.concatenate(all_X); y = np.concatenate(all_y); sid = np.concatenate(all_sid)
print("windows:", X.shape, "FoG ratio:", y.mean())
np.savez_compressed("daphnet_windows.npz", X=X, y=y, sid=sid) # sid 用于 LOSO
</details>
要点:sid(受试者编号)必须随窗口一起保存,LOSO 划分全靠它;标准化未写进脚本,因为必须放在训练折内部(见坑点 7)。
§6.4 PyTorch DataLoader
完整可运行的 Dataset 类 + transform + DataLoader 实例化(LOSO 感知):
<details>
<summary>PyTorch Dataset / DataLoader 完整代码(约 55 行,点击展开)</summary>
import numpy as np
import torch
from torch.utils.data import Dataset, DataLoader
class DaphnetWindows(Dataset):
"""基于 §6.3 产出的 daphnet_windows.npz 构建窗口数据集。
预期目录结构:./daphnet_windows.npz(含 X:(N,9,T) float32, y:(N,), sid:(N,))。
data_root 与文件名的拼接关系:os.path.join(data_root, "daphnet_windows.npz")。
最小可用子集:sid in {2, 3, 6}(S02/S03/S06 推荐文件)。"""
def __init__(self, data_root: str, sids=None, train_mean=None, train_std=None):
d = np.load(np.join if False else f"{data_root}/daphnet_windows.npz")
X, y, sid = d["X"], d["y"].astype(np.int64), d["sid"].astype(np.int64)
if sids is not None: # LOSO:仅保留指定受试者
m = np.isin(sid, sids)
X, y = X[m], y[m]
X = torch.from_numpy(X)
if train_mean is not None: # 标准化参数必须来自训练折
X = (X - train_mean) / (train_std + 1e-8)
self.X, self.y = X, torch.from_numpy(y)
def __len__(self):
return len(self.y)
def __getitem__(self, idx):
return self.X[idx], self.y[idx]
def fit_stats(data_root: str, train_sids):
"""仅在训练折上计算均值/方差(防泄漏,见坑点 7)。"""
tr = DaphnetWindows(data_root, sids=train_sids) # 未标准化
X = tr.X.numpy()
return X.mean(axis=(0, 2), keepdims=True), X.std(axis=(0, 2), keepdims=True)
def loso_loaders(data_root: str, test_sid: int, batch_size: int = 128):
all_sids = list(range(1, 11)) # S01-S10
train_sids = [s for s in all_sids if s != test_sid]
mean, std = fit_stats(data_root, train_sids)
tr = DaphnetWindows(data_root, sids=train_sids, train_mean=mean, train_std=std)
te = DaphnetWindows(data_root, sids=[test_sid], train_mean=mean, train_std=std)
# 类不平衡:正类权重交给损失函数,采样层面避免随机过采样复制窗口(坑点 8)
return (DataLoader(tr, batch_size=batch_size, shuffle=True, drop_last=True),
DataLoader(te, batch_size=batch_size, shuffle=False))
if __name__ == "__main__":
train_loader, test_loader = loso_loaders(".", test_sid=1)
for xb, yb in train_loader:
print(xb.shape, yb.dtype) # torch.Size([128, 9, 256]) torch.int64
break
</details>
一个轻量 1D CNN 起点(可在 Colab CPU 上数分钟内跑完单折):
import torch.nn as nn
class FoGCNN(nn.Module):
"""输入 (B, 9, 256),输出冻结概率;4 s 窗口 / 64 Hz。"""
def __init__(self, n_ch: int = 9):
super().__init__()
self.net = nn.Sequential(
nn.Conv1d(n_ch, 32, 7, padding=3), nn.BatchNorm1d(32), nn.ReLU(),
nn.MaxPool1d(4), # -> 64
nn.Conv1d(32, 64, 5, padding=2), nn.BatchNorm1d(64), nn.ReLU(),
nn.MaxPool1d(4), # -> 16
nn.Conv1d(64, 64, 3, padding=1), nn.BatchNorm1d(64), nn.ReLU(),
nn.AdaptiveAvgPool1d(1),
)
self.head = nn.Linear(64, 1)
def forward(self, x):
return self.head(self.net(x).squeeze(-1)).squeeze(-1)
model = FoGCNN()
crit = nn.BCEWithLogitsLoss(pos_weight=torch.tensor([5.0])) # 类不平衡用 pos_weight
§6.5 坑点 8 个
⚠️ 坑点 1:滑窗重叠 + 随机 80/20 划分 = 灾难性数据泄漏(分类:数据泄漏)
问题:标准用法是 4 s 窗口、0.5 s 步长(相邻窗口重叠 87.5%),若再对全体窗口做随机划分,训练与测试集会包含几乎逐点相同的窗口,FoG 检测性能被严重高估,社区论文中 95%+ 的"准确率"多源于此。
症状:测试指标好到不真实(F1 > 0.95),换成完全没见过的受试者后性能断崖式下跌;模型对"患者身份"的过拟合远大于对"冻结"的识别。
解决:
- 简单方法:以受试者为分组键做 LOSO(留一受试者)交叉验证,任何窗口不跨受试者。
- 进阶方法:用
sklearn.model_selection.GroupKFold(groups=sid)或按录音文件分组;同一受试者内若必须切分,按连续时间块切,并留出足够间隔。- SOTA 方法:按事件划分(episode-disjoint)——把 237 个 FoG 事件整体分配到各集,杜绝同一事件跨集;同时报告用户特定与用户独立两套结果。
参考:Bächlin et al., IEEE TITB 2010(区分用户特定/用户独立性能);Wearable computing of Freezing of Gait in Parkinson’s disease: A survey(对不平衡与泛化的系统讨论,https://par.nsf.gov/servlets/purl/10200544)
⚠️ 坑点 2:UCI 页面 “# Instances 237” 被误读为样本数(分类:标签理解)
问题:UCI 元数据把 237 列为实例数,它实际是 237 次 FoG 事件(episode)数;真实数据是 17 个文件、约 8 小时 20 分钟、64 Hz 的连续采样点(约 192 万行)。按"237 个样本"理解数据会完全错置建模粒度。
症状:按事件数设计输入维度或 batch;统计类分布时得出荒谬比例;与论文结果对照时发现完全对不上。
解决:
- 简单方法:以文件与行为准(
S*.txt,每行一个采样点),事件数仅用于事件级评估。- 进阶方法:用标注 2 的连续区段自行重建事件列表,核对总数应为 237、单次时长 0.5-40.5 s。
- SOTA 方法:同时维护采样点级与事件级两套索引,评估时明确声明粒度。
参考:UCI 官方页 https://archive.ics.uci.edu/dataset/245/daphnet+freezing+of+gait;Bächlin et al., IEEE TITB 2010
⚠️ 坑点 3:窗口级标签仲裁——1/2 边界逐样本切换被忽略(分类:预处理陷阱)
问题:标注是采样点级的,冻结起止边界处 1 与 2 逐样本交替;一个滑窗内常同时含有无冻结与冻结采样。默认取"窗口中心标签"或"最后一个标签"会让边界窗口标签近乎随机。
症状:训练曲线震荡、同一窗口在不同 epoch 得到不同标签认知;事件级评估出现大量"半个事件"的虚警/漏检;复现他人结果时差异集中于边界。
解决:
- 简单方法:窗口内冻结采样占比 ≥ 50% 记为 FoG,纯 1 记为非 FoG,其余窗口丢弃。
- 进阶方法:三分类(冻结 / 非冻结 / 过渡),只评估前两类,过渡窗仅参与训练不参与指标。
- SOTA 方法:软标签(窗口内冻结占比作为回归目标)或多实例学习,让边界信息不被丢弃。
参考:UCI 官方变量表(annotation 语义);Palmerini et al., ICPRAM 2014(对非实验段的剔除与窗口化处理)
⚠️ 坑点 4:帧级、窗口级、事件级指标混着比(分类:评估误用)
问题:原始基线用 0.5 秒帧级敏感度/特异度(73.1%/81.6%),后续论文分别使用窗口级 F1、事件级检出率与不同容差的事件级指标,三者不可直接比较;排行榜上的数字若不注明评估单元与协议,几乎没有可比性。
症状:复现结果"比原文好 20 个点"却说不清原因;审稿人指出评估协议不一致。
解决:
- 简单方法:报告时逐项写明:窗口长度、步长、划分方式(LOSO/10 折)、评估单元(帧/窗/事件)、事件判定容差。
- 进阶方法:同时报告帧级 Se/Sp 与事件级检出率/假阳性率(次/分钟),并给出各受试者的分折结果。
- SOTA 方法:采用社区统一化尝试(如统一冻结指数 FI 的方法学论文)所建议的标准化报告模板。
参考:Bächlin et al., Methods Inf Med 2010(0.5 s 帧评估定义);Toward a unified gait freeze index, 2025, https://pmc.ncbi.nlm.nih.gov/articles/PMC12094937/
⚠️ 坑点 5:S04/S10 无冻结事件,LOSO 折里正样本为零(分类:偏倚陷阱)
问题:10 例患者中仅 8 例出现 FoG;以 S04 或 S10 为测试折时,测试集没有任何正样本,召回率无法定义;同时患者 1(病情严重)与患者 8(足下垂)的极短冻结在原始研究中已被指出难以与行走区分。
症状:LOSO 循环在 S04/S10 折除以零或召回率异常;分折结果方差极大;对短冻结的漏检集中在个别受试者。
解决:
- 简单方法:S04/S10 折仅用于特异度/假阳性统计,并在论文中说明。
- 进阶方法:报告逐受试者结果表,把 8 例 FoG 受试者的均值与 10 例全集结果并列。
- SOTA 方法:按受试者分层(有无 FoG、病程长短)做子组分析,量化标注难度异质性。
参考:Rai & Meshram, De Gruyter 专著章节(患者 4/10 无 FoG、患者 5/66 次、患者 6/10 次);terminalai 步态分析笔记(患者 1/8 已知局限,https://gist.github.com/terminalai/GaitMonitoringForParkinsonsDiseasePatients)
⚠️ 坑点 6:单位是 mg 不是 m/s²,列序与命名在不同文档间有措辞差(分类:工程陷阱)
问题:所有加速度列的单位是毫克(1 mg = 0.00980665 m/s²);UCI 变量表把第三传感器称为 “Trunk”,原始论文称 “lower back/waist”,社区教程还有 “hip” 的写法——三者指同一位置,但列含义顺序(水平前向/垂直/水平侧向)必须以 UCI 官方变量表为准。时间戳名义 64 Hz,实际毫秒间隔约 15.6 ms 且非严格均匀。
症状:特征量级偏差约两个数量级(忘换算);第三传感器被当作"胸部"或另一独立位置;重采样后与标注对不齐。
解决:
- 简单方法:统一在读取层完成 mg → m/s² 换算并固化列名(见 §6.3 代码)。
- 进阶方法:用时间戳列做线性插值到统一 64 Hz 网格,而不是假设严格等间隔。
- SOTA 方法:在数据卡(data card)中固化通道字典与单位元数据,随模型仓库一起版本化。
参考:UCI 官方变量表;Bächlin et al., IEEE TITB 2010(传感器与佩戴位置)
⚠️ 坑点 7:标准化/特征选择在全数据上 fit(分类:数据泄漏)
问题:z-score、PCA、特征选择、聚类标签若在全数据(含测试折)上拟合,测试信息已经渗入训练过程;在 LOSO 小样本场景,这一泄漏足以让不同方法的排名失真。
症状:交叉验证标准差异常小;加"无用特征"也能涨点;换台机器复现排名不稳定。
解决:
- 简单方法:每折内部用训练受试者统计均值/方差,测试折仅 transform(见 §6.4 代码)。
- 进阶方法:把预处理封装进 sklearn
Pipeline,让GroupKFold自动隔离拟合范围。- SOTA 方法:端到端学习时用训练折 batch 统计(BatchNorm 自带),冻结输入层参数并在数据卡中记录全部拟合范围。
参考:scikit-learn Pipeline 文档;Wearable computing of Freezing of Gait survey(对方法学一致性的讨论)
⚠️ 坑点 8:cueing session 与非 cueing 混合 + 类不平衡粗暴过采样(分类:偏倚陷阱)
问题:每名患者的两类 session 中,一个带实时节奏性听觉提示(提示本身会改变步态与冻结表现),另一个不带;文件级元数据不区分 session 类型。同时冻结类是少数类,随机复制过采样会放大数据集记忆,显著高估用户独立性能。
症状:模型学到的"冻结"部分是"有提示时的步态模式";过采样后验证指标虚高、真实外推差;不同 session 的误差分布明显分层。
解决:
- 简单方法:按受试者分组评估,检查带提示/不带提示时间段(按 R 序号与论文协议对应)的误差差异,避免跨 session 复制窗口。
- 进阶方法:类不平衡用损失加权(
BCEWithLogitsLoss(pos_weight=…))或 focal loss;过采样只在训练折内且以窗口抖动/噪声注入生成新样本而非复制。- SOTA 方法:受试者内留出完整 session 做域适应评估,或使用对比学习自监督预训练(BSPC 2024 在本数据集 F1 86.19%)提升表征泛化。
参考:Elbatanouny et al., Sensors 2024(两类 session 协议);Prediction of freezing of gait based on self-supervised pretraining via contrastive learning, BSPC 2024;Wearable computing FoG survey(不平衡数据专题)
§6.6 数据增强
| 方法 | 安全性 | 说明 |
|---|---|---|
| 高斯抖动(σ ≤ 0.01 g) | ✅ 安全 | 模拟传感器噪声,保持频带结构 |
| 随机时间平移/滑窗起点抖动 | ✅ 安全 | 等效增加窗口多样性,不改变标注语义 |
| 幅度缩放(0.9-1.1×) | ✅ 安全 | 模拟佩戴松紧与个体差异 |
| 重采样到其他采样率 | ⚠️ 谨慎 | 跨数据集迁移时可用,需同步调整滤波截止频率 |
| 频谱遮蔽(SpecAugment 式) | ⚠️ 谨慎 | 可能抹掉 3-8 Hz 冻结频带特征,遮蔽区应避开该频带 |
| 随机过采样复制少数类窗口 | ❌ 危险 | 直接记忆窗口,虚高性能(见坑点 8) |
| 时间反转 / 通道打乱 | ❌ 危险 | 破步行走方向性与身体位置语义 |
§6.7 模型推荐表
| 模型家族 | 输入 | 适用 | 参考性能(本数据集) |
|---|---|---|---|
| 频域特征 + 阈值/SVM | freeze index(3-8 Hz / 0.5-3 Hz 能量比)、窗 2-4 s | 实时性最强、可解释 | 原始基线 Se 73.1% / Sp 81.6%(帧级) |
| 1D CNN | 4 s × 9 通道原始信号 | 默认深度学习起点 | AlexNet 型 1D CNN:Se 81.78% / Sp 83.77%(10 折,转引) |
| Inception 类(iSPLInception) | 多尺度卷积 | 单传感器多尺度特征 | 测试集 F1 94%(转引 Electronics 2023) |
| ConvLSTM + 注意力 | 时序窗口序列 | 建模冻结前后动态 | LOSO AUC 0.945(转引 Electronics 2023) |
| 自监督对比学习 + 微调 | 大量无监督窗口 + 少量标注 | 小标注量、跨数据集迁移 | Se 84.61% / Sp 94.74% / F1 86.19%(subject-dependent,BSPC 2024) |
| XGBoost/RF + 手工特征 | 时频域统计特征 | CPU 实时部署、可解释 | LOSO F1 82.14%(早期预测任务,XGBoost) |
§6.8 硬件需求
| 场景 | 配置 | 说明 |
|---|---|---|
| 经典机器学习全流程 | 任意笔记本 CPU(8 GB 内存) | 全数据 < 1 GB,分钟级完成 LOSO |
| 1D CNN / Inception 单折训练 | 笔记本 CPU 即可,GPU 数分钟 | 17 段录音共约 192 万行,窗口后数万至十余万样本 |
| 全 LOSO 10 折 + 超参搜索 | 单张入门 GPU(4-8 GB) | 建议后台批量跑折并缓存窗口文件 |
| 在线部署仿真(延迟测量) | CPU + 脉搏级算力模拟即可 | 原始系统检测延迟约 350-500 ms,可作延迟上限参照 |
§6.9 评估指标代码
帧级/窗口级与事件级指标同报的参考实现:
import numpy as np
from sklearn.metrics import f1_score, recall_score, precision_score, confusion_matrix
def frame_metrics(y_true, y_pred):
"""窗口级/帧级:Se、Sp、F1。务必在论文中写明窗口与步长。"""
tn, fp, fn, tp = confusion_matrix(y_true, y_pred, labels=[0, 1]).ravel()
se, sp = tp / (tp + fn + 1e-12), tn / (tn + fp + 1e-12)
return {"Se": se, "Sp": sp, "F1": f1_score(y_true, y_pred)}
def event_detection(pred_labels, fs=64, min_gap=int(0.5 * fs)):
"""把逐帧预测合成事件(连续 1 段,短间隙 < min_gap 合并)。"""
events, start = [], None
for i, v in enumerate(pred_labels):
if v == 1 and start is None:
start = i
elif v == 0 and start is not None:
events.append((start, i)); start = None
if start is not None:
events.append((start, len(pred_labels)))
merged = []
for s, e in events:
if merged and s - merged[-1][1] < min_gap:
merged[-1] = (merged[-1][0], e)
else:
merged.append((s, e))
return merged
def event_metrics(true_events, pred_events, tol_s: float = 1.0):
"""事件级:预测与真实事件时间重叠(容差 tol_s)即算命中。"""
hits = sum(any(ps < te + tol_s * 64 and pe > ts - tol_s * 64
for ps, pe in pred_events) for ts, te in true_events)
return {"event_recall": hits / max(len(true_events), 1),
"n_false_pos": max(len(pred_events) - hits, 0)}
§6.10 MLOps 笔记
- 数据版本化:以 UCI DOI(10.24432/C56K78)+ 下载日期锁版本;数据本身不再更新,但窗口文件(npz)与统计参数必须随代码一起提交 DVC/git-lfs。
- 配置即代码:窗长、步长、冻结占比阈值、滤波截止(15 Hz)、
freeze_ratio全部进配置文件;实验记录中保存配置哈希。 - 泄漏断言:在训练入口加断言——训练/测试受试者集合交集为空;同一事件不允许跨集。
- 指标对齐:把"评估单元(帧/窗/事件)+ 划分方式"写进模型卡与实验名(如
loso_win4s_step05_eventF1),避免排行榜式误读。 - 监控漂移:上线后监控输入信号方差与冻结类预测率随时间的漂移;本数据集为实验室单日数据,真实部署中佩戴松动与日常活动是最大分布偏移源。
- 受试者级追溯:每条预测留存
sid与录音号,便于按受试者复盘误差(S04/S10 类特殊受试者与患者 1/8 类短冻结难分受试者要单独标注)。 - 复现基线:先复现频域基线(freeze index 阈值)再上深度模型;基线跑不通说明流水线有问题,而不是模型不够强。
- 负结果归档:把过采样/随机划分等"高指标"实验保留为负样本档案,供论文审稿与内部对照,防止组织记忆回退到泄漏协议。
§7 质量评估与局限性
§7.1 已知偏倚
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 人群偏倚 | 单中心 10 例(7 男 3 女,平均 66.5 岁),无对照受试者 | 高 | 外部验证用 IMU(35 例)/CuPiD(18 例)等更大队列 |
| 协议诱发偏倚 | 任务刻意诱发冻结(转身、双重任务、ADL),事件密度远高于日常生活 | 高 | 报告事件率差异;家庭环境数据集(REMPARK/ADL)上复验 |
| 标注粒度偏倚 | 1↔2 边界逐样本切换,存在 1-2 步模糊;标注者数与 κ 未发布 | 中 | 窗口标签仲裁 + 过渡窗剔除/软标签(坑点 3) |
| session 混合偏倚 | 带/不带听觉提示 session 混在同一批文件,无文件级标记 | 中 | 按协议与 R 序号分层评估(坑点 8) |
| 类不平衡 | 冻结类为绝对少数(8/10 例有事件,单事件 0.5-40.5 s) | 中 | 损失加权/增强式过采样,禁随机复制(坑点 8) |
| 设备代际偏倚 | 2008 年自研加速度计 + 蓝牙,与当代 IMU 噪声特性不同 | 中 | 重训练前做噪声特性校准;跨设备评估 |
§7.2 标注质量
标注路径(理疗师现场记录 + 同步视频事后逐样本标注)属于行为标注中的金标准实践,237 次事件有明确的起止时长分布(0.5-40.5 s)。可核实的弱点有二:标注者人数与一致性系数未随数据发布;事件边界存在采样点级模糊(约 15.6 ms/步,实际行为意义有限,但对窗口级标签仲裁有影响,见坑点 3)。总体上,其标注可信度显著高于同领域以阈值自动生成的弱标签。
使用前建议自行完成的标注核查(半小时内可做完):
- 抽查 3 个文件(推荐 S02R01、S03R02、S06R01),目视标注 2 区段与加速度信号高频颤动段是否对应。
- 统计标注 1↔2 切换次数与切换处两侧窗口的标签冲突率,确定自己
freeze_ratio阈值的合理性。 - 核对重建事件总数 ≈ 237、单事件时长落在 0.5-40.5 s 区间内。
- 检查标注 0 段落的位置(通常在文件首尾),确认剔除策略不会误删实验中段。
§7.3 泛化性
| 场景 | 失效风险 | 证据 |
|---|---|---|
| 实验室 → 家庭日常 | 高:任务与事件密度完全不同,日常冻结更稀疏、更短 | 2024 年 meta 分析指出检测研究大多依赖实验室协议,家庭数据(REMPARK/ADL)表现系统性不同 |
| 单佩戴位置移植 | 中:单 shank 可达多位置相当性能,但腰/大腿单信号在转身场景差异明显 | ParCuR(2025)仅用踝部信号复训并匹配其硬件 |
| 跨设备/采样率 | 中:64 Hz mg 单位与当代 IMU(128 Hz、含陀螺仪)需重采样与通道映射 | IMU(圣保罗)数据集协议差异 |
| 跨人群 | 高:无对照、单地域、病程 2-30 年窄分布 | 队列描述(§2.4) |
| 药物状态与提示状态变化 | 中:ON/OFF、cueing/非 cueing 混合,模型可能学到提示相关模式 | 坑点 8 |
§7.4 伦理
研究经当地人体受试者审查委员会批准,按《赫尔辛基宣言》执行;数据以匿名编号(S01-S10)分发,不含影像、音频或身份信息。患者知情同意的具体文件未随数据发布,引用与再分发须遵守 CC BY 4.0 与原始发布 README 的署名要求。
§7.5 公平性
队列性别 7 男 / 3 女、年龄 59-75 岁、病程 2-30 年,规模不足以支撑性别/年龄/病程分组的公平性结论;任何声称"跨人群公平"的模型都不应仅以本数据集为依据。建议在更大队列(IMU、CuPiD、REMPARK)上做分组评估后再下结论。
| 公平性维度 | 本数据集现状 | 潜在风险 | 建议 |
|---|---|---|---|
| 性别 | 7 男 / 3 女,无分层分析发布 | 女性步态模式代表性不足 | 在均衡队列上分性别评估后再部署 |
| 年龄 | 59-75 岁,均值 66.5 岁 | 对早发 PD(<50 岁)与高龄患者的适用性未知 | 外部验证覆盖更宽年龄段 |
| 病程 | 2-30 年,跨度大但无分层 | 病程与冻结表型强相关,混合建模可能掩盖子组差异 | 按病程分层报告误差 |
| 地域/设备可及性 | 单中心(以色列)、自研传感器 | 对低成本消费级 IMU 的迁移未知 | 用消费级设备数据复验 |
§7.6 数据漂移
本数据集为 2008 年单日横断面采集,漂移风险主要来自三处:设备代际(2008 自研传感器 vs 当代 MEMS IMU)、协议密度(诱发式高密度事件 vs 日常稀疏事件)、提示状态(cueing 改变步态)。用本数据集训练的模型上线到真实可穿戴产品时,必须建立输入分布监控(方差、频带能量占比、预测率)并准备再校准流程(§6.10)。
§7.7 DAIMS 数据集 AI 就绪度自评
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ✅ | 每行一个采样点、每列一个通道,天然宽格式 |
| 2 | 唯一标识 | ⚠️ | 受试者+录音号可定位文件,但无全局采样点 ID,需按文件名+行号自行构造 |
| 3 | 特殊字符 | ✅ | 纯数值空格分隔,无特殊字符与编码问题 |
| 4 | 重复行 | ✅ | 时间戳单调,无重复采样行 |
| 5 | 缺失编码 | ✅ | UCI 明确 “Has Missing Values? No” |
| 6 | 标签标识 | ⚠️ | annotation 0/1/2 语义依赖文档;0 类"非实验"最易被误读为"无事件" |
| 7 | 罕见类分组 | ⚠️ | S04/S10 无 FoG 事件未在文件级显式标出,需读论文/文档获知 |
| 8 | 偏倚评估 | ❌ | 官方未提供偏倚或局限性声明(论文 limitations 需自行提取) |
| 9 | 数据字典 | ✅ | UCI 官方变量表完整给出 11 列定义与单位 |
| 10 | 信息性缺失解释 | ⚠️ | 标注 0 即信息性排除段,但文档未使用该术语,易与缺失混淆 |
| 11 | 设备记录 | ⚠️ | 采样率/单位/佩戴位置有记录;传感器型号与量程未随数据发布 |
| 12 | 共线性 | ✅ | 9 通道同源加速度存在预期相关,无冗余编码列;标准预处理可处理 |
| 13 | 编码映射 | ✅ | 0/1/2 三值语义在 UCI 变量表与原始 README 中一致明确 |
| 14 | 时间戳处理 | ⚠️ | 时间戳以毫秒整数给出,名义 64 Hz 但非严格均匀,需按列插值对齐 |
| 15 | 划分建议 | ❌ | 无官方划分文件 |
| 16 | 泄漏讨论 | ❌ | 官方无泄漏讨论(社区文献有,见 §5.3/坑点 1) |
| 17 | 标签分布 | ⚠️ | 事件数与时长分布已发布;逐类采样点占比需自行统计 |
| 18 | 测量偏倚 | ⚠️ | 实验室受控协议 + cueing/非 cueing session 混合,无文件级标记 |
| 19 | 外部验证建议 | ❌ | 官方无外部验证指引 |
| 20 | 版本记录 | ✅ | 单版本(UCI 2013-03-06 捐赠版),溯源链清晰 |
| 21 | 预处理脚本 | ❌ | 无官方预处理脚本(原始发布仅 doc + dataset) |
| 22 | 合规要求 | ✅ | CC BY 4.0 + 引用要求(Bächlin 2010 + DOI)明确 |
| 23 | 多模态对齐 | ✅ | 单模态(加速度),无跨模态对齐问题;标注与信号同源自同步录像 |
| 24 | 去标识化 | ✅ | 匿名编号、无身份信息;人口学仅队列级汇总 |
DAIMS 评分:15.0 / 24(✅ 11 项 + ⚠️ 8 项按 0.5 折算 + ❌ 5 项)
评分解读:这是一个"数据本体干净、工程配套缺失"的典型学术基准——信号无缺失、编码清晰、合规明确(✅ 项基本拉满),但一切让 AI 团队"开箱即跑"的组件(划分、脚本、泄漏纪律、偏倚声明)都要靠使用者自建。⚠️ 项集中于元数据措辞差与边界语义,❌ 项全部属于官方文档缺失而非数据缺陷。
对你意味着什么:如果你要在这套数据上立项,第一天就做四件事——(1) 用 §6.3 脚本固化"剔除标注 0 + mg 换算 + 窗口仲裁"流水线;(2) 把 LOSO(受试者分组)写成硬约束并加断言;(3) 自行统计并公布逐类采样点占比与逐受试者事件表(S04/S10 处理方式要写明);(4) 在实验记录中区分帧级/窗口级/事件级三套指标。做到这四条,本数据集可以支撑高质量方法学论文;跳过第 2 条,你的结果大概率不可信。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| BXHC 多模态(12 例有效) | 北京宣武医院 | 自监督对比学习框架的 pre-FoG/Walk/FoG 三分类(同一框架跨库) | F1 81.07%(Daphnet 上 86.19%) | F1 下降 5.12 个百分点 | 同一框架跨库退化有限但存在;多模态库标注协议与任务不同是主因 |
| 家庭/日常环境协议(REMPARK、ADL 等队列) | 多机构 | 可穿戴 FoG 检测 | 无统一可比数字(协议差异大) | — | 2024 年 meta 分析(79 篇文献)指出实验室协议主导该领域,家庭环境泛化仍是开放问题 |
| 佩戴位置消融(踝 vs 大腿 vs 腰) | 本数据集内(3 位置同录) | 在线 FoG 检测 | 原始论文按位置/信号类型给出检测性能拆解 | 视位置而异 | 原始论文证明单 shank 信号可支撑检测;后续系统(ParCuR)复验证实踝部单点的工程可用性 |
§8 基准性能与生态
§8.1 排行榜
⚠️ 本表条目使用不同评估协议(帧级/窗口级、LOSO/10 折、subject-dependent),数字不可直接横向比较;标注 ※ 的性能数字转引自 Electronics 12(9):2088 论文的相关工作章节。
| 排名 | 模型 | 性能 | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|
| 基线 | 频域冻结检测(可穿戴助手) | Se 73.1% / Sp 81.6%(0.5 s 帧,在线) | 2010 | 冻结频带能量分析 + 阈值 + 听觉提示闭环 | Bächlin et al., 2010, IEEE Trans. Inf. Technol. Biomed. 14(2):436-446. DOI 10.1109/TITB.2009.2036165 | 未公开 |
| 1 | iSPLInception ※ | 测试集 F1 94%(10 折) | 2023 | Inception 多尺度 1D 卷积 | 转引自 InSEption 论文:Electronics, 2023, 12(9):2088. DOI 10.3390/electronics12092088 | 未公开 |
| 2 | 自监督对比学习 + 微调 | Se 84.61% / Sp 94.74% / F1 86.19%(subject-dependent,三分类) | 2024 | 对比学习预训练 + 强弱增强 | Prediction of freezing of gait based on self-supervised pretraining via contrastive learning, 2024, Biomedical Signal Processing and Control(ScienceDirect) | 未公开 |
| 3 | ConvLSTM + SE + 注意力 ※ | LOSO AUC 0.945 | 2023 | 1D 卷积 + squeeze-excitation + 注意力 LSTM | 转引自 InSEption 论文:Electronics, 2023, 12(9):2088. DOI 10.3390/electronics12092088 | 未公开 |
| 4 | AlexNet 型 1D CNN ※ | Se 81.78% / Sp 83.77%(10 折,均衡后) | 2022 | 深度 1D 卷积 + 池化堆叠 | Tautan et al.;转引自 Electronics, 2023, 12(9):2088. DOI 10.3390/electronics12092088 | 未公开 |
| 5 | XGBoost + 手工时频特征 | LOSO:Recall 90.03% / Precision 76.76% / F1 82.14%(早期预测) | 2025 | 冻结指数等域特征 + SHAP 解释 | Khanna, S., Early Prediction of Freezing of Gait in Parkinson’s Disease Using Wearable Sensors and Machine Learning(Prophy 收录) | 未公开 |
| 参考 | SAX 符号化 + 分类器 | pre-FoG:Se > 50% / Sp > 70% | 2014 | SAX 符号聚合近似识别冻结前模式 | Palmerini, Rocchi, Hausdorff, Chiari, 2014, ICPRAM 2014(Short Paper, PDF) | 未公开 |
§8.2 SOTA 总结与选型建议
数字层面的三个事实:其一,深度学习相对 2010 年频域基线把帧级/窗口级敏感度从 73.1% 推到 85% 上下(subject-dependent 协议下 F1 86.19%),但用户独立(LOSO)场景的公开数字仍明显低于 subject-dependent 数字,方差也更大;其二,几乎所有发表数字都不是事件级统一协议,选型时必须自己定协议重跑;其三,本数据集只有 10 例,"SOTA 排名"的意义弱于协议透明度——审稿场景下,一个协议写清楚的经典模型比一个协议含糊的新架构更有说服力。工程选型建议:资源受限与可解释优先 → 频域特征 + 轻量分类器;追求指标上限 → Inception/ConvLSTM 类;标注稀缺或要跨数据集 → 对比学习预训练。
§8.3 评测协议
社区逐步收敛的"体面协议"五要素:LOSO 划分(10 例轮流测试,S04/S10 折特殊处理并说明);窗口定义(4 s / 256 样本为默认,步长需报告);评估单元(帧级 Se/Sp 对照 Bächlin 基线 + 事件级召回/假阳性,容差写明);类不平衡处理(损失加权或折内增强,禁全数据过采样);统计报告(跨折均值 ± 标准差 + 逐受试者表)。转引数字(※ 条目)在正式对比中建议复现而非直接引用。
§8.4 相关数据集表
| 数据集 | 规模 | 模态 | 获取 | 与 Daphnet FoG 关系 |
|---|---|---|---|---|
| IMU(圣保罗大学) | 35 例 PD | 单 shank IMU(加速度+陀螺仪),128 Hz | 公开(UCI) | 更大队列的转身 FoG 检测,可做跨库迁移 |
| CuPiD | 18 例 PD | 踝+大腿 IMU(部分含 ECG/GSR) | EU FP7 项目发布 | Daphnet 发布工作的直接延续(同受 FP7 资助体系支持) |
| BXHC 多模态 | 12 例有效 | 加速度 + EEG + EMG + 皮电 | 学术共享 | 多模态 FoG 机制研究,同框架对比基准 |
| REMPARK | 21 例 PD | 单腰 IMU | 学术共享 | 家庭/日常环境监测对照 |
| PhysioNet Gait in PD | 93 例 PD + 73 对照 | 足底 VGRF 100 Hz | PhysioNet 公开 | 不同模态(测力台),用于 PD 识别而非 FoG |
| PhysioNet GaitDB 系列 | 多队列 | 步态力学信号 | PhysioNet 公开 | 步态分析生态补充 |
§8.5 关键论文 Top 8
- Bächlin, M., Plotnik, M., Roggen, D., Maidan, I., Hausdorff, J. M., Giladi, N., & Tröster, G. (2010). Wearable Assistant for Parkinson’s Disease Patients With the Freezing of Gait Symptom. IEEE Transactions on Information Technology in Biomedicine, 14(2), 436-446. DOI 10.1109/TITB.2009.2036165 —— 数据集原始论文:协议、传感器、基线与用户特定/独立性能的权威出处。
- Bächlin, M., Plotnik, M., Roggen, D., Giladi, N., Hausdorff, J. M., & Tröster, G. (2010). A Wearable System to Assist Walking of Parkinson’s Disease Patients: Benefits and Challenges of Context-triggered Acoustic Cueing. Methods of Information in Medicine, 49(1), 88-95. DOI 10.3414/ME09-02-0003 —— 姊妹篇:0.5 秒帧评估协议与提示系统患者视角。
- Bächlin, M., Hausdorff, J. M., Roggen, D., Giladi, N., Plotnik, M., & Tröster, G. (2009). Online detection of freezing of gait in Parkinson’s disease patients: a performance characterization. BODYNETS 2009. —— 会议先行版:在线检测性能表征。
- Roggen, D., Plotnik, M., & Hausdorff, J. (2010). Daphnet Freezing of Gait [Dataset]. UCI Machine Learning Repository. DOI 10.24432/C56K78 —— 官方数据集引用格式。
- Palmerini, L., Rocchi, L., Hausdorff, J. M., & Chiari, L. (2014). Automatic Identification of Motor Patterns Leading to Freezing of Gait in Parkinson’s Disease. ICPRAM 2014 —— pre-FoG 前兆模式研究的代表作。
- Elbatanouny, H., Kleanthous, N., Dahrouj, H., Alusi, S., Almajali, E. R. F., Mahmoud, S. A., & Hussain, A. (2024). Insights into Parkinson’s Disease-Related Freezing of Gait Detection and Prediction Approaches: A Meta Analysis. Sensors, 24(12), 3959. DOI 10.3390/s24123959 —— 79 篇文献的检测/预测方法全景与数据集对照表。
- Prediction of freezing of gait based on self-supervised pretraining via contrastive learning (2024). Biomedical Signal Processing and Control. ScienceDirect —— Daphnet 与 BXHC 双库对照的当代自监督方案。
- Bächlin, M., Roggen, D., et al. (2009). Potentials of Enhanced Context Awareness in Wearable Assistants for Parkinson’s Disease Patients with the Freezing of Gait Syndrome. ISWC 2009, 123-130. —— 同平台上下文感知路线的先行工作(数据集技术谱系)。
- ParCuR—A Novel AI-Enabled Gait Cueing Wearable for Patients with Parkinson’s Disease (2025). PubMed Central(PMC12656022)—— 用 Daphnet 踝部单信号训练在线检测并落地为提示可穿戴的近期工程案例。
- Toward a unified gait freeze index (2025). Frontiers(PMC12094937)—— 以 Bächlin/Cockx 方法为对象的标准化冻结指数与评测协议提议。
§8.6 社区活跃度
原始论文引用 621+(Semantic Scholar,截至 2026-09;Scopus 口径 619),是可穿戴 FoG 方向被引最高的数据集论文之一。社区形态:UCI 页面累计上万次访问与下载;GitHub 上存在大量加载器、预处理 notebook 与基线复现仓库(如 FOG-data_analysis、Human-Biomechanic-Analysis 等);2024-2025 年仍有用其做迁移学习、对比学习与统一冻结指数方法学的论文产出。作为 2008 年采集的数据集,其活跃度属"经典基准常态化引用"型。
活跃度的三个观察口径:
- 方法学论文:2024 年 meta 分析纳入的 79 篇检测/预测文献中,Daphnet 是最常出现的公开基准之一(与 IMU、CuPiD 并列)。
- 工程落地:近年可穿戴提示系统(如 ParCuR,2025)仍以在 Daphnet 上预训练/校准在线检测器作为进入真实患者测试前的标准步骤。
- 教学传播:UCI 收录 + 20.5 MB 免下载门槛使其成为生物信号课程与 Kaggle 式练手项目的常见素材,社区 notebook 数量持续增长。
§8.7 生态快照
| 资源 | 类型 | 链接 | 推荐理由 |
|---|---|---|---|
| UCI 官方页 | 数据分发 | https://archive.ics.uci.edu/dataset/245/daphnet+freezing+of+gait | 唯一权威获取渠道(DOI + 变量表) |
| ucimlrepo | Python 包 | https://pypi.org/project/ucimlrepo/ | fetch_ucirepo(id=245) 一行获取 |
| IEEE TITB 2010 原始论文 | 论文 | DOI 10.1109/TITB.2009.2036165 | 协议与基线的第一出处 |
| FoG 可穿戴综述(2021) | 综述 | https://par.nsf.gov/servlets/purl/10200544 | 检测延迟、类不平衡、挑战清单 |
| Sensors 2024 meta 分析 | 综述 | DOI 10.3390/s24123959 | 79 篇文献的数据集/方法对照表 |
| 统一冻结指数(2025) | 方法学 | https://pmc.ncbi.nlm.nih.gov/articles/PMC12094937/ | 评估协议标准化的最新尝试 |
| Human-Biomechanic-Analysis | 社区代码 | https://github.com/DhilipSanjay/Human-Biomechanic-Analysis | 端到端 CNN 示例(含 Daphnet 加载) |
| FOG-data_analysis 镜像 | 社区代码 | https://github.com/Bikrant5202/FOG-data_analysis | 原始发布结构镜像 + 分析脚本 |
§9 相关资源与引用
§9.1 官方资源
- UCI Machine Learning Repository - Daphnet Freezing of Gait(官方主页 + 下载 + 变量表):https://archive.ics.uci.edu/dataset/245/daphnet+freezing+of+gait
- DOI 引用页:https://doi.org/10.24432/C56K78
- ucimlrepo 获取:
pip install ucimlrepo→fetch_ucirepo(id=245) - 原始发布说明:原始 dataset_fog_release 的 README(含许可与引用要求,注明可致信 daniel.roggen@ieee.org 告知发表情况)
- IEEE TITB 原始论文:https://doi.org/10.1109/TITB.2009.2036165(PMID 19906597)
- Methods of Information in Medicine 姊妹篇:https://doi.org/10.3414/ME09-02-0003
§9.2 BibTeX 完整引用
@article{baechlin2010wearable,
author = {B{\"a}chlin, Marc and Plotnik, Meir and Roggen, Daniel and Maidan, Inbal and Hausdorff, Jeffrey M. and Giladi, Nir and Tr{\"o}ster, Gerhard},
title = {Wearable Assistant for {P}arkinson's {D}isease Patients With the Freezing of Gait Symptom},
journal = {IEEE Transactions on Information Technology in Biomedicine},
volume = {14},
number = {2},
pages = {436--446},
year = {2010},
doi = {10.1109/TITB.2009.2036165}
}
@article{baechlin2010wearable_system,
author = {B{\"a}chlin, Marc and Plotnik, Meir and Roggen, Daniel and Giladi, Nir and Hausdorff, Jeffrey M. and Tr{\"o}ster, Gerhard},
title = {A Wearable System to Assist Walking of {P}arkinson's {D}isease Patients: Benefits and Challenges of Context-triggered Acoustic Cueing},
journal = {Methods of Information in Medicine},
volume = {49},
number = {1},
pages = {88--95},
year = {2010},
doi = {10.3414/ME09-02-0003}
}
@inproceedings{baechlin2009online,
author = {B{\"a}chlin, Marc and Hausdorff, Jeffrey M. and Roggen, Daniel and Giladi, Nir and Plotnik, Meir and Tr{\"o}ster, Gerhard},
title = {Online Detection of Freezing of Gait in {P}arkinson's Disease Patients: A Performance Characterization},
booktitle = {Third International Conference on Body Area Networks (BODYNETS)},
year = {2009}
}
@misc{roggen2010daphnet,
author = {Roggen, Daniel and Plotnik, Meir and Hausdorff, Jeffrey},
title = {Daphnet Freezing of Gait},
year = {2010},
howpublished = {UCI Machine Learning Repository},
doi = {10.24432/C56K78}
}
@inproceedings{palmerini2014automatic,
author = {Palmerini, Luca and Rocchi, Laura and Hausdorff, Jeffrey M. and Chiari, Lorenzo},
title = {Automatic Identification of Motor Patterns Leading to Freezing of Gait in {P}arkinson's Disease},
booktitle = {Proceedings of the 3rd International Conference on Pattern Recognition Applications and Methods (ICPRAM 2014)},
year = {2014}
}
@article{elbatanouny2024insights,
author = {Elbatanouny, Hagar and Kleanthous, Natasa and Dahrouj, Hayssam and Alusi, Sundus and Almajali, Eqab R. F. and Mahmoud, Soliman A. and Hussain, Abir},
title = {Insights into {P}arkinson's {D}isease-Related Freezing of Gait Detection and Prediction Approaches: A Meta Analysis},
journal = {Sensors},
volume = {24},
number = {12},
pages = {3959},
year = {2024},
doi = {10.3390/s24123959}
}
§9.3 引用指南
发表使用本数据集的成果时,最低引用要求为两条:原始论文(Bächlin et al., 2010, IEEE TITB)+ 数据集 DOI(Roggen et al., 2010, UCI ML Repository, DOI 10.24432/C56K78)。原始发布 README 同时建议(非强制)告知原作者发表情况以便交叉引用。若比较了后续方法,建议同时引用评估协议出处(Bächlin et al., 2010, Methods Inf Med 的 0.5 秒帧协议)与综述(Elbatanouny et al., 2024)以便读者定位协议差异。
§9.4 复现检查清单
从零复现本条目基线的最短路径:
- 下载 UCI 包(20.5 MB),运行 §6.2 核对脚本确认 17 文件 × 11 列。
- 运行 §4.5 快检脚本,确认标注域、时间戳单调、事件总数 ≈ 237。
- 用 §6.3 流水线生成窗口文件(4 s 窗 / 0.5 s 步),保存
sid分组键。 - 先跑频域基线:对踝部垂直通道计算 freeze index(3-8 Hz / 0.5-3 Hz 能量比)+ 阈值,报告帧级 Se/Sp,量级应接近但不必等于 73.1%/81.6%(阈值与窗长不同)。
- 再跑 §6.4 的 1D CNN LOSO,记录逐受试者结果表(S04/S10 折单独注明)。
- 把"划分方式 + 窗口定义 + 评估单元"写入实验记录与论文表格,对照 §8.3 五要素自检。
§10 AI 使用声明卡
§10.1 AI 模型列表
| 模型 | 用途 | 版本/说明 |
|---|---|---|
| 大语言模型(多轮对话式研究助手) | 检索整合、初稿撰写、格式化 | 由千方病案医学编辑部指定的生产模型(2026-09 会话期版本) |
§10.2 AI 参与范围
AI 参与了以下环节:WebSearch 检索结果整理、事实清单(FACTS)结构化、章节初稿撰写、表格与代码格式化。AI 未参与:医学事实的最终裁定、数字来源核验的终审、临床解读的定性结论。所有关键数字(规模、采样率、标注数、基线性能、基准数字)均回溯至 §10.3 列出的来源并由人工复核。
§10.3 输入来源列表
- Bächlin, M., et al. (2010). Wearable Assistant for Parkinson’s Disease Patients With the Freezing of Gait Symptom. IEEE Trans. Inf. Technol. Biomed., 14(2), 436-446. DOI 10.1109/TITB.2009.2036165
- Bächlin, M., et al. (2010). A Wearable System to Assist Walking of Parkinson’s Disease Patients. Methods of Information in Medicine, 49(1), 88-95. DOI 10.3414/ME09-02-0003
- Bächlin, M., et al. (2009). Online detection of freezing of gait in Parkinson’s disease patients: a performance characterization. BODYNETS 2009(DBLP 著录:https://dblp.uni-trier.de/pid/48/3200.html)
- Roggen, D., Plotnik, M., & Hausdorff, J. (2010). Daphnet Freezing of Gait [Dataset]. UCI Machine Learning Repository. DOI 10.24432/C56K78(https://archive.ics.uci.edu/dataset/245/daphnet+freezing+of+gait)
- ETH 原始发布 README(dataset_fog_release,GitHub 镜像:https://github.com/Bikrant5202/FOG-data_analysis/tree/master/dataset_fog_release)
- ParCuR—A Novel AI-Enabled Gait Cueing Wearable for Patients with Parkinson’s Disease (2025). PubMed Central, PMC12656022
- Elbatanouny, H., et al. (2024). Insights into Parkinson’s Disease-Related Freezing of Gait Detection and Prediction Approaches: A Meta Analysis. Sensors, 24(12), 3959. DOI 10.3390/s24123959
- Prediction of freezing of gait based on self-supervised pretraining via contrastive learning (2024). Biomedical Signal Processing and Control. https://www.sciencedirect.com/science/article/pii/s1746809423011989
- InSEption: A Robust Mechanism for Predicting FoG Episodes in PD Patients (2023). Electronics, 12(9), 2088. DOI 10.3390/electronics12092088
- Palmerini, L., Rocchi, L., Hausdorff, J. M., & Chiari, L. (2014). Automatic Identification of Motor Patterns Leading to Freezing of Gait in Parkinson’s Disease. ICPRAM 2014
- Rai, B., & Meshram, A. Application of neural network to detect freezing of gait in patients with Parkinson’s disease(De Gruyter 章节,DOI 10.1515/9783110628616-001)
- Wearable computing of Freezing of Gait in Parkinson’s disease: A survey. NSF Public Access Repository. https://par.nsf.gov/servlets/purl/10200544
- Toward a unified gait freeze index (2025). Frontiers(PMC12094937)
- Tel Aviv University CRIS 出版记录页(引用指标与出版信息):https://cris.tau.ac.il/en/publications/wearable-assistant-for-parkinsons-disease-patients-with-the-freez
- Semantic Scholar 引用记录页:https://www.semanticscholar.org/paper/1c55427d34e3bf2137152cebd0ffbdf83ff32403
- ICD-11 编码参考(Parkinsonism 8A00 层级):https://www.worldoftaxonomy.ai/system/icd_11/node/8A00
- terminalai, Gait Monitoring for Parkinson’s Disease Patients(社区分析笔记,含已知患者局限):https://gist.github.com/terminalai/GaitMonitoringForParkinsonsDiseasePatients
§10.4 人工校验记录
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §2 医学背景(ICD-11/SNOMED、疾病定义、流行病学) | 千方病案医学编辑部 | 逐条对照 WHO ICD-11 与原始论文摘要复核 | ✅ 已通过/已验证 |
| §1/§3/§4 规模与结构数字(10 例、17 文件、237 事件、64 Hz、20.5 MB) | 千方病案医学编辑部 | 对照 UCI 官方页与 IEEE TITB 摘要逐项核对 | ✅ 已通过/已验证 |
| §4 DAIMS 字段字典与目录树 | 千方病案医学编辑部(数据工程) | 对照 UCI 变量表与官方文件清单 | ✅ 已通过/已验证 |
| §5/§6 划分策略、代码与坑点 | 千方病案医学编辑部(数据工程) | 代码静态走查 + 泄漏断言设计复核 | ✅ 已通过/已验证 |
| §7 DAIMS 24 项与偏倚分析 | 千方病案医学编辑部 | 逐项对照数据可得性与论文 limitations | ✅ 已通过/已验证 |
| §8 基准数字与引用 | 千方病案医学编辑部 | 每个数字回溯原始来源(含转引标注 ※) | ✅ 已通过/已验证 |
| §8.5 关键论文著录(Top 10) | 千方病案医学编辑部 | 对照 DBLP/期刊页逐条核对作者与出处 | ✅ 已通过/已验证 |
| §0/§9/§10 合规与免责 | 千方病案医学编辑部 | 许可证与引用要求对照原始 README | ✅ 已通过/已验证 |
§10.5 AI 生成章节标注
本文全部章节由 AI 起草,经 §10.4 所列人工校验流程复核后发布;数字类内容 100% 带有可回溯来源,代码示例经过人工静态审查(未在原文环境逐一执行,使用前请自行验证)。
§10.6 最后人工审核日期
最后人工审核日期:2026-09-05(与 §0 审核日期一致)
页面状态:published(全部内容已完成审核并发布)
