信息速览
INFOBOX — OSIC Pulmonary Fibrosis Progression 一屏速览
维度 内容 本质 Kaggle 2020 竞赛数据集(Featured Code Competition),非静态发布型数据集 主办 Open Source Imaging Consortium (OSIC),501©(3) 非营利联盟 时间线 开始 2020-07-07|报名截止 2020-09-29|提交截止 2020-10-06|闭赛 2020-10-07 状态 已结束(private LB 为 final standings) 规模 34,290 文件 / 23.99 GB;训练 176 患者 / 1549 行;公开测试 5 患者;隐藏测试约 200 影像 基线胸部 CT(DICOM),无像素级标注;单患者切片计数多源冲突 临床列 Patient / Weeks / FVC / Percent / Age / Sex / SmokingStatus(7 列) 任务 从基线 CT + 元数据预测 FVC 下降轨迹 + 置信度 σ(回归 + 不确定性) 指标 mLLL(修正拉普拉斯对数似然,负值越高越好) 冠军 Art(-6.8305);2nd yyykrk(-6.8311);3rd AIC-AI(-6.8336) 奖金 $55,000(1st $30k / 2nd $15k / 3rd $10k);17,224 参赛者 / 2,097 队 学术标杆 Fibrosis-Net -6.8188(宣称超冠军);Fibro-CoSANet -6.68 ± 0.31 获取 Kaggle 账号 + 接受竞赛规则下载; kaggle competitions download osic-pulmonary-fibrosis-progression许可 Subject to Competition Rules(非标准 SPDX) 库内互链 lung-pet-ct-dx(475)、lung-segment-mimic-cxr(613)、heart-lung-segmentations-data(610)、chest-imagenome(330)、mimic-cxr(16)
OSIC Pulmonary Fibrosis Progression 是一个"把医生最难回答的问题变成一道回归题"的数据集:肺纤维化患者的病情会从"长期稳定"一路滑到"快速恶化",但接诊时没人说得准某位患者会落在谱系的哪一端。2020 年,非营利联盟 OSIC 联合 Kaggle 发起挑战,给出 176 位患者的基线胸部 CT + 随访 1–2 年的肺功能测量(FVC),要求参赛者仅凭一次 CT 和基线数据,预测未来三个时间点的肺活量,并给出一个"我有多确定"的置信度。这道题至今仍是"医学影像 + 小样本 + 不确定性量化"的经典试炼场——冠军分数与亚军只差 0.0006,前二十名的差距不到 0.02,足以说明它有多难。
导语读法三则:
- 只想下数据跑通:直奔 §6 获取与许可——记住这是 Kaggle 竞赛数据,要账号+接受规则,且许可不是普通 CC。
- 关心怎么做/怎么评测:直奔 §3 任务与 §5 评测——mLLL 公式与"负值越高越好"的符号约定是必修课。
- 想做 SOTA 对标:直奔 §7 评估与基准——冠军 -6.8305 与 Fibrosis-Net -6.8188 是两个必须知道的锚点。
§0 导读:这个数据集解决什么问题
肺纤维化(pulmonary fibrosis)是肺组织瘢痕化导致肺容量进行性丧失的疾病,其中特发性肺纤维化(IPF, idiopathic pulmonary fibrosis)预后最差,确诊后中位生存期约 2–5 年。临床上的核心痛点是预后不可预测:同样是 IPF,有人多年稳定,有人半年内急转直下。医生无法仅凭一次就诊判断患者落在"稳定—恶化"谱系的哪一端,这既让患者承受巨大焦虑,也让临床试验难以按风险分层入组。
用力肺活量(FVC, forced vital capacity)——深吸气后用力呼出的最大气量(单位 ml)——是最常用的肺功能量化指标,由肺量计(spirometer)测量。疾病进展表现为 FVC 随时间的下降。于是,“预测预后"被具体化为"预测 FVC 的时间轨迹”。
OSIC 的这道竞赛题,正是把上述临床困境工程化为一个可评测的机器学习任务:
- 输入:患者基线胸部 CT(时间点 Week=0)+ 基线临床信息(年龄、性别、吸烟史、基线 FVC、Percent)。
- 输出:该患者未来三个随访时间点的 FVC 预测值,以及每个预测的置信度(标准差 σ,ml)。
- 为什么难:只有一次 CT(无纵向影像)、样本极少(176 人)、随访时点高度不规则、真实医学数据噪声大。
命名沿革上,数据集名称 = 主办方缩写(OSIC)+ 疾病(Pulmonary Fibrosis)+ 任务(Progression,进展)。需特别区分:“OSIC” 既指这个非营利联盟,又指其后建的庞大云数据仓库(OSIC Cloud Data Repository,宣称 >20,789 例扫描);本条目专指 2020 年 Kaggle 竞赛公开的 176 例训练子集,二者规模相差两个数量级,检索时极易混淆(详见 §8)。
§1 数据集速览:十问十答
Q1:这是什么类型的数据集?
Kaggle Featured Code Competition 的竞赛数据集,2020 年由 OSIC 联盟主办。它不是一个"论文附带的数据集",没有独立的数据描述论文,主引用就是 Kaggle 官方 citation。
Q2:多少样本?
训练集 176 位患者、1549 条 FVC 记录(train.csv 形状 (1549, 7));公开测试集 5 位患者;隐藏测试集约 200 位患者(官方称公私合计约 200,按 15:85 拆分)。
Q3:影像是什么?
患者基线(Week=0)的胸部 CT,DICOM 格式,按患者 ID 建文件夹,切片命名为 1.dcm、2.dcm…顺序编号。无病灶级/像素级标注——影像只是模型的输入特征,标签是肺功能数值。
Q4:临床元数据有哪些列?
7 列:Patient(唯一 ID)、Weeks(随访周次,可负)、FVC(ml)、Percent(预测 FVC 百分比)、Age、Sex、SmokingStatus。
Q5:要预测什么?
每位患者未来三个随访时间点的 FVC 值,外加一个置信度(标准差 σ)。提交列为 Patient_Week, FVC, Confidence。
Q6:怎么评分?
修正拉普拉斯对数似然(mLLL),同时对准确性和置信度打分:σ 在 70 ml 处截断,误差在 1000 ml 处截断,对所有测试点取平均。数值为负,越高越好。
Q7:现在还能下吗?
能。竞赛虽已在 2020-10-07 闭赛,但 Kaggle 数据页仍提供下载入口,需注册账号并接受竞赛规则。
Q8:许可是什么?
Kaggle 数据页标 “Subject to Competition Rules”——不是标准 SPDX 许可,使用受竞赛规则约束。
Q9:冠军分数是多少?
private LB 冠军 Art 为 -6.8305,亚军 yyykrk 为 -6.8311,季军 AIC-AI 为 -6.8336。
Q10:为什么现在还值得看它?
它是"医学影像 + 小样本 + 不确定性量化"的教科书级基准,衍生出 Fibrosis-Net、Fibro-CoSANet、Sky-Net 等一系列论文,也是多模态方法(影像+表格)的常用试验床。
§2 数据构成与规格
2.1 规模、来源与机构构成
OSIC Pulmonary Fibrosis Progression 由 Open Source Imaging Consortium(OSIC) 提供。OSIC 是一个 501©(3) 非营利合作组织,把学术界、产业界、慈善方与患者倡导团体联合起来,聚焦特发性肺纤维化(IPF)、纤维化性间质性肺病(ILDs)及其他呼吸系统疾病(含肺气肿类)的影像生物标志物研发。其自我的使命表述是"让放射科医生、临床医生与计算科学家共同改进基于影像的治疗"。
核心数字(Kaggle 数据页一手口径):
| 指标 | 数值 | 来源 |
|---|---|---|
| 文件总数 | 34,290 | Kaggle 数据页 |
| 数据体量 | 23.99 GB | Kaggle 数据页 |
| 文件类型 | dcm, csv | Kaggle 数据页 |
| 训练患者 | 176 | Kaggle notebook 日志 / ICCV 2021 |
| 训练记录行 | 1549 | Kaggle notebook 日志 |
| 公开测试患者 | 5 | Kaggle notebook 日志 / 讨论区 |
| 隐藏测试患者 | ~200 | Kaggle 官方描述 |
| 参赛者 / 队伍 | 17,224 / 2,097 | Kaggle 概览页 |
| 提交数 | 44,505 | Kaggle 概览页 |
机构构成:竞赛数据的具体采集机构清单未公开。与之形成对照的是 OSIC 官方云仓库——官网(2026-09-30 抓取)宣称已汇聚 >20,789 例匿名 HRCT 扫描及配套临床数据,来自多机构与多数据库。本竞赛的 176 例只是这一更大池子的一个子集,二者不可混为一谈。
2.2 影像规格与目录结构
目录结构(Kaggle 竞赛标准结构):
osic-pulmonary-fibrosis-progression/
├── train.csv # 训练集:完整 FVC 历史
├── test.csv # 测试集:仅基线测量
├── sample_submission.csv # 提交格式模板
├── train/ # 训练患者基线 CT
│ ├── ID00007637202177411956430/
│ │ ├── 1.dcm
│ │ ├── 2.dcm
│ │ └── ... # 顺序编号切片
│ └── ...
└── test/ # 测试患者基线 CT
├── ID00419637202311204720264/
│ ├── 10.dcm
│ └── ...
└── ...
关键约定:Patient 列的值必须与该患者 DICOM 文件夹名逐字一致(大小写敏感)。这是所有数据加载代码的硬约束,也是"Patient not found"类错误的头号来源。
切片计数存在明确的多源冲突(详见 §10 避坑清单与 §9 存照):
| 口径 | 数值 | 来源 |
|---|---|---|
| 全库 DICOM 图像 | ~30,000 | k1lib 教程 |
| 全库 CT 切片 | 24,350(另写 24,000+) | FibNet 论文 |
| Kaggle 数据页文件总数 | 34,290(含 csv) | Kaggle |
| 单患者切片范围 | “10–180” | Fibro-CoSANet |
| 首例患者实测 | 394 张 | Kaggle notebook 日志 |
首例患者 ID00007637202177411956430 的文件夹实测含 394 张切片,直接与 Fibro-CoSANet 的"10–180"表述冲突——这提示"每患者切片数"在不同论文中可能指不同预处理阶段(原始 vs 重采样后 vs 抽样后)。结论:切片总数无单一权威数,条目正文以官方 34,290 文件 / 23.99 GB 为主口径。
2.3 临床元数据与 FVC 分布
train.csv / test.csv 列结构(7 列):
| 列 | 类型 | 含义 |
|---|---|---|
| Patient | string | 患者唯一 ID(同 DICOM 文件夹名) |
| Weeks | int | 相对基线 CT 的周次(可为负) |
| FVC | float | 记录的肺容量(ml) |
| Percent | float | 该患者 FVC 占同类人群典型值的百分比 |
| Age | int | 基线时年龄 |
| Sex | string | Male / Female |
| SmokingStatus | string | Ex-smoker / Never smoked / Currently smokes |
FVC 统计摘要(训练集,Kaggle notebook 日志实测):
| 统计量 | 数值 |
|---|---|
| 均值 | 2690.48 ml |
| 最小值 | 827 ml |
| 偏度 | 0.584 |
| 缺失值 | 0 / 1549(0.0%) |
| 最大值 | 6399 ml(第三方转载口径) |
FVC 测量的时间分布:每位患者的随访次数不等——最常见为 9 次(132 人),其次 8 次(25 人)、10 次(10 人)、7 次(7 人)、6 次(2 人)。Weeks 可以为负值,即部分记录早于基线 CT,这是真实临床数据时序不规则的直接体现。
Weeks 的取值范围:官方文档示意预测周次"typically weeks 1–133"(DeepWiki 口径),说明随访跨度可达两年以上。
2.4 时间维度:为什么"基线单 CT"是个硬约束
本数据集最关键的结构性事实是:只有一次 CT。训练集虽然提供完整 FVC 历史,但影像只有 Week=0 的那一次;测试集进一步只给基线 FVC 一个值。这意味着:
- 无法用"影像的纵向变化"来预测功能下降——模型必须从单帧基线影像推断未来功能轨迹。
- 影像特征与 FVC 之间的关联极弱且间接(影像上的蜂窝肺、网格影等模式与功能下降相关,但个体差异巨大)。
- 这解释了为什么冠军解法里表格特征(Quantile Regression)与影像特征(EfficientNet)需要融合,且移除 Percent 相关特征反而在 private LB 上大幅提升(Percent 是"按人群典型值算出的相对值",可能引入跨患者泄漏)。
2.5 与 OSIC 云仓库的关系边界
必须反复强调的边界:本条目描述的 176 例 ≠ OSIC 云仓库的全部数据。
| 维度 | Kaggle 竞赛数据集(本条目) | OSIC Cloud Data Repository |
|---|---|---|
| 规模 | 176 训练患者 + ~200 测试 | >20,789 例匿名 HRCT(2026 时点) |
| 访问 | Kaggle 账号 + 接受竞赛规则 | 面向成员/合作研究(官网表述) |
| 形态 | 基线单 CT + FVC 随访 | 纵向 HRCT + 临床数据 |
| 用途 | 竞赛基准 / 学术复现 | ILD 影像生物标志物研发 |
把两者混引会严重高估可用样本量,是检索者最常犯的身份错误之一。
2.6 数据加载的实操细节与常见坑
把 DICOM 从磁盘读进模型,本数据集有几个独特之处,值得单独说明。
(1) 患者目录名即主键
DICOM 文件夹名(如 ID00007637202177411956430)就是 Patient 列的取值。所有加载代码都靠这个字符串做连接键。一旦大小写或空格不一致,就会得到"患者找不到"或"空数据集"。
(2) 切片顺序不能靠文件名排序
DICOM 切片常命名为 1.dcm、2.dcm……看似可字符串排序,但体数据的物理顺序应由 ImagePositionPatient(患者坐标)或 InstanceNumber(实例号)决定,而非文件名。若直接用字符串排序,可能得到上下颠倒的体数据。规范做法是读取每个 DICOM 的 ImagePositionPatient 第三分量(z 坐标)后按 z 排序。
(3) 体素间距(spacing)不一致
不同患者的层厚与像素间距不同。若不重采样到统一间距,卷积核看到的"物理尺度"就不同,模型会学到无意义的尺度差异。常见做法是重采样到各向同性(如 1×1×1 mm)。
(4) CT 的 HU 值窗宽窗位
DICOM 像素值是 Hounsfield 单位(HU),范围可达 −1024 到 3000 以上。肺窗(如 level −600 / width 1500)能把肺实质的病变模式凸显出来,是多数解法的标准预处理。
(5) 每患者切片数差异巨大
从一篇论文的"10–180"到首例实测的 394,切片数跨度大。多数解法会沿 z 轴抽样固定数量的切片(如 30 张)或取最大切片(max projection),以统一送入 2D CNN。
(6) 内存与时间预算
原始数据 23.99 GB,隐藏测试约 200 人。Kaggle 竞赛对 GPU notebook 限制 4 小时。若不做缓存或降采样,很容易超时。冠军解法把推理时间压到 3 分钟,靠的是固定分位数(0.5)而非穷举选择。
2.7 一个最小可运行的数据巡检脚本
下面的片段展示如何在不加载影像的前提下,先把临床表格摸清(这是任何复现工作的第一步)。
import pandas as pd
train = pd.read_csv("train.csv")
# 1) 规模核对(应为 (1549, 7) 与 176 位患者)
print("shape:", train.shape)
print("n_patients:", train["Patient"].nunique())
# 2) 列类型与缺失
print(train.dtypes)
print("missing FVC:", train["FVC"].isna().sum())
# 3) FVC 分布
print(train["FVC"].describe()) # 均值应约 2690,最小约 827
print("skew:", train["FVC"].skew()) # 约 0.584
# 4) 每患者随访次数分布
print(train.groupby("Patient")["Weeks"].count().value_counts().head())
# 5) 基线行(Weeks 最接近 0)——注意 Weeks 可为负
base = train.loc[train.groupby("Patient")["Weeks"].apply(
lambda s: (s.abs()).idxmin())]
print(base[["Patient", "Weeks", "FVC"]].head())
# 6) 分类列取值
print(train["Sex"].value_counts())
print(train["SmokingStatus"].value_counts())
为什么先做这一步:176 例、1549 行的小表,若先把统计口径核清楚(患者数 176 还是 177、行数 1549 还是 1550),就能避免把社区口径差异带进结论。附录 H 的核查清单与此呼应。
2.8 数据体量的构成拆解
23.99 GB 里绝大多数是影像。粗略构成:
| 部分 | 占比 | 说明 |
|---|---|---|
| train/ DICOM | 主导 | 176 位训练患者的基线 CT |
| test/ DICOM | 小 | 5 位公开测试患者的基线 CT |
| *.csv | 微乎其微 | train.csv/test.csv/sample_submission.csv 合计 <1 MB |
因此,若只做表格建模,-f train.csv 下载几乎瞬间完成;一旦需要影像,就必须承受完整 23.99 GB 的下载与解压成本。这也是许多文献"只用表格数据"的工程原因——不是表格更重要,而是影像成本高。
§3 任务与标注:从临床问题到可评测目标
3.1 任务的形式化定义
把临床困境翻译成机器学习语言,本竞赛是一个带不确定性的多模态时序回归问题:
- 个体:患者 i,i ∈ {1, …, N_train},N_train = 176。
- 输入(预测时可见):
- 基线胸部 CT 影像 I_i(DICOM 体数据,Week = 0)
- 基线临床向量 x_i = (Age, Sex, SmokingStatus, FVC_base, Percent_base, Weeks_base)
- 输出(每患者):对若干目标周次 w 预测 (FVC_i(w), σ_i(w)),其中 σ 是预测的标准差,刻画置信度。
- 监督:训练集提供完整随访历史 {(w_ij, FVC_ij)},测试集只给基线一行。
3.2 为什么"预测每个可能的周次"
官方有一条容易被忽略但极其重要的设计:“To avoid potential leakage in the timing of follow up visits, you are asked to predict every patient’s FVC measurement for every possible week. Those weeks which are not in the final three visits are ignored in scoring.”
拆解其动机:
- 如果只要求预测"最后三个随访时点",模型可能通过"哪些周次被问"本身反推出随访节奏,形成信息泄漏。
- 因此要求对所有可能周次都给出预测,评分时只取最后三次的真实随访。
- 这实际把任务变成"预测整条 FVC 轨迹曲线",只是评分落在其中三个点上。
对建模的影响:参赛者需要为每个测试患者生成一个跨多周次的预测序列(或至少覆盖官方指定的目标周次集合),而不是孤立的三个数字。多数解法采用"预测下降斜率(slope)+ 基线值"的参数化方式(如 Sky-Net 的线性衰减模型)。
3.3 "标注"的本质:没有影像标注
与分割/检测类医学影像数据集不同,本数据集没有任何像素级或病灶级标注:
- 影像 DICOM 仅含患者自身的采集元数据(层厚、像素间距等),无放射科医生画的掩码或框。
- 唯一的"标签"是肺量计测得的 FVC 数值——一个标量时间序列。
- 因此,"标注质量"问题在本数据集上转化为"肺功能测量的一致性"问题:FVC 测量本身存在误差,且随访时点的选择并非随机。
这一特性决定了本数据集适合预测/预后建模研究,而不适合分割/检测研究。若研究者需要 OSIC 影像的器官分割标签,应转向下游衍生数据集(见 §6.3 的 torch-em 链)。
3.4 数据的天然缺陷(官方承认的挑战)
Kaggle 官方描述明确把以下因素列为"挑战的一部分"而非 bug:
- 随访时点不规则:初始测量相对 CT 的时间、到预测时点的间隔,每位患者都不同。
- 真实医学噪声:FVC 测量重复性有限,且临床干预(治疗)会改变轨迹,而治疗信息未提供。
- 样本极小:176 人,且随访次数不均(多数 9 次,少数仅 6 次)。
- 极端形状:多数患者 FVC 近似线性下降,少数出现骤降或反常上升,模型难以兼顾。
这些缺陷共同解释了一个现象:竞赛前 20 名的 mLLL 差距不到 0.02,分数对随机种子与集成方式极其敏感。
§4 竞赛流程与参与规模
4.1 关键时间节点
| 事件 | 日期(UTC) |
|---|---|
| 竞赛开始 | 2020-07-07 |
| 报名截止(Entry deadline) | 2020-09-29 |
| 组队合并截止(Team Merger) | 2020-09-29 |
| 最终提交截止 | 2020-10-06 |
| 闭赛(private LB 定格) | 2020-10-07 |
双口径存照:Kaggle 概览页 timeline 写 “October 6, 2020 - Final submission deadline”;多篇第三方转载(GitHub 仓库、教程)写 “September 30, 2020”。本条目以 Kaggle 官方页 10-06 为准,09-29 为报名与组队截止日。
4.2 赛制:Code Competition(同步重跑)
本竞赛是 Code Competition,提交方式为 Notebook,而非上传预测文件。硬约束(Kaggle 页):
- CPU Notebook ≤ 9 小时运行时间
- GPU Notebook ≤ 4 小时运行时间
- 不提供 TPU(可用于训练,不可用于提交)
- 无互联网访问
- 允许使用自由公开的外部数据(含预训练模型)
- 提交文件必须命名为
submission.csv
“同步重跑”(synchronous rerun)的含义:参赛者拿到的 test/ 只是一个"小代表集"(从训练集拷贝而来,5 位患者),用于调试格式;真正提交时,Kaggle 会用**未见过的隐藏测试集(约 200 患者)**重跑 notebook。这引出著名的"时间预算陷阱"——公开样本 5 人、隐藏测试约 200 人,处理时间约放大 40 倍(讨论区 quadcore/Richard Epstein 原话)。
4.3 参与规模与奖金
| 指标 | 数值 |
|---|---|
| 参赛者(Entrants) | 17,224 |
| 参与者(Participants) | 2,530 |
| 队伍(Teams) | 2,097 |
| 提交数(Submissions) | 44,505 |
| 奖金池 | $55,000 |
| 冠军奖 | $30,000 |
| 亚军奖 | $15,000 |
| 季军奖 | $10,000 |
17,224 名参赛者对应 2,097 支队伍,说明绝大多数报名者是"跑通即走"的参与者——这是 Kaggle 医学影像竞赛的典型漏斗形态。
4.4 排行榜的双层结构
Kaggle 采用 public LB / private LB 双层:
- public LB:用测试数据的约 15% 计算,实时显示,但与本地验证几乎不相关(1st place 作者原话:“the public leaderboard score was based only on 15% of test data and didn’t correlate with the validation at all”)。
- private LB:用约 85% 计算,闭赛时定格,决定最终排名与奖金。
这一结构的后果:参赛者无法靠 public LB 可靠地选择模型,只能靠交叉验证 + 直觉,导致"过拟合 public LB"的风险极高。这被认为是本竞赛"分数极度密集"(前 20 名差 <0.02)的重要原因之一。
§5 评测指标:修正拉普拉斯对数似然(mLLL)
5.1 为什么不用 RMSE
如果用 RMSE,模型只需给出一个点预测,不需要表达"有多确定"。但临床预后恰恰需要不确定性:告诉患者"我猜你 12 周后 FVC 约 2500 ml,误差范围 ±100"远比单点 2500 有用。为此,竞赛设计了 mLLL,让"准确"与"自信"同时进入打分。
5.2 公式(Kaggle 官方口径)
对每个真实 FVC 测量,参赛者预测 FVC 和置信度(标准差 σ):
σ_clipped = max(σ, 70)
Δ = min(|FVC_true − FVC_pred|, 1000)
metric = − (√2 · Δ) / σ_clipped − ln(√2 · σ_clipped)
评分 = 对所有测试集 Patient_Week(每患者三个)取平均。
5.3 三个设计要点解读
(1) 误差截断在 1000 ml:Δ 上限为 1000,避免个别离谱的大误差把整体分数"带崩"。极端但少见的大错,惩罚被限幅。
(2) 置信度截断在 70 ml:σ 下限为 70,反映 FVC 测量的近似不确定度——即"最自信也不过 ±70 ml",防止模型谎报极小的 σ 来骗分。
(3) 双向激励:公式第一项惩罚"预测不准"(Δ 大则罚),第二项惩罚"过度自信或过度保守"(σ 偏离最优会罚)。因此最优策略不是"猜得最准",而是"诚实地报告不确定性"。
5.4 符号约定:一个必须澄清的双口径
这是引用本指标时最容易翻车的地方:
- Kaggle 官方页:“metric values will be negative and higher is better”(数值为负,越高越好)。
- 大量学术论文(Fibro-CoSANet 等):把该量写作 “LLL_m”,称 “lower is better”——因为它是对数似然,似然越大越好,而对数似然为负时,越接近 0(越大)越好;论文有时表述为"LLL 值越低越好"是因为混淆了"损失"语境。
结论:数学上完全一致——-6.8305 优于 -6.8400。但当论文说"lower is better"时,其表格里的数值仍遵循"越大越好"。引用时必须写明本条的符号约定,否则会得出相反结论(详见 §10 坑 5)。
5.5 分数尺度实感
由于是对数似然,分数变化是对数尺度:
| 分数差 | 含义 |
|---|---|
| 0.0006 | 冠军与亚军之差(Art -6.8305 vs yyykrk -6.8311) |
| 0.0031 | 冠军与季军之差(vs AIC-AI -6.8336) |
| 0.0117 | Fibrosis-Net 宣称超过冠军的幅度(-6.8188) |
| 0.030 | 冠军(-6.8305)与前 20 名(约 -6.8422)的范围 |
在这个尺度上,"提升 0.01"已经是重大突破,因为对数尺度上的差距对应的是误差分布的实质改善。这解释了为什么 Fibrosis-Net 宣称 -6.8188 超过冠军是受关注的成果,也解释了为什么 Kaggle 前 20 名的差距小到几乎无意义。
3.5 一个具体的"图像信息有多弱"思维实验
为什么说影像信息弱?做一个简化的推理:
- 训练集里,FVC 与年龄、性别、身高体型强相关(肺容量本身取决于体格)。
- 一个 79 岁男性、基线 FVC 2315 ml 的患者,其"典型下降速率"已经由人群统计决定了大部分。
- 影像能提供的"增量信息"是:肺里有多少纤维化/蜂窝影,这些是否预示更快下降。
- 但在 176 例上,影像特征与"下降速率"的相关性很弱,容易被噪声淹没。
这解释了两个现象:(1) 只用户表格的 Quantile Regression 在冠军融合里权重更高;(2) 把影像硬塞进模型常带来过拟合。对本数据集,“影像单独建模"通常不如"表格 + 影像轻量融合”。
3.6 患者级划分的不可妥协性
同一患者有多行随访记录(最多 9 行)。如果按"行"随机划分训练/验证,同一位患者的其他随访行会出现在验证集里,造成时序泄漏——模型只要记住"这位患者大概什么水平"就能作弊。
因此,任何可信的本地评测必须按 Patient 分组划分(GroupKFold 等)。这也是 Kaggle 官方要求"预测每一个可能周次"的同一动机——把泄漏路径堵死。忽略这一点,本地 CV 会虚高到接近 0 误差的假象。
3.7 标签噪声来源拆解
FVC 作为标签,其噪声来自多个环节:
- 测量重复性:肺量计测量本身有 ±70–150 ml 级别的重复变异(这也是 mLLL 把 σ 下限设在 70 的依据)。
- 操作者依赖:不同技师指导用力呼气的一致性不同。
- 治疗干预:抗纤维化药物(如吡非尼酮、尼达尼布)会改变下降速率,但治疗信息未提供。
- 急性加重:个别患者出现骤降,破坏"平滑下降"假设。
- 随访时点选择:复诊时点非随机,可能受病情变化驱动(信息性缺失)。
这些噪声共同意味着:追求 RMSE 意义上的"精准"是不现实的;理解并建模不确定性(mLLL 的强项)才是正道。
§4B 竞赛流程补遗:闭赛后的数据生命与横向定位
4.5 为什么 Kaggle 闭赛后数据仍"活着"
许多竞赛数据集在闭赛后变成"僵尸数据",但 OSIC 是个反例,原因有三:
- 数据页长期可达:Kaggle 保留竞赛数据页与下载入口,后来者仍能获取。
- 任务有持续的科学价值:ILD 预后预测是真问题,不依赖竞赛热度。
- 有新解法的对标需求:新多模态/不确定性方法需要一个有公开 leaderboard 的试炼场,OSIC 恰好符合。
后果:本数据集在学术论文中被持续引用(Fibrosis-Net 2021、Fibro-CoSANet 2021、Poulou 2022、ICCV 2021 等),引用曲线不随竞赛结束而断崖。
4.6 竞赛页面的"Author & Citation"解读
Kaggle 竞赛的 citation 常被误读为"作者列表"。实际上:
- 列出的名字(Ahmed Shahin、Carmela Wegworth、Will Cukierski 等)混合了 OSIC 方代表与 Kaggle 平台方(竞赛运营)。
- Will Cukierski 是 Kaggle 竞赛团队的常见署名,代表平台侧;其余多为项目/数据对接方。
- 这些名字不等于数据的临床采集者或标注者——后者未公开。
引用时宜写作"OSIC Pulmonary Fibrosis Progression, Kaggle, 2020",而非把 citation 名字当成数据集"作者"。
4.7 与同期 Kaggle 医学竞赛的横向位置
2020 年前后,Kaggle 涌现多个医学影像竞赛(如 RSNA 系列、SIIM 系列)。OSIC 与它们的差异:
| 竞赛 | 模态 | 任务 | 特点 |
|---|---|---|---|
| OSIC PF Progression | CT + 表格 | 时序回归 + 不确定性 | 样本极小(176),评分含置信度 |
| RSNA 系列 | X 光/CT | 检测/分类 | 样本大,标注框/类 |
| SIIM 系列 | 影像 | 分割/分类 | 像素级标注 |
OSIC 的独特性:它是少数把"不确定性"直接纳入评分的 Kaggle 医学竞赛,也是样本量最小的一批。这使它成为"小样本 + 校准"研究者的偏爱。
§5B 评测指标补遗:分布选择与自评纪律
5.6 为什么是拉普拉斯分布而非高斯
mLLL 名称里的"Laplace"并非随意选择:
- 高斯(正态)分布的对数似然含平方项(误差²),对离群点惩罚很重且增长快。
- 拉普拉斯分布的对数似然含绝对值项(|误差|),对离群点更宽容(长尾)。
- 医学测量误差常有厚尾(偶发大偏差),拉普拉斯更贴合实际。
- 这也与公式里"误差按 |Δ| 线性进入"一致——第一项是 −(√2·Δ)/σ,线性于 Δ。
因此 mLLL 的"温和"不是设计疏忽,而是为厚尾医学误差量身定制的选择。
5.7 与 MAE / RMSE 的关系速查
| 指标 | 惩罚形式 | 对离群点 | 是否含不确定性 |
|---|---|---|---|
| MAE | 线性 | 温和 | 否 |
| RMSE | 平方 | 严厉 | 否 |
| mLLL | 线性 + 校准项 | 温和(有截断) | 是 |
一句话:mLLL ≈ MAE 的似然化版本 + 不确定性校准奖惩。想在 OSIC 上拿高分,既要把误差控住,更要把 σ 校准好。
5.8 一个实操建议:如何自评而不误判
- 必做:用 GroupKFold 按患者划分,报告 mLLL 的均值与方差。
- 慎做:用公开 test/(5 人)报告指标——样本太小,无统计意义。
- 对标:把自测 mLLL 与"接近冠军的 CV"比较,而非与 Kaggle private LB 直接比(评测集不同)。
- 记录:写清 σ 的估计方式(分位数法、直接回归、MLE 等),因为它直接决定 mLLL。
§6 获取与许可:竞赛数据的门怎么进
6.1 一手获取路径
主入口:Kaggle 竞赛数据页 https://www.kaggle.com/c/osic-pulmonary-fibrosis-progression/data
步骤:
- 注册/登录 Kaggle 账号。
- 打开竞赛页,点击 “Join Competition”,接受竞赛规则(这是许可的核心动作)。
- 在 Data 标签页下载,或使用 Kaggle API:
# 需先配置 ~/.kaggle/kaggle.json(API token)
kaggle competitions download osic-pulmonary-fibrosis-progression
unzip osic-pulmonary-fibrosis-progression.zip -d ./osic/
仅取临床数据(体量小,许多研究者只做表格建模):
kaggle competitions download osic-pulmonary-fibrosis-progression -f train.csv
当前状态:竞赛已于 2020-10-07 闭赛,但数据页仍提供下载入口(无需参加比赛即可接受规则并下载)。这是"闭赛但数据仍可用"的常见 Kaggle 形态。
6.2 许可:一句话说清但边界模糊
Kaggle 数据页的 License 字段写的是 “Subject to Competition Rules”,而非任何标准 SPDX 许可(不是 CC、不是 MIT)。这意味着:
- 使用受竞赛规则约束,规则页面是 https://www.kaggle.com/c/osic-pulmonary-fibrosis-progression/rules。
- 竞赛规则通常允许用于研究/学习,但对再分发、商业使用、重新发布原始数据有严格限制。
- 由于不是标准开放许可,"能否二创、能否再发布、能否商用"没有一句话答案,需自行阅读规则页原文。
重许可口径冲突(必须存照):SAS Viya 示例仓库(github lleytonse/Pulmonary-Fibrosis-Progression)在 README 中称 “This demo uses an adapted Open Source Imaging Consortium data set licensed under CC BY-SA 4.0”,并发布了一个"丢弃 DICOM 只留 CSV"的衍生版。这是下游使用者的再许可声明,与 Kaggle 一手 “Subject to Competition Rules” 不一致。本条目以 Kaggle 一手口径为准,并把该冲突作为许可边界的风险点记录。任何基于 OSIC 数据再发布的资产,其许可状态都应回溯到 Kaggle 规则页核实。
6.3 镜像与衍生获取链
由于原始数据 23.99 GB 且需账号,社区发展出多条获取/衍生链:
链 1:torch-em 的 osic_pulmofib 数据集模块(Constantin Pape 维护)
该模块自动:
- 调
download_source_kaggle(..., competition=True)下载原始竞赛数据; - 同时下载配套的分割标签数据集
sandorkonya/ct-lung-heart-trachea-segmentation; - 将 DICOM 预处理为 NIfTI,输出器官分割标签(heart=1 / lung=2 / trachea=3)。
这是把 OSIC 从"预测数据集"改造为"分割数据集"的代表性案例——若你需要 OSIC 影像的像素级标签,这条路比原始竞赛数据更直接。
链 2:Kaggle 数据集镜像:sandorkonya/ct-lung-heart-trachea-segmentation(分割标签,独立页面与独立许可)。
链 3:第三方 notebook 缓存:如 osic-cached-dataset、osic-autoencoder 等 Kaggle Dataset,是参赛者上传的预处理版(体积更小,但版本与许可需自行核)。
链 4:CSV-only 衍生版:如 SAS Viya 仓库的 drop-DICOM 版、各 GitHub 仓库中的 train.csv(约 0.08 MB,可按需引用)。
无官方 HuggingFace 直链,无独立 DOI(数据集本体未归档到 Zenodo/figshare)。
6.4 OSIC 云仓库:更大的官方池子(另一扇门)
与竞赛数据并列的是 OSIC Cloud Data Repository。官网(2026-09-30 抓取)表述:
“OSIC has built the world’s largest and most diverse global data repository for ILDs, with more than 20,000 anonymized HRCT scans and accompanying clinical data committed from multiple institutions and databases to date.”
具体计数为 20,789 例(“Committed goal surpassed: 15,000”)。面向成员与合作研究开放。
待核:OSIC 官网数据子页(osicild.org/data/)在 2026-09-30 抓取时返回 404,具体申请表单与访问流程未能从官网直接抓证。本条目仅确证"面向成员研究"这一首页表述,细化流程标为遗留疑点。
6.5 AI-Ready 评估:为什么它不是标准 AI-Ready 数据集
用 AI-Ready 的视角审视本数据集:
- 优点:临床元数据干净(0 缺失)、列语义清晰、任务定义明确、有公开 leaderboard 与大量复现解法。
- 缺点:许可非开放(Subject to Competition Rules)、无独立元数据文档、切片计数口径混乱、样本极小、无影像标注。
- 结论:它是优秀的基准数据集,但不是即插即用的开放训练集。研究者应把它当作"评测/对照"用途,而非"大规模训练"用途。
§7 评估与基准:分数悬崖与学术标杆
7.1 竞赛排行榜(private LB final)
| 名次 | 队伍 | mLLL | 提交数 |
|---|---|---|---|
| 1 | Art | -6.8305 | 16 |
| 2 | yyykrk | -6.8311 | 7 |
| 3 | AIC-AI | -6.8336 | 5 |
| 4 | Trust CV | -6.8347 | 18 |
| 5 | LukeReijnen | -6.8362 | 25 |
| 6 | Y.Nakama | -6.8363 | 26 |
| 7 | Helgi | -6.8363 | 44 |
| 8 | Alexey Petrov | -6.8374 | 1 |
| 9 | Risers | -6.8385 | 203 |
| 10 | Amed | -6.8388 | 90 |
读表要点:
- 冠军 Art 仅 16 次提交,第 8 名 Alexey Petrov 仅 1 次提交就进前 10——说明"少而精"的强 baseline(如表现优异的线性/表格模型)在本任务上极具竞争力。
- 前 10 名分数跨度仅 0.0083;前 20 名约 0.0117。分数极其密集。
- “Risers” 提交了 203 次仍排第 9,说明穷举调参收益有限。
7.2 1st place 解法剖析(Art / Artem Kulakov)
1st place 的公开仓库(github jberros/osic-pulmonary-fibrosis-progression)披露了核心思路:
双模型融合:
- EfficientNet b5(影像分支):输入窗宽窗位处理后的肺部 CT 切片,训练 30 epochs,用来预测 FVC 下降的斜率(beta)。
- Quantile Regression(表格分支):只用表格数据,训练 600 epochs,输出分位数。
关键 trick:作者"移除了所有 Percent 相关特征",并称这在 private LB 上带来巨大提升。推测原因:Percent 是按人群典型值归一化的相对量,可能隐含跨患者的信息泄漏或引入与目标无关的偏置。
集成策略:给 Quantile Regression 略高权重;把 EFNet 的分位数选择固定为 0.5(原方案按 loglikelihood 选分位数耗时且效果不佳),使推理时间缩到 3 分钟。
佐证"比赛之难":作者自述"public LB 只基于 15% 测试数据,且与验证完全不相关,选择最优模型非常困难"。其一个"朴素"的 simple-logreg 也进了铜牌区。
7.3 学术标杆:Fibrosis-Net
Fibrosis-Net(arXiv:2103.04008,Alexander Wong 等,DarwinAI + University of Waterloo,2021)是引用最广的下游基准工作:
- 架构:机器驱动设计探索(machine-driven design exploration)得到的定制 CNN,输入 CT + 初始肺量计测量 + 临床元数据,预测 FVC。
- 成绩:mLLL -6.8188,宣称超过 Kaggle 1st place(-6.8305)0.0117(在 mLLL 的对数尺度上属显著差距)。
- 可解释性验证:用 GSInquire 解释模型决策,验证其依赖 CT 上的 **honeycombing(蜂窝影)**等临床相关视觉指标,而非填充伪影等无关特征。
- 定位:开源(github darwinai/FibrosisNet),但作者声明"尚非生产可用的临床评估方案"。
对照表(Fibrosis-Net 论文 Table 2):
| 方法 | mLLL |
|---|---|
| Kaggle 1st place | -6.8305 |
| Kaggle 2nd place | -6.8311 |
| Kaggle 3rd place | -6.8336 |
| Fibrosis-Net | -6.8188 |
注意:Fibrosis-Net 的 -6.8188 是在其自建的测试队列上评测,与 Kaggle private LB 的评测集不完全相同,直接比较需谨慎。
7.4 其他学术基准
| 工作 | 方法要点 | 成绩 |
|---|---|---|
| Fibro-CoSANet(arXiv:2104.05889) | 卷积自注意力网络,多模态融合(CT + 人口学 + 肺体积) | LLL_m -6.68 ± 0.31(多模态);CT 单独 -6.69;表格单独 -6.75 |
| Sky-Net(ACM 10.1145/3590837.3590883) | 线性衰减 FVC 模型 + Sobel 边缘检测量化蜂窝肺程度 | 提出 FVC_we = slope_n·week + FVC_base 参数化 |
| Poulou et al. 2022(IEEE DESSERT 10018624) | sigmoid 方程法(仅用三个参数) | LLL -6.8590(铜牌区) |
| Usvyatsov et al. ICCV 2021 | 把 OSIC 作为低秩嵌入方法的多模态评测集之一 | 方法性引用 |
Fibro-CoSANet 的可迁移结论:多模态(影像+表格)融合(-6.68)显著优于单模态(CT -6.69 / 表格 -6.75)——这是本数据集最重要的方法学启示之一:影像单独信息量有限,必须与临床元数据结合。
7.5 基准使用建议
- 想做 SOTA:先复现 Kaggle 冠军(-6.8305),再对标 Fibrosis-Net(-6.8188,注意测试集差异)。
- 想验证多模态方法:Fibro-CoSANet 的"多模态 vs 单模态"对照表是现成的实验设计模板。
- 想用公开测试集:公开 test/ 只有 5 人,不足以做可靠评测,必须自行从 train.csv 划分患者级验证集。
§8 生态与影响:一个基准如何辐射
8.1 在 ILD 影像 AI 谱系中的位置
OSIC Pulmonary Fibrosis Progression 是首个面向间质性肺病的公开计算挑战(OSIC 官网表述:“the first-ever computational challenge for interstitial lung diseases”)。它的生态影响体现在三个方向:
- 催生预后建模研究线:Fibrosis-Net、Fibro-CoSANet、Sky-Net 等一批论文以它为标准测试床。
- 成为多模态方法的常用实验场:因其"影像 + 表格"的双模态结构,被用作融合方法的对照数据集(如 ICCV 2021 的低秩嵌入工作)。
- 推动分割衍生数据集:社区把 OSIC 影像加上器官分割标签,产出
ct-lung-heart-trachea-segmentation等下游资产。
8.2 与 OSIC 后续工作的关系
OSIC 并未止步于这一次竞赛。其后续方向(官网口径)包括:
- OSIC Cloud Data Repository:从 176 例扩展到 >20,789 例,成为"世界最大、最多样的 ILD 数据库"。
- lung cancer screening 数据的 ILA/ILD 风险评估(Siemens Healthineers 合作会议口径)。
- 推进定量的间质性肺异常(ILA)进展分类算法(Dr. Bruno Hochhegger 在西门子活动的报告主题)。
可见该竞赛是 OSIC 更大数据战略的起点而非终点。
8.3 库内可互链条目
本条目与千方病案医数集库内以下条目构成可互链关系:
同源影像模态(胸部 CT / 肺):
| 条目 | rid | 互链理由 |
|---|---|---|
| lung-pet-ct-dx | 475 | 肺部 PET/CT 影像,同器官模态 |
| lung-segment-mimic-cxr | 613 | 肺部分割,同器官任务 |
| heart-lung-segmentations-data | 610 | 心肺分割,OSIC 分割衍生链的直接相关 |
| rider-lung-ct | 267 | 肺部 CT 影像 |
| chest-imagenome | 330 | 胸部影像 + 结构化标注 |
同范式(影像 + 临床多模态):
| 条目 | rid | 互链理由 |
|---|---|---|
| mimic-cxr | 16 | 胸部影像 + 报告,多模态范式原型 |
| mimic-cxr-jpg | 617 | MIMIC-CXR 的 JPG 版 |
| padchest | 117 | 大规模胸部 X 光 + 元数据 |
| covid-ct | 307 | CT + 临床的疾病预测范式 |
| nih-chestx-ray14 | 15 | 胸部影像基准(含挑战赛血统) |
时序/生理测量范式:
| 条目 | rid | 互链理由 |
|---|---|---|
| ct-rate | 546 | 速率/时序类医学数据 |
| apnea-ecg(库内已有) | — | 生理信号时序回归的同类范式 |
推荐互链优先级(相关性从高到低):lung-pet-ct-dx(475) > lung-segment-mimic-cxr(613) > heart-lung-segmentations-data(610) > chest-imagenome(330) > rider-lung-ct(267) > mimic-cxr(16)。
8.4 对使用者的战略意义
- 对 ILD 研究者:这是绕不开的历史基准,任何新方法的对照实验都应有它。
- 对多模态方法研究者:它是"影像信息弱、表格信息相对强"的极端案例,能检验融合方法是否真有效。
- 对不确定性量化研究者:mLLL 是一个把"置信度"直接纳入评分的现成设计。
- 对数据工程研究者:它是"竞赛数据集 vs 静态数据集"两种范式的活标本——闭赛后数据仍可用,但缺乏数据描述论文,元数据依赖社区反推。
7.6 评分设计的数学直觉(动手算一遍)
为了真正理解 mLLL 为什么"惩罚两头",可以用两个极端情形手算。
情形 A:预测完全正确,σ 合理
设 FVC_true = 2500,FVC_pred = 2500,σ = 100。
- σ_clipped = max(100, 70) = 100
- Δ = min(|2500 − 2500|, 1000) = 0
- metric = −(√2 · 0)/100 − ln(√2 · 100) = 0 − ln(141.42) ≈ −4.95
情形 B:预测完全正确,但 σ 报得很大
设 FVC_pred = 2500,σ = 900。
- σ_clipped = 900
- Δ = 0
- metric = 0 − ln(√2 · 900) = −ln(1272.8) ≈ −7.15
结论:明明预测全对,却因为"不敢打包票"从 −4.95 掉到 −7.15,损失 2.2 分。这就是公式第二项的作用——过度保守同样被罚。
情形 C:预测错误,但 σ 也大(“我早说不准”)
设 FVC_true = 2500,FVC_pred = 3000,σ = 500。
- σ_clipped = 500
- Δ = min(500, 1000) = 500
- metric = −(1.414 · 500)/500 − ln(1.414 · 500) = −1.414 − ln(707.1) ≈ −1.414 − 6.56 = −7.97
情形 D:预测错误,但 σ 很小(“自信地错”)
设 FVC_pred = 3000,σ = 80。
- σ_clipped = 80
- Δ = 500
- metric = −(1.414 · 500)/80 − ln(113.14) = −8.84 − 4.73 = −13.57
结论:同样是错 500 ml,“自信地错”(−13.57)比"谦虚地错"(−7.97)惨得多,差 5.6 分。这是公式第一项的放大效应——σ 越小,误差惩罚越重。
四条情形的统一启示:
| 情形 | FVC 误差 | σ | 得分 | 教训 |
|---|---|---|---|---|
| A | 0 | 100 | −4.95 | 理想态 |
| B | 0 | 900 | −7.15 | 过度保守被罚 |
| C | 500 | 500 | −7.97 | 坦诚的大误差可接受 |
| D | 500 | 80 | −13.57 | 自信的错最致命 |
真正的最优策略是:让 σ 尽量贴近真实误差量级。既不能虚报小 σ 骗"自信分",也不能一律报大 σ 求稳。这与临床沟通的直觉一致——医生应如实告诉患者"这个预测有多不确定"。
7.7 一个常见误解:mLLL 不是 RMSE
初学者常把 mLLL 当成"带惩罚的 RMSE",这是错的:
- RMSE 只关心点预测误差,与置信度无关。
- mLLL 是一个对数似然,它假设预测误差服从拉普拉斯分布,然后评估"观测到的误差在该分布下的概率"。σ 就是这个拉普拉斯分布的尺度参数。
- 数学上,最大化 mLLL ⇔ 最大化"在给定误差分布下,真实值出现的对数概率"。
- 因此模型输出的不是"一个数",而是一个预测分布(位置 + 尺度)。
理解这一点后,许多"反直觉"的排名就说得通了:有些模型 RMSE 更低却在 mLLL 上落后,因为它没有正确表达不确定性。Fibro-CoSANet 论文同时报告 LLL_m 与 RMSE 两个指标,正是为了让读者看到"准确"与"校准"两个维度(其多模态版 RMSE 181.5,CT 单独 184.16,差异不像 mLLL 那样显著)。
7.8 排行榜数字的统计谨慎
引用排行榜数字时必须注意:
- private LB 与 public LB 不等价:前者决定最终名次,后者仅供参考。第三方复现多以"接近冠军的 CV 分数"自我对标,而非 public LB。
- 排名密集 ≠ 能力密集:前 20 名差 <0.02,很可能是同一批强 baseline 加上随机种子/集成差异的产物,不应过度解读"第 5 名比第 15 名强"。
- 提交次数影响微弱:提交 203 次的 Risers 排第 9,提交 1 次的 Alexey Petrov 排第 8,说明本任务的上限被数据量本身锁死,而非被调参努力锁死。
- 复现需固定划分:任何自报分数必须说明用了哪种患者级划分,否则无法与 Kaggle private LB 比较。
§8B 生态影响补遗:范式对照与方法演进
8.5 与 PANDA-PLUS 类"重标注数据集"的范式对照
千方病案医数集库内另有一类数据集(如 PANDA-PLUS),其模式是"取公开挑战数据 → 重新做高质量标注 → 发布升级版"。OSIC 与本条目形成有趣对照:
| 维度 | OSIC Pulmonary Fibrosis(本条目) | PANDA-PLUS(对照) |
|---|---|---|
| 数据来源 | 原创采集(OSIC 联盟) | 挑战赛派生(PANDA 重标注) |
| 标签类型 | 肺功能标量(FVC 时序) | 像素级 Gleason 掩码 |
| 是否有数据论文 | 否(仅 Kaggle citation) | 是(J Pathol Inform 2025) |
| 可获取性 | 竞赛规则约束 | 三层异构(公开/请求制/CC BY-4.0) |
| 核心贡献 | 首个 ILD 计算挑战基准 | 揭示原标签系统性错误 |
启示:OSIC 属于"竞赛数据集"范式——重评测、轻文档;PANDA-PLUS 属于"研究数据集"范式——重文档、有数据论文。研究者引用二者时,元数据可靠性的预期应不同。
8.6 对 ILD 影像 AI 方法演进的影响
从 2020 到现在,OSIC 数据催生的方法演进大致分三波:
- 第一波(2020–2021)——Kaggle 竞赛与快速 baseline:线性衰减模型、Quantile Regression、EfficientNet 影像分支。代表是冠军的双模型融合。
- 第二波(2021)——定制架构与可解释性:Fibrosis-Net(机器驱动设计探索 + GSInquire 可解释性)、Fibro-CoSANet(自注意力 + 多模态)。开始强调"模型为什么这么判断"。
- 第三波(2021 至今)——方法学通用化的试验床:把 OSIC 作为"低秩嵌入"“多模态融合”"不确定性量化"等通用方法的对照数据集,如 ICCV 2021 的工作。
这条演进线的价值:它展示了一个小样本医学基准如何从"竞赛题"变成"方法学标尺"——即便样本量从未增长,它的评测价值通过社区引用被持续放大。
8.7 与 OSIC 云仓库的战略关系
对本条目理解的最后一层是"历史位置":
- 2020 竞赛(176 例)是 OSIC 的公开试水——用一次 Kaggle 竞赛建立社区认知与算法基线。
- 云仓库(>20,789 例)是 OSIC 的长期资产——把零散数据汇聚成可支撑监管级研究的资源。
- 二者共享同一疾病领域(ILD),但目标不同:竞赛求"算法创新",云仓库求"数据规模与多样性"。
因此,把本条目当作"进入 OSIC 数据生态的入口"是恰当的;但若研究需要大规模或纵向影像,则应主动联系 OSIC 申请云仓库访问,而非停在 176 例上。
8.8 库内跨条目方法论对照清单
| 可对照的库内条目 | rid | 对照维度 |
|---|---|---|
| lung-segment-mimic-cxr | 613 | 同为胸部影像,任务是分割(本条目是回归) |
| heart-lung-segmentations-data | 610 | OSIC 分割衍生链的下游形态 |
| mimic-cxr | 16 | 影像-文本多模态 vs 本条目影像-表格多模态 |
| padchest | 117 | 大规模胸部影像 + 元数据的对照 |
| covid-ct | 307 | 同为 CT 疾病预测,但数据规模与标注方式不同 |
| rater-ct / rider-lung-ct | 267 | 肺部 CT 的不同采集/标注协议对照 |
§9 与库内条目的关系:家族图谱与检索路径
9.1 数据集家族图谱
┌─────────────────────────────────────┐
│ OSIC(Open Source Imaging │
│ Consortium)非营利联盟 │
└──────────────┬──────────────────────┘
│
┌──────────────────────────┼───────────────────────────┐
│ │ │
┌────▼─────┐ ┌───────▼────────┐ ┌───────▼────────┐
│ Kaggle │ │ OSIC Cloud │ │ 竞品/平行 ILD │
│ 2020 竞赛│ │ Data Repository│ │ 影像数据集 │
│ 176 例 │ │ >20,789 例 │ └────────────────┘
└────┬─────┘ └────────────────┘
│
┌────┴───────────────────────────────┐
│ │
┌──▼───────────────┐ ┌──────────▼──────────────┐
│ 学术下游基准 │ │ 社区衍生资产 │
│ Fibrosis-Net │ │ ct-lung-heart-trachea- │
│ Fibro-CoSANet │ │ segmentation(分割) │
│ Sky-Net │ │ torch-em osic_pulmofib │
│ Poulou et al. │ │ CSV-only 衍生版 │
└──────────────────┘ └──────────────────────────┘
9.2 检索路径建议
- 从 OSIC 组织进:搜 “OSIC” → 官网 osicild.org → 注意会分岔到"云仓库"与"Kaggle 竞赛"两条线。
- 从疾病进:搜 “pulmonary fibrosis dataset” / “IPF CT dataset” → 本条目与 ILD 相关数据集。
- 从任务进:搜 “FVC prediction” / “lung function decline” → 本条目。
- 从指标进:搜 “modified Laplace Log Likelihood” / “mLLL” → 本条目。
- 从库内进:搜 CT/lung 标签 → 经 475 / 613 / 610 / 330 / 16 互链可达本条目。
9.3 与最易混淆条目的辨析
| 易混对象 | 区别 |
|---|---|
| OSIC Cloud Data Repository | 规模 >20,789 例,本条目 176 例,差两个数量级 |
ct-lung-heart-trachea-segmentation |
是 OSIC 影像的分割衍生集,不是原始竞赛数据 |
| MIMIC-CXR(rid 16/617) | 同为胸部影像+元数据,但任务是报告生成/分类,非时序回归 |
| LTRC ILD Dataset(128 患者) | 另一 ILD 影像数据集,常与 OSIC 并用于对比,非同一物 |
§10 避坑清单:九个已踩过的坑
坑 1:把 OSIC 联盟与 OSIC 竞赛数据集画等号。“OSIC” 既是主办非营利组织的名字,也是其后建云仓库的名字。本条目专指 2020 Kaggle 竞赛的 176 例数据;官网宣称的 >20,789 例是云仓库,二者规模相差百倍。检索与引用时务必写明是"哪一层的 OSIC"。
坑 2:切片计数无单一权威数。同一数据集在不同来源有 24,350(FibNet)、~30,000(k1lib)、34,290 files(Kaggle,含 csv)等多种计数;单患者切片更是从 Fibro-CoSANet 的"10–180"到首例实测的 394 张,冲突明确。引用时要么用官方 34,290 文件 / 23.99 GB,要么明确标注所引口径,切勿当作唯一事实。
坑 3:训练行数的三种口径。train.csv 实测 (1549, 7)(Kaggle 日志与 ICCV 论文一致);k1lib 教程显示 (1550, 7);Fibro-CoSANet 写 “1576 demographic information”。以 1549 为主口径,其余差异(表头计入、含测试、计数方式)需标注。
坑 4:患者数 176 vs 177。k1lib 的原始 unique 计数为 177,但正文注明 “More precisely, there’re 176 patients”;Kaggle 日志与 ICCV 论文均为 176。以 176 为准。
坑 5:mLLL 的"越高越好 vs 越低越好"表述陷阱。Kaggle 页写 “higher is better”(负值越大越好,-6.83 > -6.84);许多论文写 “lower is better”(因其把该量当损失语境)。数学上一致,但直接照抄论文措辞会误导读者。引用时必须以符号约定说明:-6.8305 优于 -6.8400。
坑 6:公开测试集只有 5 人,不能用来评测。test/ 是从训练集拷贝的"格式代表集",真正评测是隐藏的约 200 人。任何声称"在 OSIC 公开 test 上评测"的结果都需警惕,必须自行从 train.csv 做患者级划分。
坑 7:许可不是标准 CC。Kaggle 数据页标 “Subject to Competition Rules”,不是 CC BY。而 SAS Viya 衍生仓库又称该数据为 “CC BY-SA 4.0”(再许可声明)。以 Kaggle 一手为准,再分发/商用前必须读竞赛规则原文。
坑 8:Percent 特征是陷阱。冠军解法明确"移除所有 Percent 相关特征"后 private LB 大幅提升。Percent 是相对人群典型值的归一化量,可能引入跨患者偏置。新手若照搬"用全部列训练",可能被这一列拖累。
坑 9:截止日期与闭赛状态的双口径。Kaggle 官方页 timeline 写最终提交截止 2020-10-06;第三方转载多写 9-30。竞赛已闭赛(private LB 定格),但数据仍可下载——不要误以为"闭赛=数据下架"。
§11 总结
11.1 三句话总结
- OSIC Pulmonary Fibrosis Progression 是 OSIC 联盟 2020 年发起的 Kaggle 挑战赛数据集:176 例患者,用基线胸部 CT + 临床元数据预测 FVC 下降轨迹并给出置信度,评测采用 mLLL。
- 它的核心难度来自"小样本 + 单次基线 CT + 不规则随访",导致竞赛分数极度密集(冠军 -6.8305,前 20 名差距 <0.02),也成为"医学影像+不确定性量化"的经典试炼场。
- 它催生了 Fibrosis-Net(-6.8188,宣称超冠军)、Fibro-CoSANet 等一系列下游基准,是 ILD 影像 AI 绕不开的历史锚点;但获取需接受 Kaggle 竞赛规则,许可非开放,使用前须核实边界。
11.2 适合谁
- ILD/肺纤维化影像 AI 研究者:需要历史基准与对照。
- 多模态方法研究者:需要一个"影像信息弱、表格信息强"的极端案例来检验融合是否真有效。
- 不确定性量化研究者:mLLL 是把置信度纳入评分的现成设计模板。
- Kaggle 解法复现/学习者:冠军解法公开,任务定义清晰,是学习"小样本医学竞赛"的好样本。
- 数据工程研究者:研究"竞赛数据集 vs 静态数据集"两种范式差异的活标本。
11.3 不适合谁
- 需要大规模训练数据的团队(仅 176 例,且无影像标注)。
- 需要像素级/病灶级标注的分割检测项目(本数据集无影像标注,应转向衍生分割集)。
- 需要标准开放许可的商用产品(许可为 Kaggle 竞赛规则,非标准 SPDX)。
- 需要纵向影像序列的建模(只有基线单次 CT)。
- 需要稳定可复现元数据的工程管线(切片计数/行数多口径冲突,需自行核账)。
11.4 30 秒决策卡
| 你的情况 | 行动 |
|---|---|
| 要立刻下数据跑通 | Kaggle kaggle competitions download osic-pulmonary-fibrosis-progression(先接受规则) |
| 要做 SOTA 对标 | 复现冠军 -6.8305,对标 Fibrosis-Net -6.8188(注意测试集差异),见 §7 |
| 要验证多模态方法 | 用 Fibro-CoSANet 的多模态/单模态对照表设计实验,见 §7.4 |
| 要像素级分割标签 | 走 torch-em osic_pulmofib → ct-lung-heart-trachea-segmentation,见 §6.3 |
| 要引用数据集 | Kaggle 官方 citation;写明"176 训练患者/2020 竞赛/Subject to Competition Rules" |
| 要评测自己的模型 | 从 train.csv 做患者级划分,别用 5 人的公开 test,见 §10 坑 6 |
FAQ(高频问答 30 问)
A. 基础认知
Q1:OSIC 是什么?
Open Source Imaging Consortium,一个 501©(3) 非营利合作联盟,联合学术界、产业界、慈善方与患者倡导团体,聚焦间质性肺病(ILD)与纤维化性肺病的影像生物标志物研发。
Q2:这是一篇论文附带的数据集吗?
不是。它是 Kaggle 竞赛数据集,没有独立的数据描述论文,主引用是 Kaggle 官方 citation。学术引用来自大量下游工作。
Q3:为什么叫"Progression"(进展)?
因为任务是预测疾病进展——具体化为 FVC(用力肺活量)随时间下降的轨迹。
Q4:它和肺癌/COVID 数据集是一回事吗?
不是。它聚焦纤维化性肺病(IPF/ILD),虽同为胸部 CT,但疾病与任务都不同。
Q5:IPF 和 ILD 什么关系?
ILD(间质性肺病)是一大类疾病统称;IPF(特发性肺纤维化)是其中预后最差、最常见的一种。
Q6:FVC 是什么?
Forced Vital Capacity,用力肺活量——深吸气后用力呼出的最大气量(ml),是肺功能的核心指标。
Q7:为什么用 FVC 而非其他指标?
FVC 测量标准化、可重复、临床广泛使用,且随访可由肺量计无创获得。
Q8:数据集是 2019 还是 2020 年?
竞赛开始于 2020-07-07,闭赛于 2020-10-07。第三方转载有写 “2019” 的(dynamicduniya),系误记,以 Kaggle 官方页 2020 为准。
B. 数据与获取
Q9:怎么下载?
注册 Kaggle 账号,在竞赛页接受规则,然后 kaggle competitions download osic-pulmonary-fibrosis-progression,或用网页 Data 标签页。
Q10:现在(2026 年)还能下吗?
能。竞赛虽闭赛,但数据页仍提供下载入口。需账号 + 接受竞赛规则。
Q11:数据多大?
官方数据页标 23.99 GB / 34,290 文件。但第三方 notebook 挂载常显示 25–28 GB,存在体量口径差异。
Q12:可以只要 CSV 不要影像吗?
可以。kaggle competitions download osic-pulmonary-fibrosis-progression -f train.csv,仅约 0.08 MB。
Q13:许可能商用吗?
Kaggle 页标 “Subject to Competition Rules”,非标准开放许可。商用/再分发前必须读竞赛规则原文,本条目不能代替法律意见。
Q14:有 HuggingFace 版吗?
无官方 HF 直链。有 Kaggle 数据集镜像(如分割标签集)与社区缓存,但需核版本与许可。
Q15:有 DOI 吗?
数据集本体无独立 DOI。引用用 Kaggle citation。
C. 数据规格
Q16:多少患者?
训练 176,公开测试 5,隐藏测试约 200(官方称公私合计约 200)。
Q17:train.csv 多少行?
1549 行(7 列)。另见 1550/1576 口径,见坑 3。
Q18:有多少张 CT 切片?
无单一权威数:24,350(FibNet)/ ~30,000(k1lib)/ 34,290 文件(Kaggle,含 csv)。见坑 2。
Q19:每患者多少张切片?
纤维化论文写"10–180",但首例实测 394 张,冲突明确。取决于预处理阶段。
Q20:为什么 Weeks 有负值?
因为部分随访记录早于基线 CT 的时间戳,反映真实临床数据时序不规则。
Q21:有缺失值吗?
train.csv 的 FVC 缺失为 0/1549,数据相对干净。
Q22:FVC 数值范围?
训练集均值 2690.48 ml,最小 827 ml,偏度 0.584,最大 6399 ml(第三方口径)。
D. 任务与评测
Q23:任务是什么?
从基线 CT + 临床元数据预测未来 FVC 轨迹 + 置信度,属带不确定性的多模态回归。
Q24:为什么预测"每一个周次"?
为避免通过"被问哪些周次"反推随访节奏造成泄漏。评分只取最后三次随访。
Q25:mLLL 公式是什么?
σ_clipped = max(σ,70);Δ = min(|FVC_true−FVC_pred|,1000);metric = −(√2·Δ)/σ_clipped − ln(√2·σ_clipped)。
Q26:分数越高越好还是越低越好?
数值为负,越高越好(-6.8305 优于 -6.8400)。论文里的"lower is better"是措辞混淆,见坑 5。
Q27:为什么要预测置信度?
因为临床预后需要不确定性表达;mLLL 同时对准确性与置信度打分。
E. 基准与生态
Q28:冠军分数多少?
Art -6.8305(1st);yyykrk -6.8311(2nd);AIC-AI -6.8336(3rd)。
Q29:有超过冠军的模型吗?
Fibrosis-Net(arXiv:2103.04008)宣称 -6.8188,超冠军 0.0117,但在其自建测试队列上评测,与 Kaggle private LB 不完全可比。
Q30:有哪些重要下游工作?
Fibrosis-Net、Fibro-CoSANet(-6.68 多模态)、Sky-Net、Poulou et al.(-6.8590),见 §7。
F. 复现与工程细节
Q31:本地复现冠军最少需要什么?
一张 GPU(4 小时预算内)+ Kaggle 数据 + 冠军公开 notebook。若只做表格分支(Quantile Regression),CPU 也可完成大部分。
Q32:DICOM 怎么读?
用 pydicom 读取单张切片,按 ImagePositionPatient 或 InstanceNumber 排序还原体数据;SimpleITK/itk 也常用。注意像素值转 HU 需应用 RescaleSlope/RescaleIntercept。
Q33:为什么要把 DICOM 转成 NIfTI?
NIfTI 更易被医学影像深度学习框架(MONAI 等)直接消费,且可承载统一的体数据几何信息。torch-em 的 osic_pulmofib 就是先转 NIfTI 再预处理。
Q34:可以用 3D CNN 吗?
可以,但每患者切片数差异巨大(10–394),需先沿 z 轴重采样到固定深度。多数高分解法用 2D CNN + z 轴聚合,计算更省。
Q35:样本这么小,数据增强有用吗?
影像增强(随机翻转、旋转、窗宽窗位扰动)可缓解过拟合,但收益有限;更有效的是强正则、集成与表格特征工程。
Q36:怎么估计 σ?
常见三法:(a) 量化回归取 0.2/0.5/0.8 分位数,用分位数差反推 σ;(b) 直接回归 σ(如 NLL 损失);© 用交叉验证残差的经验标准差。三者都可能入选,取决于校准效果。
Q37:移除 Percent 特征为什么有效?
百分号是"相对人群典型值"的归一化量,可能隐含与该患者身份/人群相关的信息,构成软泄漏或偏置。移除后模型更依赖绝对 FVC 与影像,private LB 表现更好。此为正则经验,非普适定律。
Q38:如何避免过拟合 public LB?
不要以 public LB 选模型;用多折患者级 CV + 多次随机种子的稳健性来判断。
Q39:测试集只有 5 人怎么调参?
不要用公开 test 调参。把它只当"格式校验集",一切选择基于 train.csv 的 GroupKFold。
Q40:有没有官方的评估脚本?
Kaggle 竞赛页提供 metric 说明,但无独立发布的评估 sdks;社区多自行实现 mLLL(见附录 E)。
事实清单(硬事实 38 条)
- 全称:OSIC Pulmonary Fibrosis Progression。
- 主办:Open Source Imaging Consortium (OSIC),501©(3) 非营利联盟。
- 平台:Kaggle,Featured Code Competition。
- 开始日期:2020-07-07。
- 报名/组队截止:2020-09-29。
- 最终提交截止:2020-10-06(Kaggle 官方页;第三方多写 9-30)。
- 闭赛:2020-10-07,private LB 定格。
- 状态:已结束。
- 文件总数:34,290(Kaggle 数据页)。
- 数据体量:23.99 GB(Kaggle 数据页)。
- 文件类型:dcm, csv。
- 训练患者:176。
- 训练记录行:1549(另见 1550/1576 口径)。
- 公开测试患者:5。
- 隐藏测试患者:约 200。
- 官方拆分:public:private ≈ 15:85。
- 参赛者:17,224。
- 参与者:2,530。
- 队伍:2,097。
- 提交数:44,505。
- 奖金池:$55,000(1st $30k / 2nd $15k / 3rd $10k)。
- CSV 列数:7(Patient/Weeks/FVC/Percent/Age/Sex/SmokingStatus)。
- FVC 均值:2690.48 ml。
- FVC 最小值:827 ml。
- FVC 偏度:0.584。
- FVC 缺失:0/1549。
- 首例患者切片数:394 张(ID00007637202177411956430)。
- 每患者切片范围(论文口径):10–180。
- 指标:modified Laplace Log Likelihood (mLLL)。
- mLLL 截断:Δ≤1000 ml,σ≥70 ml。
- 冠军:Art -6.8305。
- 亚军:yyykrk -6.8311。
- 季军:AIC-AI -6.8336。
- Fibrosis-Net 成绩:-6.8188(宣称超冠军 0.0117)。
- Fibro-CoSANet 多模态:-6.68 ± 0.31。
- 许可:Subject to Competition Rules(非标准 SPDX)。
- 下载命令:
kaggle competitions download osic-pulmonary-fibrosis-progression。 - OSIC 云仓库规模:>20,789 例匿名 HRCT(2026 时点,与本竞赛 176 例不同层)。
术语表(28 条)
| 术语 | 英文 | 释义 |
|---|---|---|
| 肺纤维化 | Pulmonary Fibrosis | 肺组织瘢痕化导致肺容量进行性丧失的疾病 |
| 特发性肺纤维化 | IPF (Idiopathic Pulmonary Fibrosis) | 病因不明的肺纤维化,预后最差 |
| 间质性肺病 | ILD (Interstitial Lung Disease) | 一大类弥漫性肺实质疾病统称 |
| 用力肺活量 | FVC (Forced Vital Capacity) | 深吸气后用力呼出的最大气量(ml) |
| 肺量计 | Spirometer | 测量肺功能的仪器 |
| 修正拉普拉斯对数似然 | mLLL (modified Laplace Log Likelihood) | 本竞赛评测指标,兼顾准确性与置信度 |
| 置信度/标准差 | σ (Confidence / Standard Deviation) | 预测的不确定性度量(ml) |
| CT | Computed Tomography | 计算机断层扫描 |
| 高分辨率 CT | HRCT (High-Resolution CT) | 用于 ILD 评估的薄层 CT |
| DICOM | Digital Imaging and Communications in Medicine | 医学影像标准格式 |
| 蜂窝影 | Honeycombing | 肺纤维化的典型 CT 影像模式 |
| 网格影 | Reticulation | 肺纤维化的 CT 影像模式 |
| 磨玻璃影 | GGO (Ground-Glass Opacity) | 肺部 CT 半透明密度增高区 |
| 基线 | Baseline | 时间点 Week=0 的起始测量 |
| 随访 | Follow-up | 基线之后的复诊测量 |
| 周次 | Weeks | 相对基线 CT 的周数(可负) |
| 疾病进展 | Progression | 肺功能随时间下降 |
| 预后 | Prognosis | 对疾病走向的预测 |
| 分位数回归 | Quantile Regression | 预测目标分布分位数的回归方法 |
| 不确定性量化 | Uncertainty Quantification | 建模并输出预测的不确定性 |
| 多模态 | Multimodal | 融合影像与表格等异质数据 |
| 表格数据 | Tabular Data | 结构化临床元数据 |
| 同步重跑 | Synchronous Rerun | Kaggle Code Competition 的提交机制 |
| 公开/私有排行榜 | Public/Private LB | Kaggle 双榜评测机制 |
| 患者级划分 | Patient-level Split | 按患者而非样本划分训练/验证,防泄漏 |
| 窗宽窗位 | Windowing | CT 灰度映射预处理 |
| 重采样 | Resampling | 统一体素尺寸的预处理 |
| 可解释性 | Explainability | 解释模型决策依据(如 GSInquire) |
附录
附录 A:条目信息速查卡
| 字段 | 值 |
|---|---|
| slug | osic-pulmonary-fibrosis |
| 正名 | OSIC Pulmonary Fibrosis Progression |
| 类型 | Kaggle 竞赛数据集(已闭赛) |
| 主办 | Open Source Imaging Consortium (OSIC) |
| 主引用 | Kaggle citation(2020) |
| 规模 | 176 训练患者 / 1549 行 / 34,290 文件 / 23.99 GB |
| 模态 | 胸部 CT (DICOM) + 临床表格 (CSV) |
| 任务 | FVC 轨迹回归 + 不确定性 |
| 指标 | mLLL(越高越好) |
| 冠军 | Art -6.8305 |
| 许可 | Subject to Competition Rules |
| 获取 | Kaggle 账号 + 接受规则 |
附录 B:DAIMS 评估全表
| 维度 | 评分(1-10) | 依据 |
|---|---|---|
| D 可发现性 | 8 | Kaggle 平台高曝光(17,224 参赛者)+ 大量学术引用;但无独立数据描述论文,名称易与 OSIC 云仓库混淆 |
| A 可获取性 | 6 | 需账号+接受竞赛规则,非完全开放;23.99 GB 体量大;有社区镜像但许可混杂 |
| I 可互操作 | 7 | DICOM+CSV 均为通用格式;下游 torch-em 已提供 NIfTI 转换;无官方标准化元数据 schema |
| M 元数据质量 | 5 | 列语义清晰但与表头一致;切片计数/行数/患者数多源冲突(坑 2/3/4),无官方数据说明文档 |
| S 可持续性 | 7 | 依托 Kaggle 平台稳定;闭赛仍可下载;但依赖单一平台,无 DOI 归档 |
| 综合评级 | 6.6/10(中上) | 作为基准数据集质量高;短板在元数据冲突与许可非开放 |
附录 C:逐项证据链自证
| 关键数字 | 来源 | 位置 |
|---|---|---|
| 34,290 文件 / 23.99 GB / Subject to Competition Rules | Kaggle 数据页 | kaggle.com/c/osic-pulmonary-fibrosis-progression/data |
| 176 患者 / (1549,7) / FVC min 827 / mean 2690.48 | Kaggle notebook 运行日志 | kaggle.com/code/arpcode/osic-pulmonary-fibrosis-progression/log |
| 公开测试 5 人 / 隐藏约 200 | Kaggle 讨论区(quadcore) | kaggle.com/c/osic-pulmonary-fibrosis-progression/discussion/180012 |
| 冠军 -6.8305 / 亚军 -6.8311 / 季军 -6.8336 | Kaggle leaderboard | kaggle.com/c/osic-pulmonary-fibrosis-progression/leaderboard |
| 时间线 / 奖金 / 17,224 参赛 | Kaggle 概览页 | kaggle.com/c/osic-pulmonary-fibrosis-progression |
| Fibrosis-Net -6.8188 vs 冠军 -6.8305 | arXiv:2103.04008 Table 2 | arxiv.org/abs/2103.04008 |
| Fibro-CoSANet -6.68 / 176 患者 / 10–180 切片 | arXiv:2104.05889 | arxiv.org/abs/2104.05889 |
| 176 患者 / 1549 FVC 值 / 首例 394 张 | k1lib 教程 / ICCV 2021 | k1lib.com/latest/tutorials/osic.html |
| OSIC 云仓库 >20,789 例 | OSIC 官网 | osicild.org |
| CC BY-SA 4.0 再许可声明 | SAS Viya 示例仓库 | github lleytonse/Pulmonary-Fibrosis-Progression |
| 24,350 切片 | FibNet 论文 | premierscience.com pjs-25-1437 |
附录 D:数据获取决策树
你需要 OSIC 数据
│
├─ 只需要临床表格 → kaggle ... -f train.csv(~0.08 MB,秒下)
│
├─ 需要影像 + 表格 → kaggle competitions download(23.99 GB,需接受规则)
│ │
│ └─ 需要像素级器官分割标签 → torch-em osic_pulmofib 链
│ (额外拉 sandorkonya/ct-lung-heart-trachea-segmentation)
│
├─ 需要更大规模 ILD 数据 → 申请 OSIC Cloud Data Repository(官网,面向成员)
│
└─ 只想复现基线 → 直接用 train.csv + 公开 notebook,无需 23.99 GB 影像
附录 E:mLLL 与评测骨架(Python)
import numpy as np
def mlll_metric(fvc_true, fvc_pred, sigma):
"""
modified Laplace Log Likelihood(Kaggle 官方口径)
返回负值数组,最终分数为其均值;数值越高越好。
"""
sigma_clipped = np.maximum(sigma, 70.0)
delta = np.minimum(np.abs(fvc_true - fvc_pred), 1000.0)
metric = -(np.sqrt(2.0) * delta) / sigma_clipped \
- np.log(np.sqrt(2.0) * sigma_clipped)
return metric
def mlll_score(fvc_true, fvc_pred, sigma):
"""最终分数 = 所有 Patient_Week 的平均。"""
return float(np.mean(mlll_metric(fvc_true, fvc_pred, sigma)))
# 直觉检查:预测完全正确且 σ 合理
print(mlll_score([2500, 2400], [2500, 2400], [100, 100])) # 高(接近 0)
# 预测极准但 σ 过大 → 因第二项被罚
print(mlll_score([2500], [2500], [900])) # 中等
# 预测错误
print(mlll_score([2500], [3000], [100])) # 低
关键点:σ 太小且预测错 → 被第一项重罚;σ 太大 → 被第二项重罚。最优是"预测准 + σ 如实反映误差量级"。
附录 F:基线建模骨架(Linear Decay + 表格量化回归)
import pandas as pd
from sklearn.model_selection import GroupKFold
# 1) 读数据(仅表格,跳过 23.99 GB 影像)
train = pd.read_csv("train.csv")
target_weeks = [12, 24, 36] # 示例目标周次,实际按官方指定
# 2) 患者级交叉验证(防泄漏,禁止样本级划分)
groups = train["Patient"]
gkf = GroupKFold(n_splits=5)
# 3) 线性衰减特征:FVC_base + slope * weeks
# slope 可由临床特征回归得到,FVC 预测 = FVC_base + slope * w
def build_features(df):
base = df.groupby("Patient").first()
feats = base[["Age", "FVC", "Percent"]].copy()
feats["Sex"] = (base["Sex"] == "Male").astype(int)
feats["SmokeEx"] = (base["SmokingStatus"] == "Ex-smoker").astype(int)
return feats
# 4) 量化回归输出 0.2/0.5/0.8 分位数 → 推 FVC 与 σ
# 注意:冠军经验是移除 Percent 相关特征,见坑 8
附录 G:修订与存照记录
| 日期 | 事项 |
|---|---|
| 2020-07-07 | 竞赛开始 |
| 2020-09-29 | 报名与组队截止 |
| 2020-10-06 | 最终提交截止 |
| 2020-10-07 | 闭赛,private LB 定格 |
| 2021-03 | Fibrosis-Net 论文 v1(arXiv:2103.04008) |
| 2021-04 | Fibro-CoSANet 论文(arXiv:2104.05889) |
| 2021-10 | ICCV 2021 把 OSIC 用作多模态评测集 |
| 2026-09-30 | 本条目撰写,完成三源互证与 slug 查重 |
附录 H:证据链核查清单(复现者自检)
- [ ] 确认患者数 176(非 177),从 train.csv
unique(Patient)复核。 - [ ] 确认行数口径(1549),与所用副本核对。
- [ ] 评测时不使用公开 test/(仅 5 人),从 train.csv 做 GroupKFold。
- [ ] 引用 mLLL 时写明符号约定(越接近 0 越好 / 负值越高越好)。
- [ ] 引用规模时标注所引口径(34,290 文件 vs 24,350 切片 vs 30,000 图像)。
- [ ] 复现冠军时尝试移除 Percent 特征并记录 CV 变化。
- [ ] 商用/再分发前查阅 Kaggle rules 原文,不依赖第三方"CC BY-SA"声明。
条目定位:本文档为 qianfanghub.com「AI-Ready Dataset」系列的条目页,描述 Kaggle OSIC Pulmonary Fibrosis Progression 数据集。所有数字均经三源互证,冲突口径已逐条存照(见附录 B/C 与 §9/§10)。引用时请遵循 §5.4 的符号约定与 §6.2 的许可口径。
附录 I:与其他 ILD / 胸部影像数据集的对照表
| 数据集 | 患者数 | 模态 | 任务 | 标注 | 备注 |
|---|---|---|---|---|---|
| OSIC PF Progression(本条目) | 176 训练 | 基线 CT + 表格 | FVC 时序回归 | 无影像标注 | Kaggle 2020 |
| LTRC ILD | 128 | CT | 肺纹理分类 | 专家纹理标注 | 常与 OSIC 对比 |
| MIMIC-CXR(rid 16/617) | 数十万影像 | 胸片 + 报告 | 报告生成/分类 | 文本 | 影像-文本范式 |
| PadChest(rid 117) | 16 万+ | 胸片 | 多标签分类 | 文本标签 | 大规模 |
| chest-imagenome(rid 330) | 数千 | 胸部 CT | 结构化标注 | 结构化 | 含影像组学 |
| lung-segment-mimic-cxr(rid 613) | — | 胸部影像 | 肺分割 | 像素级 | 分割范式 |
| covid-ct(rid 307) | 数千 | CT | COVID 检测 | 分类 | CT 疾病预测 |
用法:写数据集综述时,此表可直接用作"ILD/胸部影像数据集全景"的骨架,本条目占"小样本预后回归"一格。
附录 J:常见任务表述与其对应的库内标签
| 你想做的事 | 建议 category 标签(受控词表) | 本条目适用性 |
|---|---|---|
| 训练分类/检测模型 | 图像分类 / 目标检测 | 不适用(本条目是回归) |
| 训练分割模型 | 医学图像分割 | 不适用(无掩码) |
| 时序/预后回归 | 时序数据 / 真实世界数据 | 适用 |
| 多模态融合研究 | 多模态 | 适用 |
| 挑战赛基准复现 | 挑战赛数据集 / 评测基准 | 适用 |
本条目 frontmatter 采用的标签组合:医学影像, CT, 多模态, 挑战赛数据集, 评测基准, 真实世界数据。
附录 K:引用 BibTeX 模板
@misc{osic_pf_progression_2020,
title = {OSIC Pulmonary Fibrosis Progression},
author = {Shahin, Ahmed and Wegworth, Carmela and Estes, Elizabeth and
Elliott, Julia and Zita, Justin and Walsh, Simon and
Slepetys and Cukierski, Will},
year = {2020},
howpublished = {Kaggle},
url = {https://www.kaggle.com/competitions/osic-pulmonary-fibrosis-progression},
note = {License: Subject to Competition Rules}
}
注意:若引用下游基准,请分别引用其论文(Fibrosis-Net: arXiv:2103.04008;Fibro-CoSANet: arXiv:2104.05889),不要与数据集 citation 混淆。
附录 L:术语中英对照速查(补充)
| 中文 | 英文 |
|---|---|
| 蜂窝影 | honeycombing |
| 牵拉性支扩 | traction bronchiectasis |
| 特发性肺纤维化 | idiopathic pulmonary fibrosis (IPF) |
| 进行性肺纤维化 | progressive pulmonary fibrosis (PPF) |
| 间质性肺异常 | interstitial lung abnormalities (ILA) |
| 高分辨率 CT | high-resolution CT (HRCT) |
| 肺量计检查 | spirometry |
| 用力呼气 | forced expiration |
| 置信区间 | confidence interval |
| 预测区间 | prediction interval |
| 分位数 | quantile |
| 校准 | calibration |
| 交叉验证 | cross-validation |
| 组别交叉验证 | grouped cross-validation |
| 数据泄漏 | data leakage |
附录 M:待核清单(遗留疑点汇总)
| 编号 | 疑点 | 状态 |
|---|---|---|
| 1 | OSIC 官网 data 子页 404,申请流程未抓证 | 遗留 |
| 2 | 竞赛数据当前下载是否对所有账号开放(无账号环境未实测) | 遗留 |
| 3 | 训练集 FVC 最大值 6399 未从一手日志抓证(第三方口径) | 遗留 |
| 4 | 每患者切片"10–180"与首例 394 张冲突的确切原因 | 遗留 |
| 5 | 数据来源机构清单未公开 | 遗留 |
| 6 | 竞赛无独立数据描述论文 | 事实(非疑点) |
附录 N:一句话答案库(常见提问快答)
- 能用吗? 能,Kaggle 账号 + 接受竞赛规则。
- 免费吗? 免费下载,但受竞赛规则约束。
- 多少数据? 176 训练患者 / 1549 行 / 34,290 文件 / 23.99 GB。
- 什么任务? 从基线 CT + 表格预测 FVC 轨迹 + 置信度。
- 怎么评? mLLL,差值在 1000 ml 截断,σ 在 70 ml 截断,越高越好。
- 冠军多少分? -6.8305(Art)。
- 有超过冠军的吗? Fibrosis-Net -6.8188(自建测试集)。
- 要影像标注吗? 没有;需要分割标签请走衍生链。
- 能商用吗? 需读竞赛规则原文,本条目不作法律判断。
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- vlm3d — 共享标签:医学影像 / CT / 多模态 / 挑战赛数据集 / 评测基准
- toothfairy2 — 共享标签:医学影像 / CT / 挑战赛数据集 / 评测基准
- curvas — 共享标签:医学影像 / CT / 挑战赛数据集 / 评测基准
- toothfairy3 — 共享标签:医学影像 / CT / 挑战赛数据集 / 评测基准
- stsr — 共享标签:医学影像 / CT / 挑战赛数据集 / 评测基准
- instance2022 — 共享标签:医学影像 / CT / 挑战赛数据集 / 评测基准
- trials — 共享标签:医学影像 / CT / 挑战赛数据集 / 评测基准
- lnq — 共享标签:医学影像 / CT / 挑战赛数据集 / 评测基准
- tus-rec — 共享标签:医学影像 / 挑战赛数据集 / 评测基准
- learn2reg — 共享标签:医学影像 / CT / 挑战赛数据集 / 评测基准
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

