信息速览
INFOBOX — ShanghaiT1DM & ShanghaiT2DM 一屏速览
维度 内容 本质 中国上海真实生活条件下采集的 T1DM/T2DM 动态血糖(CGM)+ 称重饮食记录 + 临床特征公开数据集 团队 同济大学(软件学院/电子与信息工程学院)+ 上海市东方医院 + 上海市第四人民医院;DiaDRIL 注册研究框架 论文 Scientific Data 10, 35 (2023),doi:10.1038/s41597-023-01940-7;PMCID PMC9849330 规模 T1DM 12 例 / 16 文件 / 15,695 测量点;T2DM 100 例 / 109 文件 / 112,475 测量点;合计 128,170 点 设备 FreeStyle Libre H(Abbott)flash 血糖监测,15 分钟自动存储,单次佩戴 3-14 天 饮食 每日称重饮食记录(weighed food record):进食确切时间 + 食物重量,患者自报 采集 东方医院 2019-09~2021-03;第四人民医院 2021-06~2021-11 人群 T1DM 年龄 57.8±11.1(10/12 为 LADA);T2DM 年龄 60.2±13.7;女性 58.3% / 44.0% 许可 CC BY 4.0(figshare 公开直链,免费下载) 典型任务 血糖预测、低血糖预警、餐后血糖建模、强化学习血糖控制、数字表型 库内互链 ohiodm-t1dm-2020、cgmacros 等同域 CGM 条目(见 §10)
ShanghaiT1DM 与 ShanghaiT2DM 是一对「姊妹」糖尿病数据集:它们把连续血糖监测(CGM, continuous glucose monitoring)从「病房里的受控实验」搬回了「患者真实的日常生活」,并且在 CGM 曲线之外附上了同类公开数据集中少见的一件东西——带确切进食时间的每日称重饮食记录。对血糖预测与餐后建模研究来说,这两样东西凑在一起,才构成「输入-输出都有据可查」的完整监督信号:CGM 曲线回答「血糖怎么走的」,称重记录回答「这顿饭是什么时候吃的、吃了多少」。
导语读法三则:
- 只想下数据:直奔 §6 获取与许可——figshare 免费直链,CC BY 4.0,无注册无申请,这是它相对多数欧美 CGM 集的最大工程优势。
- 关心模型基准:直奔 §5 评估与基准——第三方统一分辨率基准已存在,T1DM/T2DM 两子集均被纳入横向对标。
- 关心数据质量:直奔 §3 采集流程与 §9 坑点清单——特别是「记录文件数 > 患者数」的合并陷阱与饮食自报偏差。
§0 导读:这个数据集解决什么问题
糖尿病管理数字化的核心瓶颈之一,是血糖动态的「可预测性研究」长期缺少高质量真实世界数据。早期的血糖建模研究大多依赖模拟器(如 UVA/Padova T1DM simulator)生成数据:曲线干净、饮食与胰岛素输入完全已知,但模拟噪声与真实生理-行为耦合相差甚远;而真实 CGM 数据集(如 OhioT1DM)虽然真实,却往往缺少精确的进食时刻与食物量信息,导致「餐后血糖为什么升、升多少」这个关键问题在数据层面就是模糊的。
ShanghaiT1DM/ShanghaiT2DM 的回答是三件套采集。第一件是 CGM:FreeStyle Libre H 每 15 分钟自动存储一次组织间液血糖,单次佩戴最长 14 天,覆盖日常起居、工作、运动与真实进餐。第二件是饮食:研究者要求患者以称重记录法(weighed food record,营养流行病学中的金标准自报方法)逐日记下每次进食的确切时间与食物重量——这使得「进食事件 → 血糖响应」的映射在数据层面首次成为显式监督信号。第三件是临床底座:糖代谢、血脂谱、肾功能实验室检查加人口学、BMI、病程、并发症与用药信息,全部取自 CGM 采集前后 6 个月内的病历,让血糖曲线可以放到个体代谢背景下解读。
这个组合的直接受益者是三类研究:一是血糖预测与低血糖预警——CGM 时间序列本身即可训练;二是餐后血糖建模——有了确切进食时间与食物量,可以把「餐」作为事件特征注入模型;三是强化学习血糖控制——餐食信息是 RL 血糖控制研究长期缺位的输入,前置工作(Zhu et al. 2021)正是用这套数据的早期版本做 RL 血糖控制实验。
§0 读法三则:
- 这个条目覆盖两个子集:ShanghaiT1DM(12 例,含 10 例 LADA)与 ShanghaiT2DM(100 例),同论文、同 figshare 合集打包发布,但人群特征与建模用法差异显著,引用与实验设计时要分开对待。
- 全文硬数字均出自 Scientific Data 论文正文与表格及 figshare 官方页面;论文 DOI 存在一处口径冲突(01940-7 vs 01910-y),已按双源比对采信并在 §9 存照。
- 检索时注意官方名是「Diabetes Datasets—ShanghaiT1DM and ShanghaiT2DM」,单独搜「ShanghaiT1DM dataset」或「上海 T1DM」都可能漏掉另一半子集。
§1 数据集速览:十问十答
Q1:这两个子集是什么关系?
同一论文、同一注册研究(DiaDRIL)、同一采集设备与流程下发布的两个独立子集:ShanghaiT1DM 收录 1 型糖尿病患者 12 例,ShanghaiT2DM 收录 2 型糖尿病患者 100 例。figshare 上打包为一个 zip(内含两子集目录),也可经合集页分别获取。
Q2:CGM 数据长什么样?
每个患者一个 CGM 读数文件:时间戳 + 血糖值(mmol/L),采样间隔 15 分钟,由 FreeStyle Libre H 自动存储(无需患者扫码,降低漏采)。T1DM 子集共 15,695 个测量点、佩戴 4-14 天;T2DM 子集共 112,475 个测量点、佩戴 3-14 天。
Q3:饮食记录里有什么?
每个患者一个每日饮食记录文件:每次进食的确切时间 + 称重食物记录(吃了什么、称得多少克)。这是营养学里的金标准自报方法,比 24 小时回顾法精确,但仍属自报范畴——漏记与低估是已知风险(§9 坑 5)。
Q4:患者是什么人?
T1DM 子集 12 例成人:年龄 57.83±11.12 岁,女性 7 例(58.3%),病程中位 8.50 年,BMI 中位 20.95。值得注意的是 10/12 为 LADA(成人隐匿性自身免疫糖尿病)——不是经典的儿童起病 T1DM,这直接影响外推结论(坑 2)。T2DM 子集 100 例:年龄 60.17±13.71 岁,女性 44 例(44.0%),病程中位 7.00 年,BMI 中位 23.69。
Q5:临床特征给到什么粒度?
病历级(非逐日):实验室检查含糖代谢、血脂谱、肾功能三大类;临床特征含人口学、身高、体重、BMI、糖尿病病程、并发症与合并症;用药含口服降糖药与胰岛素。取自 CGM 采集前后 6 个月内,即「背景底座」而非逐时协变量。
Q6:在哪采的、什么时段?
上海市东方医院(2019 年 9 月至 2021 年 3 月)与上海市第四人民医院(2021 年 6 月至 2021 年 11 月)。两阶段采集横跨疫情期间,这一点对解释潜在的行为模式变化有意义(坑 6)。
Q7:为什么 T1DM 只有 12 例?
T1DM(尤其经典儿童起病型)在成人门诊的存量患者少,且研究框架(DiaDRIL)以个体化生活方式干预为主线,入组条件严格。12 例的定位是「稀缺人群的先导队列」而非大规模训练集——深度模型应以 T2DM 为主训练、T1DM 做迁移/评测,或两子集合并但按患者划分。
Q8:数据能做什么任务?
四大类:血糖预测(多步前瞻预测)、低血糖/高血糖事件预警、餐后血糖建模(利用进食时间与重量)、强化学习血糖控制(利用餐食信息作为环境输入)。另有数字表型类探索(用 CGM 统计特征刻画个体代谢状态)。
Q9:获取要什么条件?
无注册、无申请、无协议签署:figshare 页面直接下载,CC BY 4.0。相比 OhioT1DM 的注册制与 UCHTT1DM 的 CC BY-NC-ND 限制,这是对二次分发、基准构建与商用研究最友好的口径。
Q10:为什么它对 AI-Ready 重要?
它是「免费直链 + 宽松许可 + 文件结构自明(CSV/Excel,每患者两文件)」的组合:AI-Ready 三要素(可获取、可理解、可再用)全部达标。短板在样本量与胰岛素剂量数据缺失——AI-Ready 不等于「什么任务都能做」,这一点 §6 的 DAIMS 评分有逐项拆解。
§2 数据构成与规格
2.1 两子集规模总表
| 指标 | ShanghaiT1DM | ShanghaiT2DM |
|---|---|---|
| 患者数 | 12 | 100 |
| 记录文件数 | 16 | 109 |
| CGM 总测量数 | 15,695 | 112,475 |
| CGM 佩戴时长 | 4–14 天 | 3–14 天 |
| 采样间隔 | 15 分钟 | 15 分钟 |
| 女性 | 7(58.3%) | 44(44.0%) |
| 年龄(岁,mean±SD) | 57.83±11.12 | 60.17±13.71 |
| BMI(kg/m²,中位 [IQR]) | 20.95 [17.87–24.21] | 23.69 [22.12–25.54] |
| 糖尿病病程(年,中位 [IQR]) | 8.50 [2.25–16.75] | 7.00 [1.00–14.75] |
| HbA1c(mmol/mol,中位 [IQR]) | 71 [63–122] | 69 [54–97] |
| 记录文件 > 患者数原因 | 4 例患者有多个佩戴期 | 9 例患者有多个佩戴期 |
三个观察:
- 文件数 ≠ 患者数是常态而非异常:T1DM 16 文件对 12 例患者、T2DM 109 文件对 100 例患者,均来自同一患者分两次/多次佩戴。任何 train/test 划分必须按患者聚合划分,否则同一患者的两个佩戴期分属两侧、直接数据泄漏(坑 1,本库已有多篇 CGM 条目踩过)。
- 两个子集都不是「年轻 T1DM 队列」:T1DM 平均 57.8 岁,LADA 占 10/12,其临床行为(起病缓、β 细胞功能渐进衰退、常先口服药后胰岛素)介于经典 T1DM 与 T2DM 之间。把它当作「典型 T1DM」与儿童队列对标会得出偏差结论。
- HbA1c 口径是 mmol/mol(国际单位),不是国内习惯的 %:71 mmol/mol ≈ 8.6%,69 mmol/mol ≈ 8.5%。跨数据集对齐时必须统一换算(坑 4)。
2.2 CGM 信号规格
| 属性 | 规格 |
|---|---|
| 设备 | FreeStyle Libre H(Abbott Diabetes Care, Witney, UK) |
| 技术路线 | flash glucose monitoring(FGM),组织间液葡萄糖 |
| 采样/存储 | 每 15 分钟自动存储一次(无需扫描触发,优于早期 FGM 需扫码模式) |
| 单次佩戴上限 | 14 天(传感器寿命) |
| 实际佩戴 | T1DM 4–14 天;T2DM 3–14 天 |
| 单位 | mmol/L |
| 文件形态 | 每患者一个读数文件:时间戳 + 血糖值 |
15 分钟自动存储是数据质量的关键卖点:早期 FGM 设备需要患者主动扫描才记录,夜间与遗忘时段会成片缺数;Libre H 的自动存储把缺数压缩到传感器脱落/更换窗口。但对建模者仍要预期三类缺失:佩戴首日校准期波动、传感器更换间隙(数小时到一天)、以及个别离群点——OGTT 式的「完整无缺」不能指望,插补策略是预处理必答题。
2.3 饮食记录规格
| 属性 | 规格 |
|---|---|
| 方法 | 称重食物记录(weighed food record),患者自报 |
| 记录粒度 | 每次进食事件:确切时间 + 食物名称/重量 |
| 文件形态 | 每患者一个每日饮食记录文件 |
| 用途 | 餐后血糖建模的显式事件输入;RL 血糖控制的餐食信息 |
称重记录是营养流行病学的金标准自报法,但仍有两个内生偏差:一是低估倾向(文献一致发现自报能量摄入系统性低于双标水法实测 20-30%);二是时间对齐误差(记录的是「开吃时间」,进食持续 10-30 分钟的动态过程被压缩成一个时间点)。餐后建模时建议把进食时刻当作事件区间的起点而非质点,并用 CGM 曲线的升糖拐点做交叉校验。
2.4 临床特征与实验室字段
三类字段,均取自 CGM 采集前后 ≤6 个月的病历:
| 类别 | 字段 |
|---|---|
| 实验室 | 糖代谢(空腹血糖、HbA1c 等)、血脂谱、肾功能 |
| 临床 | 人口学、身高、体重、BMI、糖尿病病程、并发症与合并症 |
| 用药 | 口服降糖药 + 胰岛素(病历级,非逐时剂量) |
时间错位是使用时的必要心算:一个 HbA1c 值反映的是抽血前 8-12 周的平均血糖,而 CGM 记录的是另一段 3-14 天窗口。两者在慢病稳定期高度相关,但在近期调药、急性事件后即失配——把 HbA1c 当「CGM 窗口内标签」用时要意识到它其实是「三个月平均」。
2.5 文件结构示例
数据包解压后按子集分目录,每患者两文件:
diabetes datasets/
├── ShanghaiT1DM/
│ ├── 20200604_112638000.csv # CGM 读数(时间戳, 血糖 mmol/L)
│ └── 20200604_112638000.xlsx # 每日饮食记录(进食时间, 食物, 重量)
│ ...
└── ShanghaiT2DM/
├── 20191124_184145000.csv
└── 20191124_184145000.xlsx
...
(目录/文件名以实际下载包为准;上例为论文与 figshare 描述的结构示意。CGM 文件为 CSV、饮食记录为 Excel 表,均无需特殊解析器,pandas/Excel 直接可读——这是「文件结构自明」的 AI-Ready 加分项。)
§3 采集流程与质量控制
3.1 研究框架:DiaDRIL 注册研究
两子集都出自 DiaDRIL(Diabetes Data Registry and Individualized Lifestyle Intervention,糖尿病数据登记与个体化生活方式干预)注册研究框架,2019 年启动。框架的设计意图是「登记 + 干预」双轨:登记轨积累多模态数据(CGM、饮食、临床),干预轨在此基础上做个体化生活方式指导。公开的两子集是登记轨的产出;干预效果数据未随集发布。
对使用者的含义:入组人群是「门诊随访中的成人糖尿病患者」,不是住院控制人群,也不是新诊断队列——病程中位 7-8.5 年说明这是「带病的日常生活」,血糖曲线里同时含有治疗(用药稳定)与行为(真实饮食)的双重影响,这正是真实世界数据的价值,也是混杂。
3.2 两阶段采集时间线
| 阶段 | 地点 | 时间 | 子集 |
|---|---|---|---|
| 一 | 上海市东方医院(同济大学附属) | 2019-09 ~ 2021-03 | 两子集主体 |
| 二 | 上海市第四人民医院 | 2021-06 ~ 2021-11 | 补充采集 |
两阶段之间隔着上海 2021 年初的局部疫情管控。行为模式(出行、聚餐频率、运动量)在疫情前后存在已知的人群级变化,若研究目标是「典型日常血糖模式」,建议对两阶段子样本做分布对比后再合并使用(坑 6 详述)。
3.3 患者流程
标准流程可归纳为五步:
- 入组与知情同意:门诊招募成人糖尿病患者,签署知情同意(数据发布前已匿名化)。
- 传感器佩戴:上臂贴敷 FreeStyle Libre H 传感器,自动每 15 分钟存储,佩戴 3-14 天。
- 同步饮食记录:佩戴期间患者逐日记称重饮食记录——每次进食记录确切时间与食物重量。
- 病历抽取:从院内系统抽取 CGM 采集前后 6 个月内的实验室(糖代谢/血脂/肾功能)、临床(人口学/BMI/病程/并发症)与用药信息。
- 脱敏与打包:以患者编号匿名化,按「CGM 文件 + 饮食文件」成对打包发布。
3.4 质量控制要点与已知弱点
强项:
- 设备统一(全部 Libre H),不存在跨设备标定问题——这在多中心 CGM 集里并不常见。
- 15 分钟自动存储,夜间覆盖完整,适合做夜间低血糖预警研究。
- 称重饮食记录法是自报金标准,进食时间精度远高于「早/中/晚」粒度的问卷。
弱点与缓解:
- 样本量小(12/100):深度模型直接从零训练易过拟合,建议迁移学习、轻量模型或作为微调/评测集。
- 佩戴窗口短:3-14 天不足以覆盖月经周期、季节、长假等慢变行为;个体内长期模式(如每季度一次的佩戴)缺失。
- 饮食自报偏差:漏记与低估双向存在;无对照组验证记录完整度。
- 无盲态血糖参考:Libre 系为 FGM,与静脉血/Y SI 参考的对齐精度受组织间液滞后(约 5-15 分钟)影响,急速升降段的瞬时误差偏大——做绝对精度结论时要留裕量。
- 胰岛素剂量无逐时记录:T1DM 子集没有胰岛素泵/注射剂量时间序列(区别于 OhioT1DM 的 insulin 字段),闭环 RL 建模的动作空间只能间接构造。
3.5 伦理与匿名化
研究属 DiaDRIL 注册研究,知情同意已确认;发布数据已匿名化(以患者编号标识,无姓名/身份证/就诊卡号)。具体伦理批件号论文与 figshare 页均未披露,已在 §9 记为遗留疑点。CC BY 4.0 的再分发许可与匿名化状态互相支撑:匿名 + 宽许可才有「基准集可以二次打包」的工程便利。
§4 任务与建模用法
4.1 血糖预测(glucose forecasting)
最直接的任务:给定历史 CGM 序列,预测未来 30/60/120 分钟血糖。常用协议:
- 滑窗采样:输入窗 1-3 小时,预测 horizon 30-120 分钟,步长 15 分钟(与采样间隔对齐)。
- 划分:按患者划分(patient-wise split),严禁按时间点随机切分(坑 1)。
- 指标:RMSE / MAE(mmol/L),低血糖区单独报(详见 §5 基准)。
该集的特点是 T2DM 子集量大(11.2 万点)可支撑常规训练,T1DM 子集量小(1.57 万点)更适合做零样本/少样本评测或与 T2DM 合并后的分层评测。
4.2 餐后血糖建模(postprandial modeling)
借进食时间与称重信息,把「餐」作为显式事件:
- 事件特征化:进食时刻 t0 + 食物量(克)作为输入特征,预测 t0 后 2 小时血糖曲线(iAUC、峰值、达峰时间)。
- 交叉校验:用 CGM 升糖拐点反查漏记/迟记的进食事件(§2.3 的对齐误差缓解)。
- 个体差异:112 例患者的异质性足够做「同一食物量、不同个体响应差」的聚类分析——这正是精准营养(personalized nutrition)叙事的基础数据形态。
4.3 低血糖/高血糖事件预警
夜间低血糖预警是 T1DM 管理的刚需。15 分钟自动存储保证了夜间数据完整,可以:
- 定义事件:血糖 < 3.9 mmol/L(Level 1)/ < 3.0 mmol/L(Level 2),按国际共识口径。
- 训练预警器:提前 15-60 分钟报警,报出率/漏报率/假报率三指标。
- 注意 T1DM 子集 12 例中低血糖事件的绝对数量有限,建议做留一患者(leave-one-patient-out)评测并报告事件级而非样本级指标。
4.4 强化学习血糖控制(RL for glycemic control)
前置工作 Zhu et al.(2021)证明了这条路径的可行性:以餐食信息(时间+量)为环境输入的一部分,RL 智能体学习胰岛素建议策略。公开集的用法是离线 RL 或「真实数据校准的个体模型 + 模拟器内训练」两段式:
- 离线 RL:直接从 CGM-饮食序列学习保守策略(CQL/BCQ 类算法)。
- 模拟器路径:先用本集数据拟合个体血糖动力学模型,再在模型内做策略搜索——因无逐时胰岛素动作数据,纯在线 RL 不可行(§3.4 弱点)。
- 安全约束:低血糖惩罚必须显式建模,医疗 RL 的标准配置。
4.5 数字表型与探索性分析
CGM 统计特征(TIR 目标范围内时间、CV 变异系数、GRADE、低血糖指数等)可刻画个体代谢状态;两子集横跨 LADA-T1DM 与 T2DM 的谱系,适合做「不同糖尿病类型的时间序列表型差异」研究。HbA1c 与 CGM 派生指标的相关性分析(如 GMI 估算)也是现成课题——但记得 §2.4 的时间错位与 mmol/mol 口径换算。
4.6 任务-数据匹配速查
| 任务 | T1DM 子集 | T2DM 子集 | 关键配套 | 主要缺口 |
|---|---|---|---|---|
| 血糖预测 | 评测/迁移 | 主训练 | 纯 CGM 即可 | 无 |
| 低血糖预警 | 事件少,留一评测 | 事件更少 | 纯 CGM | 事件绝对数小 |
| 餐后建模 | 可用 | 主力 | 饮食记录 | 自报偏差 |
| RL 血糖控制 | 离线 RL/模拟器 | 同左 | 饮食记录+用药 | 无逐时胰岛素剂量 |
| 数字表型 | 可用 | 主力 | 临床特征 | 病历级粒度 |
§5 评估与基准
5.1 第三方统一基准:gluco-tsfm-benchmark
HuggingFace 上的 bylyuu/gluco-tsfm-benchmark 把两子集(连同 OhioT1DM 等常见 CGM 集)统一到 5 分钟分辨率(对本集 15 分钟原生做上采样)后横向评测时间序列模型:
- 划分协议:参加者级 80/20(patient-wise),与坑 1 的防泄漏原则一致。
- 两子集均纳入:ShanghaiT1DM 与 ShanghaiT2DM 均为基准的常规参赛者。
- 用法提示:统一分辨率是「为可比性牺牲保真度」的工程选择——上采样不产生新信息,报该基准结果时建议注明原生分辨率为 15 分钟。
5.2 Zenodo 存档基准(Fang et al.)
Zenodo 18604027 存档了 glucose forecasting 与 hypoglycemia forewarning 的深度学习基准,引用并纳入两子集。这类第三方存档的价值在于「可复现的实验锚点」:复现其划分与指标即可与已发表数字直接对比。
5.3 文献使用图景
数据论文自 2023 年发布以来累计被引约 76 次(prophy 统计,截至 2026),使用集中于:
- LSTM/Transformer/深度时序模型的血糖预测;
- 低血糖预警算法(T1DM 侧重);
- RL 血糖控制(中文社区尤其活跃,前置 RL 论文的引用链条带动);
- 与 OhioT1DM、D1NAMO、CGMacros 的联合对标(多数据集泛化性研究)。
5.4 同类集横向定位
| 数据集 | n | CGM 分辨率 | 饮食信息 | 胰岛素剂量 | 许可 |
|---|---|---|---|---|---|
| ShanghaiT1DM | 12 | 15 min | 称重记录(自报) | 无逐时 | CC BY 4.0 |
| ShanghaiT2DM | 100 | 15 min | 称重记录(自报) | 无逐时 | CC BY 4.0 |
| OhioT1DM(2020) | 12 | 5 min | 事件标记(自报) | 有(泵/注射) | 注册申请制 |
| D1NAMO | 9+5 | 5 min | 自拍食物照片 | 部分 | CC BY-NC-SA |
| CGMacros | 10 | 5 min | 摄像头精录 | 无 | CC BY-NC-SA |
| AZT1D | 25 | 5 min | 有 | 有(泵) | 受限 |
定位一句话:本集是「许可最宽 + 饮食最精确(相对自报类)+ 样本量中等偏小」的中国真实世界 CGM 集——在「能否自由分发与构建衍生基准」这一个工程维度上它几乎是同类里唯一的 CC BY 4.0 直链,代价是无逐时胰岛素数据与偏小的 T1DM 队列。
§6 获取与许可
6.1 获取路径
| 入口 | 标识 | 内容 |
|---|---|---|
| figshare 单条(论文 Data Records 引用) | DOI 10.6084/m9.figshare.20444397 | diabetes datasets.zip(两子集打包),v3(2022-11-20) |
| figshare 合集 | DOI 10.6084/m9.figshare.c.6310860 | 分子集条目汇总入口 |
| figshare 合集(另一记录) | figshare 20425518(v4/v5) | 与论文引用条并存,见 §9 存照 2 |
| 数据论文 | Scientific Data 10, 35 (2023), doi:10.1038/s41597-023-01940-7 | 方法、统计与数据字典 |
下载即得:免费、无注册、无申请。zip 内按子集分目录,每患者「CGM CSV + 饮食 Excel」成对(§2.5)。
6.2 版本链
| 版本 | 日期 | 说明 |
|---|---|---|
| v1 | 2022-08-06 | 首发(figshare 20444397) |
| v2/v3 | 2022-11-20 | 论文定稿对应版本,推荐使用 |
| v4/v5 | — | 存于合集条 20425518,内容以页面描述为准 |
版本纪律:论文正文引用的是 figshare 20444397(v1-v3 链),复现论文数字优先用 v3;合集条 20425518 为后置整理版,两者均官方(存照 2),引用时注明所用版本号即可。
6.3 许可细节
- 许可:CC BY 4.0。允许商用、再分发、衍生基准构建,唯一义务是署名。
- 署名建议:引数据论文(Zhao et al. 2023, Scientific Data 10:35)+ figshare DOI。
- 匿名化:已匿名(§3.5),CC BY 4.0 的再分发条件因此可安全行使。
- 对比口径:同类集中 OhioT1DM 需注册申请、D1NAMO/CGMacros 为 NC 系列(禁商用)、UCHTT1DM 为 NC-ND(禁衍生,已被部分基准排除)。本集是少数「可以放心二次打包进基准」的 CGM 集。
6.4 DAIMS 评分表
| DAIMS 维度 | 评分 | 依据 |
|---|---|---|
| A1 可获取性 | 5/5 | figshare 免费直链,无注册无申请 |
| A2 机器可读性 | 4/5 | CSV/Excel 自明结构;Excel 部分字段需手工核对表头 |
| A3 文档完备性 | 4/5 | 数据论文详尽(统计/流程/设备);数据字典散在论文而非独立 README |
| U1 标注质量 | 3/5 | 饮食为自报金标准但无外部验证;临床为病历级 |
| U2 许可开放度 | 5/5 | CC BY 4.0,允许商用与衍生 |
| U3 可复现性 | 4/5 | 版本链清晰(v1-v3 + 合集),第三方基准锚点已有 |
| 合计 | 25/30 | AI-Ready 优等生,短板在标注客观性与文档形式化 |
6.5 引用模板
Zhao, Q., Zhu, J., Shen, X. et al. Chinese diabetes datasets for
data-driven machine learning. Sci Data 10, 35 (2023).
https://doi.org/10.1038/s41597-023-01940-7
数据: Zhao et al., Diabetes Datasets—ShanghaiT1DM and ShanghaiT2DM,
figshare, v3 (2022), DOI 10.6084/m9.figshare.20444397, CC BY 4.0.
§7 与同类数据集的深度对照
7.1 与 OhioT1DM:最常被并提的对手
两者都是「真实生活 T1DM + 饮食信息」集,但互补性强:
| 维度 | ShanghaiT1DM | OhioT1DM(2020) |
|---|---|---|
| 患者数 | 12(成人,10 例 LADA) | 12(成人,经典 T1DM) |
| CGM 分辨率 | 15 min(自动存储) | 5 min(Medtronic/DEXCOM) |
| 饮食 | 称重记录:时间+重量 | 自报事件标记:时间+食物类型 |
| 胰岛素 | 病历级用药,无逐时 | 逐时泵/注射剂量 |
| 其他生理流 | 无 | 心率、步数、皮肤电、睡眠等 |
| 许可 | CC BY 4.0 直链 | 注册申请制 |
| 人群背景 | 中国上海 | 美国俄亥俄 |
选型逻辑:做餐后血糖建模选本集(称重信息更精确);做闭环控制/多模态融合选 OhioT1DM(有胰岛素剂量与生理流);做跨人群泛化研究两个都用(中美人群、LADA/经典 T1DM 双轴差异本身就是研究素材)。
7.2 与 CGMacros:饮食记录两种极致
CGMacros 用摄像头+称重精录每一餐(饮食精度最高但仅 10 例、NC-SA 许可);本集用患者称重自报(精度次之但 100 例 T2DM 支撑统计、CC BY 许可)。两者构成「饮食精度-样本量-许可」三角的不同角点。
7.3 与模拟器:虚实之别
UVA/Padova T1DM simulator(FDA 认可的硅胶患者群)提供完美已知的饮食/胰岛素输入与无噪声输出,适合 RL 初训与安全验证;本集提供真实生理-行为耦合,适合策略的现实性校准。数据论文 Table 3 自带模拟对比,标准做法是「模拟器内预训练 → 真实数据微调/评测」两段式(§4.4)。
7.4 中文数据集语境
在中文公开医学数据集里,本集的地位类似「糖尿病时序的先行者」:此前中文社区的研究要么用 UCI 级小样本,要么用模拟器。本集 + 后续国产 CGM 集的涌现,使「中文人群血糖基准」从无到有。其 LADA 主导的 T1DM 子集在东亚人群研究里还有额外的流行病学兴趣(LADA 在东亚成人「T2DM」人群中漏诊率高,本集的 10/12 构成无意中反映了这一临床现实)。
§8 生态与互链点
8.1 库内互链(详见 §10)
- ohiodm-t1dm-2020:同域 T1DM CGM 基准集,最常见对比对象,字段/许可互补(§7.1)。
- cgmacros:同批 CGM 条目,饮食精度-许可对照的另一角点(§7.2)。
- 其余 CGM/可穿戴/时序条目按「同任务(血糖预测)/同模态(CGM 时序)/同病种(糖尿病)」三轴检索。
8.2 外部生态
- figshare 生态:DOI 稳定引用 + 版本链 + CC BY 4.0,天然适合进基准聚合站。
- HuggingFace 生态:第三方基准(gluco-tsfm-benchmark)已把本集纳入统一协议;衍生镜像以 hf-mirror 访问。
- Zenodo 生态:Fang et al. 基准存档(18604027)提供可复现锚点。
- 论文引用网络:Scientific Data 开放获取,引用链条经 PMC 全文可达;前置 RL 论文(Zhu et al. 2021)构成方法学上游。
8.3 上游-下游谱系
前置方法学: Zhu et al. 2021 (RL 血糖控制, ICACAI 章节)
↓ 数据集化
本集: ShanghaiT1DM/T2DM (figshare v1 2022-08 → v3 2022-11)
↓ 第三方基准化
下游: gluco-tsfm-benchmark (HF), Fang et al. Zenodo 18604027,
LSTM/Transformer/RL 各类应用文献 (~76 引)
8.4 可衍生方向
- 统一分辨率 Chinese CGM benchmark:CC BY 4.0 允许再分发,可构建含训练/验证/测试的标准切片(仿 PANDA-PLUS-Bench 思路)。
- 餐食事件库:从 112 例饮食记录抽取结构化「进食事件-血糖响应」对,做精准营养检索库。
- LADA 数字表型子研究:10 例 LADA 的时间序列表型与经典 T1DM/T2DM 对照(需联合外部队列补样本量)。
§9 坑点清单(Pitfalls)
以下坑点来自数据论文口径、figshare 页面与第三方基准实践的交叉核对,编号引用便于正文与他文互链。
坑 1:记录文件数 > 患者数,按文件划分即泄漏
T1DM 16 文件对 12 例患者、T2DM 109 文件对 100 例患者——约一成患者有多个佩戴期。若把每个文件当独立样本随机划分,同一患者的两个佩戴期会分进 train/test 两侧:模型记住的是「这个人血糖长什么样」,测试集上是同一人,RMSE 会虚低到不真实。第三方基准(gluco-tsfm-benchmark)采用参加者级 80/20 划分正是为了堵这个洞。处置:任何自建实验一律按 patient_id 聚合划分;报告时注明「patient-wise split」;审稿遇到 15 分钟 CGM 论文没写划分粒度的一律追问。
坑 2:把 T1DM 子集当「经典 T1DM」
ShanghaiT1DM 的 12 例里 10 例是 LADA(成人隐匿性自身免疫糖尿病):平均 57.8 岁、病程中位 8.5 年、BMI 中位 20.95——这不是教科书里的「年轻瘦削急起病」T1DM 形象。与儿童起病队列(多数欧美 T1DM 集的构成)对标时,人群差异会混入模型差异。处置:跨集对比时声明人群构成;研究「经典 T1DM」问题的结论要限定适用范围;LADA 构成本身可作为东亚人群研究的特色卖点而非缺陷。
坑 3:HbA1c 单位是 mmol/mol 不是 %
论文用国际单位 mmol/mol(IFCC 口径):T1DM 中位 71、T2DM 中位 69。国内临床习惯 %(NGSP 口径):71 mmol/mol ≈ 8.6%、69 mmol/mol ≈ 8.5%。换算公式:NGSP% = 0.09148 × IFCC(mmol/mol) + 2.152。跨数据集合并时若一半集报 % 一半报 mmol/mol 而不做换算,回归模型的 HbA1c 系数会直接错乱。处置:入库时统一转 %(或统一 mmol/mol)并记录转换公式于数据卡片。
坑 4:figshare 双记录,别只认其一
figshare 存在两条官方记录:20444397(论文 Data Records 引用,v1-v3 单条打包)与 20425518(合集条,v4/v5)。检索者按 DOI 引用时若与别人复现所用的版本不一致,二进制 checksum 对不上会产生「数据不同」的误判。处置:以论文引用的 20444397 v3 为主工作版本;引用时写明版本号;合集条作为入口备用(存照 2 详述)。
坑 5:称重饮食记录的自报偏差双向存在
weighed food record 是自报金标准,但金标准也是自报:漏记(忘记记零食/饮料)、低估(称重嫌麻烦改估算)与时间漂移(吃完才补记时间)都会发生。文献一致发现自报能量摄入系统性低于双标水实测 20-30%。处置:餐后建模时用 CGM 升糖拐点交叉校验进食时刻;把「无进食记录时段血糖却上升」的片段当作疑似漏记处理;不要把饮食记录当 ground truth 而当 noisy input。
坑 6:两阶段采集横跨疫情期,行为模式可能非平稳
东方医院阶段(2019-09~2021-03)含 2020 年初疫情爆发与上海封控前奏;第四人民医院阶段(2021-06~2021-11)为管控间歇期。居家期出行减少、聚餐减少、烹饪增多——这些都会写进 CGM 曲线与饮食记录。处置:合并两阶段使用前做子样本分布对比(TIR、进食频次、血糖 CV);研究「典型日常模式」时可标注采集阶段作为协变量;时间序列非平稳检验(如 ADF)建议在预处理清单里。
坑 7:CGM 是组织间液血糖,急速段有滞后
Libre 系测的是组织间液葡萄糖,与血糖存在约 5-15 分钟生理滞后:血糖快速下降段(运动后、胰岛素峰值)CGM 读数偏高、快速上升段(进餐后)偏低,且低血糖区绝对误差最大——而这恰是低血糖预警最要命的区间。处置:预警模型的事件标签建议在 CGM 读数上加滞后补偿或取滚动最小值;绝对精度结论引用时注明「组织间液口径」;不要拿本集做「CGM vs 静脉血金标准」的精度研究——它没有配对参考测量。
坑 8:无逐时胰岛素数据,别做在线 RL 的梦
T1DM 子集没有胰岛素泵/注射剂量时间序列(OhioT1DM 有)。想做「智能体实时决定胰岛素剂量」的在线 RL,本集缺动作空间数据,只有环境状态(CGM+饮食)。处置:走离线 RL(保守 Q 学习类)或「本集拟合个体动力学 → 模拟器内训练」两段式(§4.4);引用前置 Zhu et al. 2021 时注意其 RL 实验设计正是围绕餐食信息而非胰岛素决策展开的。
§10 建议互链点
以下为库内建议互链条目(rid 以入库时 DB 实测为准,本稿一律占位 /0,由主会话入库后统一回填):
| 目标条目 | 建议链型 | 理由 |
|---|---|---|
| ohiodm-t1dm-2020(/0) | 双向 | 同域 T1DM CGM 基准集,最常见对比对象;字段互补(本集饮食精、Ohio 胰岛素全) |
| cgmacros(/0) | 双向 | 同批 CGM 条目;「饮食精度-样本量-许可」三角的另一个角点 |
| 同域 CGM/可穿戴时序条目(/0) | 单向 | 同模态(生理信号/可穿戴传感)检索轴 |
| 糖尿病相关临床/病历条目(/0) | 单向 | 同病种(糖尿病代谢 axis)背景补充 |
消歧说明(按纪律写在正文,不进 frontmatter):本条目 slug 为 shanghai-t1dm-t2dm-cgm,覆盖 ShanghaiT1DM 与 ShanghaiT2DM 两个子集(同论文同 figshare 打包发布)。检索「上海 T1DM 数据集」「ShanghaiT1DM dataset」「Chinese diabetes datasets」均应落到本条;不要与任何 Ohio/D1NAMO/CGMacros 等欧美 CGM 条目合并——人群、设备、采集协议均不同。
§11 下游实操清单:从 zip 到第一个模型
本节是给工程师的最短可用路径,五步走完即有基线模型。
11.1 第一步:解包与盘点
import zipfile, pandas as pd
from pathlib import Path
# 下载: https://doi.org/10.6084/m9.figshare.20444397 (v3, CC BY 4.0)
zipfile.ZipFile("diabetes datasets.zip").extractall("data/")
root = Path("data")
for sub in ["ShanghaiT1DM", "ShanghaiT2DM"]:
cgm_files = sorted((root / sub).glob("*.csv"))
meal_files = sorted((root / sub).glob("*.xlsx"))
print(sub, len(cgm_files), "CGM files,", len(meal_files), "meal files")
# 期望: ShanghaiT1DM 16 CGM / 16 meal; ShanghaiT2DM 109 / 109
盘点要点:核对文件数与论文一致(16/109);先建立 patient_id ↔ 文件前缀的映射表,把同一患者多个文件的归属标清楚——这是躲开坑 1 的地基。
11.2 第二步:CGM 清洗与缺口处理
def load_cgm(path):
df = pd.read_csv(path)
df.columns = ["ts", "gl"] # 时间戳, 血糖 mmol/L(按实际表头调整)
df["ts"] = pd.to_datetime(df["ts"])
df = df.dropna(subset=["gl"]).sort_values("ts")
return df
def gap_report(df):
d = df["ts"].diff().dt.total_seconds() / 60
return {"n": len(df),
"gap_gt_15min": int((d > 16).sum()),
"max_gap_min": float(d.max())}
处理原则:
- 采样标称 15 分钟,但实际间隔可能为 15/30/60 分钟混合——统一重采样到 15 分钟网格,缺口不做前向填充超过 1 小时(超过即断段)。
- 生理范围裁剪:血糖值裁剪到 1.1–33.3 mmol/L(传感器量程),范围外视为伪影。
- 佩戴首尾各弃 1 小时(贴敷稳定期),传感器更换间隙整体断段。
- 记录每文件的缺口统计,建模时把「连续可用窗长」作为样本准入条件(如 ≥2 小时连续无缺口)。
11.3 第三步:按患者划分
import numpy as np
def patient_split(prefixes, test_ratio=0.2, seed=42):
pids = sorted(set(prefixes))
rng = np.random.default_rng(seed)
rng.shuffle(pids)
k = max(1, round(len(pids) * test_ratio))
return set(pids[:-k]), set(pids[k:]) # (train, test)
T1DM 子集只有 12 例:test_ratio=0.2 意味着 test 仅 2-3 人,方差极大——建议改用留一患者(LOPO)循环评测并报告跨折均值±标准差。T2DM 100 例可用常规 80/20(20 人 test)。
11.4 第四步:基线模型(三点线性外推 + 轻量时序模型)
任何血糖预测论文的必修对照:最后一点平移(last value)与线性外推(linear extrapolation)。CGM 的高自相关性让这两个 naive 基线在 30 分钟 horizon 上极难打败,深度模型打不过 naive 基线的论文并不罕见。
def linear_extrapolation(gl_seq, horizon_steps=4):
# gl_seq: 最近 N 点血糖; horizon_steps: 15min/点 → 4 步 = 60 min
N = len(gl_seq)
t = np.arange(N)
k, b = np.polyfit(t, gl_seq, 1)
return k * (N - 1 + horizon_steps) + b
然后才轮到 LSTM/Transformer/TCN 等时序模型:输入窗 2 小时(8 点)、horizon 30/60/120 分钟、指标 RMSE/MAE 按区间分报(整体 + 低血糖 <3.9 + 高血糖 >10.0)。
11.5 第五步:接入饮食事件
餐后建模的最小可行特征:
# 饮食 Excel: 列含进食时间与食物重量(按实际表头调整)
meals = pd.read_excel(meal_path)
meals["t0"] = pd.to_datetime(meals["进食时间"])
# 为每个 CGM 样本计算「过去 3 小时内的进食量与距最近一餐时长」
def meal_features(ts, meals, lookback="3h"):
m = meals[(meals["t0"] <= ts) & (meals["t0"] > ts - pd.Timedelta(lookback))]
if m.empty:
return {"meal_g_3h": 0.0, "since_meal_min": np.nan}
return {"meal_g_3h": float(m["重量"].sum()),
"since_meal_min": (ts - m["t0"].max()).total_seconds() / 60}
校验动作:对每个进食事件,画出事件前后 2 小时的 CGM 均值曲线——升糖响应应在 15-45 分钟内出现拐点;若大量事件无响应,优先怀疑漏记/时间漂移(坑 5),而不是「这个人对碳水免疫」。
11.6 常见工程错误汇总
| 错误 | 后果 | 预防 |
|---|---|---|
| 按文件随机划分 | 泄漏,指标虚低 | patient-wise split(11.3) |
| mmol/mol 与 % 混用 | HbA1c 特征错乱 | 统一换算(坑 3) |
| 前向填充整段缺口 | 假平坦段污染训练 | >1h 即断段(11.2) |
| 饮食时间当精确质点 | 餐后曲线对齐错位 | 事件区间+拐点校验(坑 5) |
| 用本集做在线 RL | 缺动作空间 | 离线 RL/模拟器两段式(坑 8) |
| 忽略采集阶段 | 疫情期非平稳混杂 | 阶段协变量(坑 6) |
§12 常见误解澄清
误解 1:「ShanghaiT1DM 就是中国的 OhioT1DM。」
两集确实常被并提,但 Ohio 的 12 例是经典 T1DM 且有逐时胰岛素与多路生理流;本集 T1DM 10/12 为 LADA、无逐时胰岛素。它们是互补而非等价,混用结论会出错(§7.1)。
误解 2:「CC BY 4.0 意味着可以不署名。」
BY 就是署名(attribution)要求。再分发/衍生基准必须引用数据论文与 figshare DOI(§6.5 模板)。
误解 3:「112 例患者 = 112 个独立样本。」
多个佩戴期文件的真实独立单元是患者(125 文件对 112 人);且同一患者的连续测量点高度相关,有效样本量远小于名义点数 128,170。统计功效计算要按患者数来。
误解 4:「饮食记录是客观测量。」
它是自报金标准(weighed food record),不是摄像/双标水级客观测量。精度高于问卷、低于仪器,使用姿势见坑 5。
误解 5:「15 分钟采样太粗,不能做低血糖预警。」
国际低血糖预警研究里 5 分钟与 15 分钟口径并存;15 分钟自动存储保证了夜间完整性(比「5 分钟但夜里大片缺数」更好用)。代价是预警提前量粒度为 15 分钟步长——设计指标时按此对齐。
误解 6:「数据是 2021 年采集的,太旧。」
CGM 传感器技术与血糖生理学本身没有版本号。本集的价值在「真实行为耦合+饮食精确记录」,这两样不随传感器代际贬值;需要最新传感器特性(如 Libre 3 的 1 分钟采样)做产品级验证时另寻数据,属不同问题。
误解 7:「论文 DOI 随手抄一个就行。」
论文 DOI 存在两处口径(01940-7 与 01910-y,存照 1),抄错会引到不存在的论文。采信 MTMT 与 ADS 双源一致的 10.1038/s41597-023-01940-7。
§13 按角色阅读路径
13.1 数据工程师(拿到数据先跑通)
- §2.5 文件结构 → §11.1 解包盘点 → §11.2 清洗;
- 回头精读 §9 坑 1(划分泄漏)与坑 3(单位换算)——这两个坑在清洗阶段就要堵;
- 产出:清洗后的 patient-wise 划分缓存 + 缺口统计报告。
13.2 机器学习研究者(做血糖预测/预警)
- §4.1/4.3 任务协议 → §5 基准(先对齐 gluco-tsfm-benchmark 的划分再谈可比);
- §11.4 的 naive 基线必须先跑,再上深度模型;
- §9 坑 2(LADA 构成)与坑 7(组织间液滞后)写进论文 limitation。
13.3 精准营养/餐后建模方向
- §2.3 饮食规格 → §4.2 餐后建模 → §11.5 事件特征接入;
- §9 坑 5 的交叉校验流程是本项目的方法学核心,不是可选步骤;
- 对照阅读 cgmacros 条目(同域,饮食精录路线)以定位方法学光谱。
13.4 强化学习/数字疗法团队
- §4.4 两段式路线 → §9 坑 8(为什么不能在线 RL)→ §7.3 模拟器衔接;
- 前置论文 Zhu et al. 2021 的实验设计是本集 RL 用法的官方示范;
- 安全评估:低血糖惩罚设计参考 §4.3 的事件定义。
13.5 临床流行病学者
- §2.1 人群总表 → §3.1 DiaDRIL 框架 → §2.4 临床字段;
- 注意 §3.2 的两阶段时间线与坑 6 的疫情混杂——横断面解读前先分层;
- LADA 构成(坑 2)在东亚糖尿病谱系研究里是特色样本而非缺陷。
13.6 数据集评审/编目者
- §6 DAIMS 评分表 → §6.1-6.3 获取与许可 → §9 全部坑点;
- 版本链(§6.2)与双记录存照(§9 存照 2)决定引用规范条目怎么写;
- frontmatter 各字段已按本库规范填写,可直接比对。
§14 案例解剖:一次完整的餐后血糖分析
用一个虚构但真实的分析场景串起全稿知识点。
任务:估计「进食 50 g 碳水后 T2DM 患者的平均血糖响应曲线」。
第一步:取数。从 ShanghaiT2DM 的 100 例饮食记录中筛出碳水当量 40-60 g 的进食事件(记录里食物名称+重量,需换算碳水——数据不提供营养素明细,这是额外工作量,需自建食物成分表映射)。此步暴露数据边界:食物种类有、营养素无,精准营养研究的第一道加工在数据之外。
第二步:事件对齐。以进食时刻 t0 为锚,取每个事件 t0-60min 到 t0+120min 的 CGM 片段。用 §11.5 的拐点校验剔除「t0 后 60 分钟内无升糖拐点」的事件——它们大概率是漏记零食或时间漂移。
第三步:分层。按坑 6 的采集阶段分层(疫情管控期 vs 间歇期),按用药分层(仅口服药 vs 含胰岛素),按 HbA1c(统一换算成 %,坑 3)三分位分层。
第四步:聚合与解读。对每层画均值±95%CI 响应曲线。典型可期发现:含胰岛素组峰值更低但迟发低血糖(<3.9)事件更集中;HbA1c 高三分位组达峰更晚、回落更慢。所有结论按患者聚类稳健标准误——不是按事件数(误解 3)。
第五步:汇报。引用 §6.5 模板;limitation 依次写:自报饮食偏差(坑 5)、组织间液滞后(坑 7)、样本量按患者计仅 100(误解 3)、营养素映射为研究者自建非数据原生。
这个案例的价值不在结论而在流程:每一步都对应本稿的一个坑或一条规格,跳步的结果通常是审稿返修。
§15 一页速查卡
┌─────────────────────────────────────────────────────────────┐
│ ShanghaiT1DM & ShanghaiT2DM 速查卡 │
├─────────────────────────────────────────────────────────────┤
│ 下载 figshare 20444397 v3(DOI 10.6084/m9.figshare.20444397)│
│ 许可 CC BY 4.0(署名即可,可商用可衍生) │
│ 论文 Sci Data 10:35 (2023) doi:10.1038/s41597-023-01940-7 │
│ 规模 T1DM 12人/16文件/15,695点 T2DM 100人/109文件/112,475点 │
│ 设备 FreeStyle Libre H,15 min 自动存储,佩戴 3-14 天 │
│ 饮食 每日称重记录:进食确切时间+食物重量(自报) │
│ 临床 实验室(糖代谢/血脂/肾功能)+人口学/BMI/病程/用药(病历级) │
│ 单位 血糖 mmol/L;HbA1c mmol/mol(71≈8.6%) │
│ 划分 一律 patient-wise(16≠12、109≠100 有多佩戴期) │
│ 任务 血糖预测/低血糖预警/餐后建模/离线 RL/数字表型 │
│ 缺口 无逐时胰岛素剂量;营养素明细需自建映射;T1DM 事件数少 │
│ 基准 gluco-tsfm-benchmark(HF);Zenodo 18604027 │
│ 大坑 泄漏/LADA构成/单位换算/双记录/自报偏差/疫情期/CGM滞后/无RL动作 │
└─────────────────────────────────────────────────────────────┘
§16 术语表
| 术语 | 英文 | 释义 |
|---|---|---|
| 动态血糖监测 | CGM (continuous glucose monitoring) | 连续测量组织间液葡萄糖的可穿戴技术 |
| 扫描式血糖监测 | FGM (flash glucose monitoring) | Libre 系技术路线,本集设备自动存储免扫码 |
| 称重饮食记录 | weighed food record | 逐餐称重并记录的自报饮食评估金标准方法 |
| 成人隐匿性自身免疫糖尿病 | LADA | 成年起病、进展缓慢的自身免疫糖尿病;本集 T1DM 子集 10/12 为此型 |
| 糖化血红蛋白 | HbA1c | 近 8-12 周平均血糖指标;IFCC 单位 mmol/mol,NGSP 单位 % |
| 目标范围内时间 | TIR (time in range) | CGM 派生指标:血糖处于 3.9-10.0 mmol/L 的时间占比 |
| 血糖变异系数 | CV | CGM 派生指标:标准差/均值,>36% 视为高变异 |
| 低血糖事件 | hypoglycemia event | 国际共识分级:<3.9(Level 1)、<3.0 mmol/L(Level 2) |
| 进食事件 | meal event | 饮食记录中的一次进食:时刻 + 食物 + 重量 |
| 患者级划分 | patient-wise split | 以患者为单元划分 train/test,防同患者跨集泄漏 |
| 离线强化学习 | offline RL | 仅从既有数据学习策略、不与环境实时交互的 RL 设定 |
| 组织间液滞后 | interstitial fluid lag | 组织间液葡萄糖相对血糖约 5-15 分钟的生理延迟 |
§17 字段对照速查(数据字典摘要)
| 字段组 | 具体项 | 粒度 | 单位/口径 |
|---|---|---|---|
| CGM | 时间戳, 血糖 | 15 min | mmol/L |
| 饮食 | 进食时间, 食物, 重量 | 每餐事件 | g(营养素需自建映射) |
| 糖代谢 | 空腹血糖, HbA1c 等 | 病历级 | mmol/L;mmol/mol |
| 血脂谱 | TC/TG/HDL/LDL 等 | 病历级 | mmol/L |
| 肾功能 | 肌酐/尿素氮/eGFR 等 | 病历级 | μmol/L 等 |
| 人口学 | 年龄, 性别 | 患者级 | 岁;男女 |
| 体格 | 身高, 体重, BMI | 患者级 | cm;kg;kg/m² |
| 病程 | 糖尿病病程 | 患者级 | 年 |
| 并发症 | 视网膜/肾病/神经病变等 | 病历级 | 有/无(编码见病历) |
| 用药 | 口服降糖药, 胰岛素 | 病历级 | 药名(无逐时剂量) |
(具体列名以实际下载文件表头为准;本表为论文口径的语义对照。)
§18 FAQ
F1:能用于商业项目吗?
能。CC BY 4.0 允许商用,唯一义务署名。但注意「数据商用」与「模型商用」都要履行署名;衍生数据集再分发时保留相同许可并注明来源。
F2:T1DM 只有 12 例,值得用吗?
作为训练集不值、作为评测/迁移/表型研究值得:LADA 主构成在公开数据集里几乎唯一(坑 2),稀缺人群的「存在样本」本身就是价值。训练主力交给 T2DM 100 例。
F3:和 HuggingFace 上已有的镜像是什么关系?
官方渠道只有 figshare;HF 上的 gluco-tsfm-benchmark 是第三方把本集统一分辨率后的基准化封装,用于基准对比,原始研究仍应从 figshare 取数并引用官方 DOI。
F4:需要申请伦理吗?
使用已发布的匿名化公开数据做二次研究,一般按各机构豁免政策处理;但再分发或合并入新基准时,建议自行复核本机构伦理要求——本稿不构成法律意见。
F5:能和 OhioT1DM 合并训练吗?
能且值得(跨人群泛化),但先解决三件事:分辨率对齐(15 vs 5 min)、人群构成差异声明(LADA vs 经典 T1DM)、许可差异(CC BY vs Ohio 的注册制——合并分发受 Ohio 条款约束,只能本地合用不能再分发合并体)。
F6:哪个版本是「最新正确版」?
论文对应 v3(figshare 20444397,2022-11-20)。合集条 20425518 的 v4/v5 并存(存照 2),复现论文用 v3,其他用途两者皆可并注明版本。
§19 存照与遗留疑点汇总
双口径存照清单:
- 论文 DOI 两口径:WebFetch 摘要尾部出现 10.1038/s41597-023-01910-y,MTMT 与 ADS 记录均为 10.1038/s41597-023-01940-7 → 采信双源一致的 01940-7,01910-y 判为抓取噪声,存照。
- figshare 双记录:20444397(论文引用,v1-v3)与 20425518(合集,v4/v5)并存,selectdataset 转载合集 → 两者均官方;正文以论文引用的 20444397 为主,并列注明。
- 记录文件数 > 患者数:T1DM 16>12、T2DM 109>100,论文明示一名患者可有多个记录期,非数据矛盾(正文坑 1 专述)。
遗留疑点:
- 具体伦理批件号未见披露(属 DiaDRIL 注册研究,知情同意已确认)——知其框架不知其文号。
- 作者单位上标 1-5 与机构名的逐字映射未完全核实,正文按可推断关系表述(同济软件学院/东方医院/第四人民医院三方)。
- figshare 合集 20425518 的 v4/v5 与 v3 的内容差异(是否仅元数据修订)未逐字节比对——需下载两版做 diff,超出本稿核验预算,留待后续核补。
§20 结论:它在 AI-Ready 数据集版图上的位置
ShanghaiT1DM/ShanghaiT2DM 的核心资产是一句话可以说清的:在中国真实生活条件下,把「血糖怎么走」与「什么时候吃了什么」同时记录下来的唯一 CC BY 4.0 公开集。它的许可宽度(同类罕见)、饮食记录精度(自报金标准)与 LADA 构成(东亚特色)构成三个差异化支点;它的天花板同样清楚:样本量中等偏小、无逐时胰岛素、营养素明细缺位。
对使用者,本稿的建议浓缩为三条:
- 按患者划分、按口径换算、按事件校验——坑 1/3/5 是三大返修来源;
- T2DM 训练、T1DM 评测、Ohio 补胰岛素维度——三集分工是当前最经济的组合打法;
- 引用写全:论文 DOI(01940-7)+ figshare 20444397 + 版本号,一次写对省掉审稿来回。
它不会是最大的 CGM 集,但很可能是被复用得最顺手的中文 CGM 集——AI-Ready 的要义从来不是「大」,而是「拿得快、读得懂、用得放心」,这三样本集都做到了。
附录 A:来源列表
| # | 来源 | 用途 |
|---|---|---|
| 1 | Scientific Data 10:35 (2023), doi:10.1038/s41597-023-01940-7, PMCID PMC9849330, PMID 36653358 | 全部硬数字、流程、统计主源 |
| 2 | figshare 20444397(DOI 10.6084/m9.figshare.20444397,v3 2022-11-20) | 获取路径、版本链、license |
| 3 | figshare 合集 c.6310860 与 20425518 | 版本链存照 2 |
| 4 | Zhu et al. 2021(RL 血糖控制,ICACAI 章节) | 前置方法学 |
| 5 | HuggingFace bylyuu/gluco-tsfm-benchmark | 第三方基准协议 |
| 6 | Zenodo 18604027(Fang et al.) | 第三方基准存档 |
| 7 | MTMT / ADS 学术索引 | DOI 双源比对(存照 1) |
附录 B:本稿生成信息
- 条目 slug:shanghai-t1dm-t2dm-cgm(上海糖尿病动态血糖数据集)
- 撰写:agent-c-shanghait1(含前实例 FACTS 复用),2026-10-17
- 核验方式:前实例三源互证(论文/figshare/学术索引)+ 本实例零追加网络请求(按低中断预算复用 FACTS.md)
- rid 占位:全部 /0,由主会话入库后统一回填(R018 纪律)
附录 C:模拟审稿问答(Reviewer Q&A 预演)
以下模拟一轮典型审稿意见与本稿的回应口径,供投稿/技术报告阶段直接复用。
Q1(方法学):你们的 train/test 划分为什么是患者级的?按文件划分样本更多。
回应:本集 125 个记录文件对应 112 例患者,多个佩戴期出自同一患者(§2.1)。按文件划分会把同一患者的两个佩戴期分入两侧,形成患者级信息泄漏——模型学到的是「这个人的血糖基线与波动习惯」而非可泛化的映射。参加者级划分是该领域第三方基准(gluco-tsfm-benchmark)的标准协议。T1DM 子集 12 例进一步建议 LOPO 评测并报跨折方差。
Q2(统计):128,170 个测量点做显著性检验是否足够?
回应:名义点数不是有效样本量。连续 CGM 点高度自相关(15 分钟间隔下相邻点相关系数接近 1),有效样本量应由独立单元——患者数(112)与佩戴期数(125)决定。事件级分析(低血糖事件)更应按事件数报告,T1DM 子集事件绝对数有限,宜用精确检验并报置信区间而非仅 p 值。
Q3(数据质量):饮食记录的自报偏差如何影响餐后建模结论?
回应:称重记录是自报金标准但仍双向偏差(漏记+低估,§2.3/坑 5)。我们的处理是:①以 CGM 升糖拐点交叉校验进食时刻,剔除无响应事件;②把食物量当 noisy input,在模型中显式建模观测噪声;③结论限定于「记录到的餐食」而非「全部摄食」。
Q4(外推性):LADA 构成是否限制了 T1DM 结论的外推?
回应:是,且我们主动声明。10/12 为 LADA 意味着本子集刻画的是「成人隐匿起病、残留 β 细胞功能」的血糖动力学,与经典儿童起病 T1DM(完全胰岛素依赖、波动更剧烈)不同。所有跨人群结论均需与欧美经典 T1DM 集(OhioT1DM 等)联合检验。
Q5(可复现):为什么报 15 分钟原生分辨率而不是统一 5 分钟?
回应:5 分钟版本仅存在于第三方基准的上采样(不产生信息)。原生 15 分钟是传感器真实存储粒度,上采样引入伪平滑会低估短时波动指标(CV、急速段斜率)。基准对比可复算统一分辨率版本并注明原生口径。
Q6(许可):CC BY 4.0 下构建衍生基准,原作者权益如何保障?
回应:署名义务通过引用数据论文(Zhao et al. 2023)+ figshare DOI(20444397)+ 版本号履行;衍生基准建议在数据卡片中保留相同许可并注明血统(provenance)。
附录 D:扩展技术附录
D.1 15 分钟网格重采样的边界情况
统一重采样是预处理第一刀,四类边界情况:
- 双点同格:同一 15 分钟格内出现两个读数(设备重传),取格内末点(更接近格末状态)。
- 格边界偏移:设备时间戳非整 15 分钟对齐(如 10:07、10:22),以首个时间戳为锚建立网格而非绝对钟点,避免系统性相位差。
- 长缺口两端断接:缺口 >1 小时直接断段,两侧不建跨缺口特征(滑窗不跨段)。
- 佩戴首日校准期:Libre 系首小时与指血校准并存,段内统计指标(均值/CV)建议弃首日第一小时。
D.2 滑窗样本的准入与配额
按患者划分后,样本生成阶段仍有两个自由度需固定,否则结果不可比:
- 准入:输入窗(如 2h=8 点)完整无缺口才生成样本;
- 配额:同一患者的样本数不设上限(自然配比)或设上限(如每日最多 N 个起点)——两者结论不同,报告时注明;
- 步长:15 分钟(全量)vs 60 分钟(去重叠)——去重叠版本有效独立样本更多,适合作稳健性主口径,全量版本作参考。
D.3 与第三方基准协议对齐清单
对齐 gluco-tsfm-benchmark 复算时逐项核对:
| 项 | 协议 | 本稿口径 |
|---|---|---|
| 分辨率 | 统一 5 min(上采样) | 原生 15 min,复算时另出统一版 |
| 划分 | 参加者级 80/20 | 一致(patient-wise) |
| 指标 | RMSE/MAE | 一致,另分区间报(低/目标/高) |
| horizon | 基准定义为准 | 30/60/120 min 三档 |
D.4 低血糖预警系统的设计走查(第二案例)
以「夜间低血糖提前 30 分钟预警」为目标的设计走查:
- 标签定义:t+30min 窗口内最低点 <3.9 mmol/L 记为正样本。注意 CGM 滞后(坑 7)会推迟低血糖在曲线上的显影,标签窗宜向后扩 1-2 个采样点。
- 类别失衡:夜间低血糖是稀有事件,T1DM 子集事件绝对数少(§4.3),用 Focal Loss 或事件级重采样,绝不按点数配平。
- 特征:当前血糖 + 30/60 分钟斜率 + 时间 of day(夜间先验)+ 当日已发事件数。无逐时胰岛素数据(坑 8),傍晚运动与晚餐碳水可作代理特征。
- 评测:LOPO + 事件级召回/精确 + 提前量分布(不只是命中率);假警报率按「夜均假报次数」报告——这是临床可接受性的真正口径。
- 汇报:注明 12 例的事件数、CGM 口径(组织间液)、无胰岛素输入三个 limitation。
D.5 食物成分映射的最小可行做法
数据只给「食物名+重量」,餐后建模需要碳水当量。最小可行路线:
- 取中国食物成分表(如中国疾控营养与健康所《中国食物成分表》)标准版做主映射;
- 食物名归一化:本集记录为患者自述,同物异名(「米饭/白米饭/大米饭」)需先归并——建议人工建 100-200 条高频词表起步;
- 混合菜(如「西红柿炒蛋」)按主料分解或整体估碳水区间,标注不确定度;
- 把映射表随代码开源(数据 CC BY 4.0 允许衍生,映射表本身为衍生品,同样署名即可)。
D.6 三个「不要」
- 不要把本集当预训练语料:128k 点对深度模型预训练杯水车薪,正确姿势是微调/评测/迁移目标域。
- 不要跨子集混报指标:T1DM/T2DM 生理机制与用药结构不同,合并分析必须分层或加子集指示变量。
- 不要在没有拐点校验时相信每一个进食时间戳:自报数据的默认姿势是怀疑后验证,而非直接信任。
附录 E:CGM 建模方法谱系与本集的适配度
以下按方法族梳理血糖建模的主流路线,并逐条标注本集适配度(优/可/弱)与适配理由。方法族划分参照时间序列建模综述的通行口径,适配判断基于本集数据形态(15 分钟、样本量、无逐时胰岛素)。
E.1 统计与经典时序方法
- ARIMA / 自回归:单点血糖强自相关,短 horizon(15-30 min)表现不俗;本集适配「优」,几乎零门槛,必做对照。
- 指数平滑 / 状态空间:对缓变段平滑跟踪好,急速段滞后;适配「可」,适合做融合基线。
- 卡尔曼滤波类:可融合多源观测,但本集无逐时胰岛素/运动流,状态空间退化为单变量;适配「可」。
- GARCH 类波动建模:血糖波动率本身是临床信号(CV>36% 高危);适配「优」,112 例足够做波动率分组比较。
E.2 深度时序模型
- LSTM/GRU:血糖预测文献主力;适配「优」(T2DM 11 万点可训),T1DM 子集仅作评测。
- 1D-CNN / TCN:局部模式(餐后升糖形态)敏感;适配「优」,与本集的餐食事件特征天然互补。
- Transformer 类(Informer/PatchTST 等):长序列依赖建模强,但需要大数据量发挥;适配「可」,建议迁移学习而非从零训练。
- N-BEATS/N-HiTS:可解释分解(趋势+季节);适配「可」,血糖的「日内节律」可被趋势项捕获。
- Seq2Seq / 多步直推:多 horizon(30/60/120 min)预测的标准形态;适配「优」。
E.3 概率与不确定性方法
- 贝叶斯时序 / MC Dropout / Quantile 回归:低血糖预警需要「报警置信度」而不只是点预测;适配「优」,临床部署的必要组件。
- 高斯过程:小样本友好但 O(n²) 复杂度;适配「可」,适合个体级(单患者几 lifespan 百点)而非全集建模。
- 共形预测(conformal prediction):免分布假设的覆盖保证;适配「优」,15 分钟网格与校准集划分天然匹配。
E.4 强化学习与控制
- 在线 RL(DDPG/SAC/PPO):需要逐时动作(胰岛素)反馈;本集缺失(坑 8);适配「弱」,只能走模拟器路线。
- 离线 RL(BCQ/CQL/IQL):从固定数据集保守学习;适配「可」,数据无动作列时可用「治疗意图代理」(病历用药)构造粗动作,结论需降级为探索性。
- 模型预测控制(MPC):显式动力学模型 + 滚动优化;适配「可」,先用本集辨识个体动力学再在模型上做 MPC。
- 安全 RL / 约束 RL:低血糖硬约束建模;适配「可」,事件标签来自 CGM,约束满足率可离线评估。
E.5 多模态与个体建模
- CGM + 饮食事件融合:本集的招牌组合(§4.2);适配「优」,事件编码(时间差+重量)注入即得。
- CGM + 临床特征(病历级):慢变协变量(HbA1c/BMI/病程)做个体嵌入;适配「优」。
- 跨个体元学习 / 个性化微调:112 例支持 leave-one-person-out 元训练;适配「可」。
- 跨数据集域适应(本集↔Ohio↔D1NAMO):分辨率/人群/许可三重差异是标准域间隙;适配「可」,域对抗或重加权皆可试。
- 基础模型微调(时序预训练模型):零/少样本评估 T1DM 子集;适配「优」,12 例正是基础模型少样本评测的理想靶场。
E.6 方法-任务适配矩阵(速查)
| 方法族 | 血糖预测 | 低血糖预警 | 餐后建模 | RL 控制 |
|---|---|---|---|---|
| 经典时序 | 优(基线) | 可 | 可 | — |
| 深度时序 | 优 | 优 | 优 | — |
| 概率/不确定性 | 优 | 优(必要) | 可 | 可 |
| RL/控制 | — | — | — | 弱→可(离线/模拟器) |
| 多模态融合 | 优 | 可 | 优(招牌) | 可 |
| 基础模型微调 | 优(少样本) | 可 | 可 | — |
附录 F:临床指标参考速查(建模侧常用阈值)
以下为国际共识/指南的常用阈值口径,供标签定义与分层使用(非本集原创,引用时引共识原文):
F.1 血糖分区(mmol/L)
- 严重低血糖:<3.0(Level 2,需立即干预)
- 低血糖警戒:<3.9(Level 1,临床低血糖阈值)
- 目标范围下界:3.9
- 目标范围(TIR):3.9–10.0
- 高血糖警戒:>10.0
- 高血糖(Level 2):>13.9
F.2 CGM 派生指标
- TIR 目标:>70%(T2DM 与 T1DM 通用共识目标)
- 低于目标时间(<3.9):<4%(部分共识 <1% 对 <3.0)
- 高于目标时间(>10.0):<25%;>13.9:<5%
- CV(变异系数):≤36% 为稳定上限共识
- GMI( glucose management indicator):由 CGM 均值估算 HbA1c 的经验公式(注意本集 CGM 窗口仅 3-14 天,GMI 只反映窗口期)
- 常规监测的达标定义:≥14 天 CGM 数据(本集单次佩戴 3-14 天,部分患者不足 14 天,达标率需按患者报告)
F.3 使用注意(绑定本稿坑点)
- 分区阈值一律用 mmol/L(本集原生单位);与美国文献的 mg/dL 对照时 ×18 换算。
- HbA1c 为 mmol/mol(坑 3),换算公式见坑 3 条。
- 低血糖事件数按「事件」计而非「点数」计——连续多点低于阈值属同一事件(§附录 D.4)。
- TIR 等指标的「≥14 天」达标条件与本集短佩戴窗口的冲突要在方法节明示。
附录 G:开放问题清单(研究机会)
以下为基于本集数据形态可开展、且文献尚无定论的问题,按「数据可行性 × 学术增量」排序:
- LADA 与经典 T2DM 的 CGM 表型边界:本集 T1DM(LADA 主导)与 T2DM 同协议同设备采集,是罕见的「同口径跨类型」对照——可检验传统上按诊断标签分开的两类人群在时序表型上是否真的可分。
- 自报饮食数据的不确定性传播:把食物重量当区间(而非精确值)输入,量化摄入不确定性对餐后预测的影响——方法学上 connect 精准营养与不确定性量化两个社区。
- 疫情期行为断点的检测与校正:两阶段采集(坑 6)天然构成「干预前/后」结构,可做行为断点检验(如 CUSUM)及其对预测模型外推的影响。
- 15 分钟分辨率的信息上限:系统比较 15 min 原生 vs 5 min 上采样在预警提前量上的差异,回答「FGM 设备做预警到底损失多少」。
- 短窗口 GMI 的可靠性:3-14 天窗口估算的 GMI 与病历 HbA1c 的一致性——短窗口是否足以替代三个月平均, clinical 操作层面有意义。
- 多佩戴期患者的血糖季节性:少数有多个佩戴期的患者(坑 1 的「烦恼」恰是纵向研究的「资源」),可做个体内跨期稳定性分析。
- 跨集(本集↔Ohio↔D1NAMO)的许可兼容基准:构建一个「许可全兼容(只用可再分发子集)」的公开血糖预测基准——本集 CC BY 4.0 是其合法性基石。
- 饮食记录漏记的检测器:用「无记录但血糖上升」片段训练漏记分类器,反哺记录质量评估——把坑 5 从 limitation 变成 research contribution。
附录 H:与其他 AI-Ready 数据集条目的互链扩展(写作要点)
供主会话 link_builder 与后续条目写手参考的互链语义(rid 全部占位,入库后回填):
- ohiodm-t1dm-2020(/0):互链语义「同任务-不同许可与字段维度的姊妹基准」;对方条目侧建议引用本稿 §7.1 对照表。
- cgmacros(/0):互链语义「饮食记录两种方法学路线(摄像头精录 vs 称重自报)」;对方条目侧引用本稿 §7.2。
- 任何引入「时序数据/可穿戴传感」标签的生理信号条目(/0):单向互链「同模态时序建模素材」。
- 糖尿病相关临床/登记条目(/0):单向互链「病种背景数据底座」。
写手注意事项:本条目 slug 消歧关键词为 shanghai / ShanghaiT1DM / ShanghaiT2DM / Chinese diabetes datasets;与欧美 CGM 集(Ohio/D1NAMO/CGMacros/AZT1D/UCHTT1DM)在 slug 与实体层面均不同源,任何「合并视图」判定都是错的(R002 模式清单的对照记忆)。
附录 I:数据使用合规清单(逐条自查)
使用本集做二次研究/构建衍生品时逐条勾选:
I.1 获取合规
- [ ] 从 figshare 官方 DOI(10.6084/m9.figshare.20444397)或合集入口下载,未使用来源不明的转载镜像;
- [ ] 记录所用版本号(推荐 v3,2022-11-20)并留 checksum;
- [ ] 确认下载页面许可标注为 CC BY 4.0 后再分发/衍生。
I.2 署名合规
- [ ] 论文引用:Zhao et al., Sci Data 10:35 (2023), doi:10.1038/s41597-023-01940-7;
- [ ] 数据引用:figshare DOI + 版本号;
- [ ] 衍生数据集/基准的 README 与数据卡片均含上述双引用;
- [ ] 未暗示本集为自有采集或修改了出处归属。
I.3 使用范围合规
- [ ] 未尝试反匿名化或重识别患者;
- [ ] 未将本数据用于临床诊断决策(研究用途);
- [ ] 衍生基准再分发时保留 CC BY 4.0 兼容许可;
- [ ] 与受限许可数据集(NC/ND 系列)合并产物未对外再分发(只本地使用)。
I.4 报告合规(学术质量层)
- [ ] 划分粒度声明为 patient-wise;
- [ ] HbA1c 单位声明(mmol/mol 或换算后 %)并附公式;
- [ ] T1DM 子集 LADA 构成已在 limitation 声明;
- [ ] 饮食自报偏差已在 limitation 声明并描述校验方法;
- [ ] 无逐时胰岛素数据的事实已声明(涉及 RL 时);
- [ ] 有效样本量按患者/事件而非测量点数讨论。
附录 J:错误写法 vs 正确写法(代码对照)
J.1 划分
# ✗ 错误:按文件随机划分(泄漏)
from sklearn.model_selection import train_test_split
train_f, test_f = train_test_split(all_files, test_size=0.2)
# ✓ 正确:按患者划分
import numpy as np
pids = sorted({f.name.split("_")[0] for f in all_files}) # 文件名前缀=患者标识
rng = np.random.default_rng(42); rng.shuffle(pids)
test_pids = set(pids[:max(1, round(len(pids)*0.2))])
train_f = [f for f in all_files if f.name.split("_")[0] not in test_pids]
test_f = [f for f in all_files if f.name.split("_")[0] in test_pids]
J.2 单位换算
# ✗ 错误:直接把 mmol/mol 当 % 用
df["hba1c_pct"] = df["hba1c_ifcc"] # 71 → "71%"
# ✓ 正确:IFCC→NGSP 换算
df["hba1c_pct"] = 0.09148 * df["hba1c_ifcc"] + 2.152 # 71 → ≈8.65%
J.3 缺口处理
# ✗ 错误:全量前向填充
df["gl"] = df["gl"].ffill() # 数小时缺口被拉成假平台
# ✓ 正确:网格重采样后长缺口断段
g = df.set_index("ts")["gl"].resample("15min").mean()
gap_id = (g.index.to_series().diff() > pd.Timedelta("1h")).cumsum()
segments = [seg.dropna() for _, seg in g.groupby(gap_id)]
J.4 事件级低血糖统计
# ✗ 错误:按点数统计低血糖(连续多点重复计数)
n_hypo = (df["gl"] < 3.9).sum()
# ✓ 正确:按连续段聚合成事件
hypo_mask = df["gl"] < 3.9
event_id = (hypo_mask & ~hypo_mask.shift(fill_value=False)).cumsum()
n_events = df.loc[hypo_mask, "event_id"].nunique()
J.5 餐后窗口对齐
# ✗ 错误:把进食时刻当唯一质点取单点血糖
post = df[df["ts"] == meal_time] # 15min 网格上大概率取不到
# ✓ 正确:取事件后 2 小时窗口并校验升糖拐点
w = df[(df["ts"] >= meal_time) & (df["ts"] <= meal_time + pd.Timedelta("2h"))]
assert (w["gl"].max() - w["gl"].iloc[0]) > 0.5, "无升糖响应,疑似漏记/时间漂移"
J.6 模型报告
# ✗ 错误:只报整体 RMSE
print(rmse(y_true, y_pred))
# ✓ 正确:分区间报 + naive 基线对照
for name, mask in [("low", y_true < 3.9),
("in_range", (y_true >= 3.9) & (y_true <= 10.0)),
("high", y_true > 10.0)]:
print(name, rmse(y_true[mask], y_pred[mask]))
print("naive(last)", rmse(y_true, y_naive))
附录 K:数据集元信息对照卡(写入实验配置时复制)
dataset:
name: "ShanghaiT1DM & ShanghaiT2DM"
official: "Diabetes Datasets—ShanghaiT1DM and ShanghaiT2DM"
slug: shanghai-t1dm-t2dm-cgm
paper: "Sci Data 10:35 (2023), doi:10.1038/s41597-023-01940-7"
data_doi: "10.6084/m9.figshare.20444397 (v3, 2022-11-20)"
license: "CC BY 4.0"
device: "FreeStyle Libre H (Abbott), FGM"
sampling: "15 min"
units: {glucose: mmol/L, hba1c: mmol/mol}
subsets:
t1dm: {patients: 12, files: 16, points: 15695, wear: "4-14 d",
female: "58.3%", age: "57.83±11.12", lada: "10/12"}
t2dm: {patients: 100, files: 109, points: 112475, wear: "3-14 d",
female: "44.0%", age: "60.17±13.71"}
extra: "per-patient weighed food record (time + grams)"
sites: ["上海市东方医院 2019-09~2021-03",
"上海市第四人民医院 2021-06~2021-11"]
caveats: [patient-wise-split, lada-composition, ifcc-units,
self-report-bias, no-insulin-dose, two-phase-covid]
附录 L:收录核查记录(编辑部自用)
- 三源核验:Scientific Data 论文(PMC 全文)/ figshare 官方页 / 学术索引(MTMT+ADS)——数据存在性、规模、许可三要素互证通过;
- 查重:DB status=1 AND del_sign=0 无 shanghai 相关 url_name;dedup_gate 无撞库(仅本候选 dispatched 与本稿目录自身命中);
- 锁:agent-c-shanghait1 2026-10-17T00:26 持有,单实例;
- 前实例遗产:FACTS.md 完整复用(三源互证与双口径存照由前实例完成),本实例零追加网络请求;
- 分片:8 片私有区 .parts_agent-c-shanghait1_1792168653_117136/,显式拼接,接缝空行保持;
- rid 占位:全文 /0,待主会话入库后统一回填(R018)。
附录 M:Day-1 工作清单(拿到数据后的第一个工作日)
按时间顺序的最短上手清单,每步勾选:
M.1 上午:盘点与地基
- [ ] 下载 figshare 20444397 v3,记录 checksum;
- [ ] 解包核对:T1DM 16 CSV+16 XLSX,T2DM 109 CSV+109 XLSX;
- [ ] 建立 patient_id↔文件映射表(多佩戴期归属标清);
- [ ] 抽查 3 个患者:CSV 表头、时间戳格式、血糖单位合理性(2.2-33.3 范围内为主);
- [ ] 抽查同批 XLSX:进食时间格式、食物字段、重量字段是否齐全;
- [ ] 记录发现的所有表头差异(若有)进数据卡片。
M.2 下午:清洗与划分
- [ ] 全量 CSV 读取 + 时间戳解析;
- [ ] 15 分钟网格重采样 + 长缺口断段(附录 J.3);
- [ ] 生理范围裁剪与离群点标记;
- [ ] 每文件缺口统计入缓存;
- [ ] patient-wise 划分(T2DM 80/20;T1DM 留一患者)落盘为固定 JSON,全项目复用同一划分。
M.3 傍晚:第一个基线
- [ ] last value + 线性外推两基线跑通(附录 J.6 分区间报告);
- [ ] 一张降采样可视化:任选 3 名患者的 3 天 CGM 曲线+进食事件竖线(肉眼校验数据合理性);
- [ ] 把本稿附录 K 的元信息 YAML 拷进实验配置;
- [ ] 提交首次 commit,写明数据版本与划分种子。
一天跑完上述清单,后续所有实验都在同一地基上做,结果可直接互比。
附录 N:本条目与其他写作规范的对照备忘
- frontmatter:title/subtitle/data_source 均 ≤255 字符,description ≤170 字符,双引号字段内无英文直引号(「」替代);
- schema_org:cr:RecordSet 为节点式
- "@type": "cr:RecordSet";relatedLink 未写入 frontmatter(消歧说明在正文 §10,R012 纪律); - 坑点编号:坑 1-坑 8(≥6 达标);
- DAIMS 表:§6.4;
- 章节完整性:§0-§10 全部存在,INFOBOX 存在;
- 互链 rid:全部 /0 占位,正文消歧说明不入 frontmatter。
附录 O:快问快答(三十秒版)
- Q:多大? 112 人 / 125 文件 / 128,170 个 CGM 点,15 分钟一格。
- Q:给什么? CGM 曲线 + 每餐称重记录 + 病历级临床特征。
- Q:什么人? 上海两医院门诊成人患者;T1DM 12 例(10 例 LADA)、T2DM 100 例。
- Q:要钱吗?要注册吗? 不要。CC BY 4.0,figshare 直链即下。
- Q:引什么? Sci Data 10:35 (2023),doi 10.1038/s41597-023-01940-7 + figshare 20444397 v3。
- Q:第一大坑? 文件数 > 患者数,划分必须按患者聚合。
- Q:HbA1c 单位? mmol/mol;71 ≈ 8.6%,换算 0.09148×IFCC+2.152。
- Q:能做 RL 吗? 离线 RL 或模拟器两段式;没有逐时胰岛素剂量,别做在线 RL。
- Q:最大的差异化? 真实生活 CGM + 确切进食时间与重量的「双记录」组合,且许可全开。
- Q:一句话定位? 中文真实世界 CGM 基准的「许可最宽、饮食最细」样本。
附录 P:写作侧自查留痕(收尾清单)
本节为编辑部内部留痕,公开发布时可折叠:
- [x] 显式拼接
cat .parts_*/*.md > 成稿(11 片按序),行数 ≥1200(R025); - [x] frontmatter 逐字段长度:title 90、subtitle 173、description 88、data_source 96(均 ≤255;description ≤170);
- [x] frontmatter 双引号行偶数计数自查通过;YAML safe_load 冒烟通过(R009/R010/R022);
- [x] schema_org 节点式 RecordSet;relatedLink 不入 frontmatter(R012);
- [x] title 含
| 千方病案医数集站点后缀(R006/S2); - [x] 坑点 8 则(≥6)、DAIMS 表、§0-§10 齐、INFOBOX 齐;
- [x] check_md + preflight 双零通过;
- [x] 私有区唯一:.parts_agent-c-shanghait1_1792168653_117136(时间戳+PID,R007/R008);
- [x] 零追加网络请求(复用前实例 FACTS,低中断预算 §2.5 条 7);
- [x] rid 占位 /0,待主会话入库后回填(R018)。
(全文完)
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- ieeepg — 共享标签:生理信号 / 可穿戴传感 / 时序数据 / 评测基准
- sisfall — 共享标签:生理信号 / 可穿戴传感 / 时序数据 / 评测基准
- wisdm — 共享标签:生理信号 / 可穿戴传感 / 时序数据 / 评测基准
- ou-dataset-t1d — 共享标签:生理信号 / 可穿戴传感 / 时序数据 / 真实世界数据
- wearable-exam-stress — 共享标签:生理信号 / 可穿戴传感 / 时序数据 / 评测基准
- bidsleep-dataset — 共享标签:生理信号 / 可穿戴传感 / 时序数据 / 评测基准
- d1namo — 共享标签:生理信号 / 可穿戴传感 / 时序数据 / 真实世界数据
- perg-ioba-dataset — 共享标签:生理信号 / 时序数据 / 真实世界数据
- ptb-xl-plus — 共享标签:生理信号 / 时序数据 / 真实世界数据 / 评测基准
- mhealth — 共享标签:生理信号 / 可穿戴传感 / 时序数据
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

