99% 是警报而不是成绩 — Kaggle 脑肿瘤 MRI 三个集

7200 图四分类 / 3060 图带框检测 / 110 例 LGG 分割

来源 https://www.kaggle.com/datasets/masoudnickparvar/brain-tumor-mri-dataset发布时间: 2026-10-27最后更新: 2026-10-27 阅读 19
99% 是警报而不是成绩 — Kaggle 脑肿瘤 MRI 三个集

信息速览

数据集名称99% 是警报而不是成绩 — Kaggle 脑肿瘤 MRI 三个集
数据类型原始影像,人工标注,元数据
规模110(LGG 分割集);四分类集与检测集未披露患者数
接入方式https://www.kaggle.com/datasets/masoudnickparvar/brain-tumor-mri-dataset
AI 就绪度

三个数据集在 Kaggle 上被下载数十万次,论文引用更多。它们常被放在同一段话里介绍:脑部 MRI、肿瘤、深度学习、高准确率。但它们其实回答三个不同的问题——有没有肿瘤、肿瘤在哪、边界画到哪里。

把三者合在一篇,是因为它们共享同一个缺陷,而这个缺陷比数据本身更值得记录:没有患者标识,因此没有患者级切分,因此没有可信的测试成绩。同一患者的相邻层面被分到两侧,模型学到的是颅骨形状与扫描参数,而不是肿瘤的影像学特征。

这不是作者粗心,而是公开数据缺少患者主键时的结构性后果。本篇把它拆开来讲,并说明为什么在 Kaggle 上拿到 99% 的脑肿瘤分类准确率本身就是警报信号,而不是成绩单。一屏速览见下表。

维度 内容
中文名 Kaggle 脑肿瘤 MRI 数据集家族(分类 / 检测 / 分割)
英文名 Brain Tumor MRI Dataset; Br35H Brain Tumor Detection 2020; LGG MRI Segmentation
发布平台 Kaggle(三个独立页面,无统一组织账号)
发布者 Masoud Nickparvar;Ahmed Hamada;Mateusz Buda 等
首个版本时间 2020 年(Br35H 2020;四分类集同期)
四分类集规模 7200 张 JPEG,训练 5600、测试 1600,类内均衡
检测集规模 3060 张,yes 1500、no 1500,另有 pred 目录与画框版
分割集规模 110 名患者,数千张切片配对掩膜 + data.csv
类别体系 四档(glioma/meningioma/pituitary/notumor);两档(yes/no);二值掩膜
图像格式 四分类与检测为 JPEG/PNG;分割集为 TIF,三通道拼接
患者标识 仅分割集有(文件夹名即患者号)
官方划分 仅四分类集有训练/测试目录
许可 CC BY 4.0;Kaggle 页面未标许可;CC BY-NC-SA 4.0
核心风险 患者级泄漏;源域混杂;无外部验证集
推荐用途 教学演示、流水线验证
不推荐用途 临床性能声明、跨中心泛化论证、监管申报证据
库内对照 BraTS 2026 / BraTS-MEN / TCGA

§1 它要解决的具体麻烦

1.1 这是一个被反复复用的教学样本,不是被认真维护的临床数据

这三个集诞生于个人或小团队的整理:被课程与教程反复引用,下载量不断累积,却少有人回头修它的方法学缺陷。四分类集第二版做了去重与均衡,页面写明「消除了训练与测试之间的重叠」——范围只是图像层面,不是患者层面:近似副本不再重复,同一患者的第 12 层与第 13 层仍是两张不同的图。

它们解决的不是「怎么诊断脑肿瘤」,而是「怎么用一个小巧、下载快、一眼能跑出高分的集合演示深度学习流水线」。课程需要能在笔记本上 20 分钟训完的数据集,它们恰好合格;问题出在有人把演示结果当成研究成果。

它们是好教具,不是好证据。

它像什么 真实定位 用对的场景 用错的后果
教学样本 流水线演示集 课程、作业顺 无
研究基准 不是基准 论文正文数字 不可复核
临床数据 远不是临床数据 无 风险外推

1.2 三条常见的错误期待

第一条是「准确率高说明模型学到了肿瘤」。这三个集上的高准确率,首先说明模型找到了区分训练集与测试集的捷径:相邻层面高度相似,颅骨轮廓、头皮厚度、偏置场、边距裁切方式都带患者指纹。记住这些就能远超人类放射科医生,而对新患者的泛化可能接近随机。这在医学影像机器学习里已被反复复现。

第二条是「官方给了训练/测试目录,切分就可信」。四分类集的目录切分是文件级的,页面从未说明按患者分组;没有患者标识,它不可能按患者分组——无从知道哪两张图属于同一人。目录越是规整,越容易让人放下戒心。

第三条是「三个集拼起来用,样本越多越好」。三者的标签体系、许可与来源全不同,拼合会污染类别定义,更严格的非商业条款还会传染到整个衍生模型。数据量变大不等于信息量变大,尤其当新增部分的分布与原有部分系统性不同时。

错误期待 背后的错误假设 实际情况 后果
高分说明学到了肿瘤 高分必然来自病理特征 高分可能来自患者指纹 泛化被高估
有测试目录就可以放心 目录划分等于患者划分 目录是文件级划分 泄漏未被察觉
拼起来样本更多更好 数据量等于信息量 三源分布与许可均冲突 类别被污染

1.3 它能给到的与给不到的

你的需求 它给的 够不够
一批真实的脑部 MRI 图像 7200 张 / 3060 张 / 数千张切片 够,且下载快
带四类标签的分类任务 四分类集,每类训练 1400 张 够,标签基本干净
带边界框的检测任务 检测集部分画框 勉强,框粗且仅两档
带像素级掩膜的分割任务 分割集,人工 FLAIR 掩膜 够,但只有一类
按患者切分的训练/测试 仅分割集能做到 另两个不够
外部验证集 三个集都没有 不够,需自备
明确的许可条款 两个有,一个未标 部分不够
采集参数与扫描仪信息 几乎全无 不够
与 BraTS 对标的性能 无官方基准 不够
课程演示与教学复现 三个都合适 够,也是最好的用途
发表临床性能声明 高分数不可归因 远不够

1.4 你的处境与它能帮到的事

你的处境 它能帮你什么 下一步该做什么
要在两小时内给学生演示 CNN 分类全流程 下载快、体量小、类别均衡,一次训练可见收敛 同步展示按患者切分前后的分数落差,把泄漏讲成课程内容
论文初稿用了四分类集,审稿人问数据泄漏 可重跑泄漏检测:去重、聚类、分组重切 补做感知哈希去重与分组交叉验证,报两套数字
要做脑肿瘤分割的原型 分割集提供配对掩膜,可直接算 Dice 按患者切分,并明确只适用于低级别胶质瘤
要训练一个能上临床的模型 三者都撑不起临床声明 转向 BraTS 系列或自建带患者 ID 的多中心数据
要做商业产品,需要可商用数据 仅四分类集的 CC BY 4.0 宽松 剔除分割集,逐图核对来源,评估源域混杂
要评测一个跨中心泛化能力 三者均无中心标识 至少留一个独立来源做外部验证,或改用有站点标注的集合
要复现某篇 99% 的论文 多半就是那篇用的数据 先查它的划分方式:复现不了通常因为划分不同

1.5 一句话判断

这三个集是「数据泄漏」这门课最好的教材,也是最差的成绩单;把它们当教具用,你会得到一整套可复现的实验课,把它们当证据用,你会得到一个无法归因的高分。

1.6 不适合谁:四条边界

不适合要用它声明临床性能的人。 没有患者级切分,就没有可信的泛化估计。在这里报出的准确率、敏感度、特异度都不能外推到门诊。审稿人只要问一句「测试集里有没有训练患者的其他层面」,多数论文答不上来。

不适合需要多类肿瘤分型的临床任务。 四分类集只覆盖胶质瘤、脑膜瘤、垂体瘤与无肿瘤,转移瘤、淋巴瘤、儿童胚胎性肿瘤一概不在其中。门诊里常见的「这是哪种肿瘤」远比四选一复杂,四档之外的病例会被强行塞进最近的类。

不适合需要精确边界的放疗或手术规划。 检测集的框位置粗糙,只能回答「大概在哪」;分割集的像素掩膜只针对 FLAIR 上的低级别胶质瘤异常区,无坏死核、增强区、水肿区的亚区分层。靶区勾画需要多序列、多亚区、专家终审的标注,三者都不满足。

不适合要求清晰商用授权的团队。 分割集是 CC BY-NC-SA 4.0,非商业且要求相同方式共享;检测集没有明确许可声明;只有四分类集是干净的 CC BY 4.0。用错一个集,整条产品线的数据合规都要重做。

边界 被卡住的能力 典型失败场景 替代方向
无患者级切分 泛化估计 新患者掉点 自建带 ID 数据
类别只有四档 分型覆盖 转移瘤被错分 更全的肿瘤分型集
无亚区标注 靶区勾画 放疗计划无法生成 BraTS 系列
许可不清或非商业 商用合规 产品上线被叫停 仅用 CC BY 部分

1.7 先分清你要的是哪一层

拿到这三个名字,第一件事不是下载,而是判断你要哪一层能力。三者对应判类别、定位置、画边界三层,能力要求、评估指标与标注依赖完全不同,混在一起讨论正是多数误用的起点。

层次 要回答的问题 对应数据集 关键指标 标注成本
判类别 这是什么肿瘤 四分类集 准确率、宏 F1 每图一个类名
定位置 肿瘤大概在哪 Br35H 敏感度、框 IoU 每图一个框
画边界 边界到哪里 LGG 分割集 每患者 Dice 每层一个掩膜

层次越高,对标注质量与患者级切分的要求越严。分割任务中相邻层几乎一模一样,分到两侧会让 Dice 逼近 1,这种高分毫无意义——所以分割对患者级切分比分类更刚性。

层次 患者泄漏的伤害 源域泄漏的伤害 主要防范手段
判类别 极大 大 去重加分组
定位置 大 中 确认框来源
画边界 极大 小 按患者切分

反过来,分类任务标注成本低,更容易被复制与误用。这三个集的误用集中在分类集,正因为它最便宜,也最容易被当成标准答案。

1.8 一次误用是怎样发生的

误用路径几乎总是同一条:找到四分类集,写一个 ResNet 迁移学习脚本,跑出 98% 测试准确率,觉得可以用,再把结果写进作业、周报与论文初稿。全程没有一步是错的——数据公开、代码标准、指标计算正确。

错的是那个没被问出口的问题:测试集里的图像,有没有来自训练集里的同一名患者。页面上找不到答案,数据里也没有字段可查,于是它就没有被问。

打破这条路径不需要推翻任何一步,只需加一个动作:报分之前先做一次近重复检测与一次推断分组。两步不到一小时,却能改变整篇结论的措辞;最小实现见 §4.5 与 §9.2。

§2 数据构成与规格

2.1 三个集的三套目录逻辑

四分类集是教科书式结构:Training 与 Testing 各含四个以类别命名的子目录,装着平铺的 JPEG。类别即目录名,用 ImageFolder 一行就能加载,设计目标是「零配置可跑」。

Br35H 检测集分 yes、no、pred 三个目录:前两者是两档标签,pred 是演示预测结果的目录,不算标注数据;另有 Br35H-Mask-RCNN 子集,是作者用 Mask R-CNN 跑出的结果示意。画框并非 YOLO txt,而是嵌在部分图像或结果目录里,与「YOLO 格式」的说法有出入——页面没有提供标准 YOLO 标注目录。

LGG 分割集按患者编号组织:每人一个文件夹,内含切片与同名掩膜,掩膜以 _mask 结尾。这是它最大的优点——患者标识保留在路径里,无需额外元数据即可按患者切分。

数据集 顶层结构 标签载体 患者标识位置 加载难度
四分类集 Training / Testing → 4 类目录 目录名 无 极低
Br35H 检测集 yes / no / pred / Mask-RCNN 目录名 + 部分框 无 低
LGG 分割集 患者号目录 → 切片 + 掩膜 掩膜文件名后缀 目录名 中

目录逻辑决定了能写什么代码:分类集可套用任意分类模板,几乎不改加载部分;检测集要先梳理目录,分清哪些是标签、哪些是展示;分割集要写配对逻辑,并处理个别患者缺掩膜。

结构特征 四分类集 Br35H LGG 分割集
层级深度 两层 一层 两层
类别即目录名 是 是 否
目录名可作主键 否 否 是
文件名有语义 部分有 无 有(_mask)
场景 分类集改动量 检测集改动量 分割集改动量
套用分类模板 无 需先降级为二分类 不适用
套用检测模板 不适用 需确认标注格式 不适用
套用分割模板 不适用 不适用 需写配对与按患者切分

2.2 字段与记录的完整字典

分类集与检测集几乎没有字段——纯图像目录,无 CSV 清单、无采集参数、无年龄性别。唯一的表格性文件是分割集的 data.csv。下表统一列出元信息及其有无。

字段 四分类集 Br35H 检测集 LGG 分割集 说明
文件路径 有 有 有 路径即标签
类别标签 有(4 类) 有(2 类) 隐式(全为肿瘤) 分割集只有正样本
患者标识 无 无 有(目录名) 关键差异
切片序号 无 无 间接(文件序) 排序≠解剖顺序
模态序列 无 无 有(FLAIR) 分类集为混合序列
图像尺寸 有 有 有(256×256) 分类集尺寸不一
色彩通道 3 通道 3 通道 3 通道(拼 RGB) 分割集非真彩
分割掩膜 无 无 有 二值
边界框 无 部分 无 检测集框粗
基因组簇 无 无 有(data.csv) 来自 TCGA
扫描仪信息 无 无 无 三个集都缺
采集年份 无 无 间接 TCGA 入组年
专业标注者 无 无 有 人工勾画
许可声明 有 无 有 见 §3
官方划分 有 无 无 仅分类集有
数据体量 168 MB 92 MB 1.06 GB 页面显示值
更新频率 不再更新 版本 12 不再更新 均无维护

2.3 一条记录的完整解剖

四分类集的一条记录就是一张 JPEG 加一个目录名:只有像素和四个类名之一,没有患者、设备或层号信息。

#-- 一条四分类集记录的完整内容
from pathlib import Path

p = Path("brain_tumor_mri/Training/glioma/Tr-gl_0001.jpg")
print(p.parent.name)      #-- 唯一的标签来源:glioma
print(p.suffix)           #-- .jpg
print(p.stat().st_size)   #-- 字节数,与解剖信息无关
#-- 除此之外:没有患者号、没有层面号、没有序列、没有扫描仪

分割集的一条记录是「切片 + 掩膜」配对,由文件名保证。掩膜二值:白色为 FLAIR 高信号异常区,黑色为背景与正常组织。

#-- 一条分割集记录的配对关系
from pathlib import Path

patient_dir = Path("kaggle_3m/TCGA_CS_4941_19960909")
slices = sorted(p for p in patient_dir.glob("*.tif") if "_mask" not in p.name)
print(len(slices))                                    #-- 该患者切片数
img = slices[0]
mask = patient_dir / f"{img.stem}_mask{img.suffix}"   #-- 配对规则
print(img.name, mask.exists())
记录层次 四分类集 Br35H LGG 分割集
最小单位 一张切片 一张切片 切片 + 掩膜
标签所在 目录名 目录名 掩膜像素
可否回溯患者 否 否 是
可否算体数据 否 否 可按目录重组
可否做 3D 模型 需自建体数据 否 可以,但层间距未给出

配对规则有两个坑:一是扩展名大小写,部分镜像改成小写,而代码写死大写,配对即失败;二是掩膜文件被当成切片参与枚举,不过滤会让切片数翻倍。

配对环节 常见错误 后果 检查方式
扩展名大小写 写死扩展名 配对全失败 打印实际后缀
掩膜混入枚举 未过滤 mask 切片数翻倍 比较枚举数与期望
患者目录遍历 只取一层 漏患者 打印目录树

最容易被忽略的是末行:切片间距未给出,而 3D 卷积对层间距极敏感。按固定间距重组,体数据的物理尺度就是错的,体积、表面积等形态学指标随之不可信——所以很多 3D 工作只报相对指标。

下游任务 分类集 检测集 分割集
图像分类 直接可做 需改造 不适用
目标检测 不适用 勉强可做 不适用
2D 分割 不适用 不适用 直接可做
3D 分割 不适用 不适用 先确认层间距
形态学测量 不可行 不可行 受层间距限制

2.4 类别与来源的分布

四分类集训练每类 1400 张、测试每类 400 张,彻底均衡。这是人为重抽样,不是自然患病率:真实门诊里胶质瘤与脑膜瘤的比例、转移瘤的存在、「无肿瘤」的巨大基数都与等量四类相去甚远。均衡让训练稳定、指标直观,却让真实人群上的指标严重偏离。

Br35H 的 3060 张里 yes 与 no 各 1500 张,其余为 pred 目录;这个「一对一」同样是整理者的选择。

LGG 分割集是单类的,不存在均衡问题:全部为低级别胶质瘤患者的 FLAIR 序列,所谓「分布」指每人的切片数,从几张到几十张不等。

维度 四分类集 Br35H LGG 分割集
类别数 4 2 1(全部有肿瘤)
类别比例 每类等量 一比一 不适用
比例来源 人为重抽样 人为整理 自然
是否反映真实患病率 否 否 不适用
负样本来源 Br35H 的 no 类 自身 no 目录 无
肿瘤类型覆盖 3 类 不区分 仅 LGG
年龄覆盖 未知 未知 成人为主

四类等量便于训练,却会误导解释。若部署到真实门诊——「无肿瘤」占七成以上,肿瘤中又以转移瘤居多——均衡数据学到的决策边界会严重偏向阳性。这不是模型能力问题,而是训练分布与部署分布不一致的必然结果。

类别 训练数量 测试数量 真实占比是否可比 备注
glioma 1400 400 否 部分由图源替换
meningioma 1400 400 否 来源未逐类说明
pituitary 1400 400 否 来源未逐类说明
notumor 1400 400 否 全部来自 Br35H

2.5 三个集的字段与同类资源差异

与 BraTS 相比差距是结构性的:BraTS 有多序列(T1、T1c、T2、FLAIR)、多亚区标注、患者级划分与固定评测协议;这三个集只有图像加粗标签。

字段/能力 四分类集 Br35H LGG 分割集 BraTS 2026
多序列 无 无 单序列 FLAIR 四序列
亚区标注 无 无 单区 三亚区
患者标识 无 无 有 有
官方划分 文件级 无 无 患者级且保密
评测协议 无 无 无 容器盲评
中心标识 无 无 间接 有
体数据 无 无 可重组 原生
外部验证集 无 无 无 有

最值得看的是「官方划分」一行:BraTS 按患者划分且测试标签保密;三个集里只有四分类集给了划分,且是文件级的。在最容易被比较的这一项上,两者处于两个方法学层级。

能力项 三个集的最好水平 BraTS 水平 差距性质
序列数量 一 四 结构性
标注粒度 类名或单区 三亚区 结构性
划分正确性 仅分割集 官方患者级 结构性
评测可复现性 靠作者自觉 容器盲评 结构性

2.6 图像本身的技术参数

三个集在图像参数上的共同点是「缺」。四分类集页面明说「图像尺寸不统一」,建议使用者自行缩放、归一化与去边距——工程语言就是:官方没做任何预处理。

LGG 分割集为固定方形、三通道;三通道不是 RGB 真彩,而是三种模态各占一通道拼成的伪彩图。直接用 RGB 预训练权重加载,通道语义是错的,需自行转换。

参数 四分类集 Br35H LGG 分割集
尺寸 不统一 不统一 固定方形
通道 三通道 三通道 三通道(模态拼接)
位深 8 位 8 位 8 位
压缩 JPEG 有损 JPEG/PNG 混合 TIF 无损
是否已去边 部分已裁 部分已裁 已裁
是否有标注叠加 无 部分图有框 无
空间方向信息 无 无 无

「标注叠加」一行值得单说:有的整理者把框烧进像素,这类图混进分类集,框本身就是标签泄漏。Br35H 部分图像带框,用前须确认框在像素上还是独立文件里。

预处理动作 官方是否做过 建议做法 不做会怎样
尺寸统一 否 缩放到固定边长 批内无法堆叠
去边距 否 按前景包围盒裁切 边距成为类别线索
强度归一化 否 按分位数拉伸 源间对比度差异成了信号
通道重排 否 伪彩转单通道或按需 预训练权重语义错位
方向校正 否 保持一致即可 部分图翻转会引入噪声

2.7 三个集的数据字典缺失项

一份数据字典至少要回答:一行是什么、关键字段、缺失值表示、值域。三个集四项都有缺口,逐项列于下表,写数据卡时可直接引用。

字典项 四分类集 Br35H LGG 分割集
一行是什么 未说明 未说明 未说明(可推断)
主键 无 无 患者号加文件名
缺失值约定 不适用 不适用 不适用
值域说明 仅四个类名 仅两个类名 0 与 255
单位 像素 像素 像素
版本变更记录 有(版本 2) 有 无
采样方法说明 无 无 论文中有

「一行是什么」看似多余,其实最关键。分类集一行是切片,不是患者也不是扫描;误以为一行一人,就会把七千张当成七千名患者,样本量误差是数量级的。

常见误读的「样本量」 实际含义 放大倍数 影响
7200 个样本 7200 张切片 取决于每人层数 置信区间被低估
110 个样本 110 名患者 一对一 分割集无需换算
3060 个样本 3060 张切片 未知 同样被低估

§3 三份数据三种出身:来源链与许可

3.1 四分类集是三个源的拼合物

四分类集由 figshare、SARTAJ、Br35H 三源拼合,no tumor 类全部来自 Br35H。准备时发现 SARTAJ 的 glioma 类标注不一致,那部分图被移除,改用 figshare 确认过的 glioma 补齐。

于是四类各自来自不同源:glioma 偏向 figshare,notumor 全部来自 Br35H,meningioma 与 pituitary 未逐类说明。类与源高度耦合,这比图像重复更隐蔽:模型不必学肿瘤形态,只要认得「figshare 的边框与对比度」和「Br35H 的另一种」,四分类就能做得很好。

这正解释了该集上 Grad-CAM 为何常把注意力放在颅骨边缘与图像边距:那里是源域指纹所在。

类别 主要来源 页面是否明说 源域指纹风险
glioma figshare(替代 SARTAJ) 是 中高
meningioma 未逐类说明 否 中
pituitary 未逐类说明 否 中
notumor Br35H 是 高

3.2 Br35H 是检测集的源头,也是四分类集的负样本库

Br35H 出自 Brain Tumor Detection 2020,作者 Ahmed Hamada。页面大段讲流行病学与深度学习动机,对数据本身只说一句:3060 张,yes 与 no 各 1500 张。

它定位为「检测」:先判断有没有,再定位。Br35H-Mask-RCNN 子集是作者用 Mask R-CNN 跑出的结果,不是人工标注——严格说人工标注只有「有/无」两档,定位信息是模型输出的副产物。当带框检测数据用之前,须确认框的来源,页面并未直接回答。

目录 内容 标注类型 能否当训练标签
yes 有肿瘤图像 人工两档 可以
no 无肿瘤图像 人工两档 可以
pred 预测结果展示 无 不可以
Br35H-Mask-RCNN 模型分割结果 模型生成 不可以

3.3 LGG 分割集是三份数据里唯一有出身证明的

LGG 分割集由 Buda、Saha、Mazurowski 整理,配套两篇论文:2019 年 Computers in Biology and Medicine 的基因亚型与形状研究,2017 年 Journal of Neuro-Oncology 的放射基因组学研究。数据取自 TCIA 中 TCGA 低级别胶质瘤集合里至少具备 FLAIR 与基因组簇的 110 名患者。

每个限定词都有分量:「TCIA」意味着有标准的提交与去标识流程;「至少具备 FLAIR」意味着序列选择有明确规则;「基因组簇」意味着可做影像基因组学关联而非只练分割。掩膜是人工在 FLAIR 上勾画的异常区,覆盖全部高信号范围,不分亚区。

它的许可也是三者中最严格的:CC BY-NC-SA 4.0。非商业、署名、相同方式共享三条同时生效。

来源环节 提供方 可追溯性 对本篇的意义
原始影像 TCGA / TCIA 有病例号 可写「基于 TCGA 队列」
序列筛选 按 FLAIR 规则 有论文 选择可复核
掩膜勾画 整理者 / 放射科 论文有说明 可写人工掩膜
基因组簇 TCGA 配套 data.csv 可做关联分析
发布 Kaggle 镜像 页面 只是分发渠道

3.4 三份许可并排看

数据集 页面许可 版本 商用 再分发 衍生作品
四分类集 CC BY 4.0 4.0 允许 允许,需署名 允许
Br35H 页面未列出许可字段 未知 不确定 不确定 不确定
LGG 分割集 CC BY-NC-SA 4.0 4.0 禁止 允许,需署名 须相同方式共享
BraTS 2026 CC BY / CC BY-NC 混合 视赛道 视赛道 视赛道

Br35H 的许可空缺值得单说:Kaggle 许可由发布者自选,页面不显示即未声明。在企业合规流程里,这通常等价于「不可用」而非「随便用」。

3.5 来源链决定了你能主张什么

出身决定能支撑什么结论:有 TCIA 出身与论文配套的 LGG 分割集,可写「基于 TCGA 低级别胶质瘤队列」;有四源拼合说明的四分类集,可写「来自三个公开源的整合」,但不能写「某医院的患者队列」;Br35H 连来源都没说清,只能写「一个公开的 Kaggle 集合」。

投稿时这个区别很实际:审稿人对「患者队列」的要求比「公开图像集合」高一个量级。

§4 泄漏是怎么发生的:机制、证据与检查

4.1 泄漏的三种形态在同一批数据上叠加

数据泄漏在医学影像里有三个层次,这三个集恰好把三层都占全了。

第一层是重复泄漏:同一张图或近乎相同的副本同时出现在两侧。四分类集第二版已删除重复图,但「删除重复」通常基于字节级或感知哈希精确匹配,对轻微重编码、轻裁切的副本不敏感。

第二层是患者泄漏:同一患者的不同切片分列两侧。只有分割集能处理,另两个集没有患者标识。

第三层是源域泄漏:类别与来源耦合,模型学到的是采集风格而非病理。四分类集最明显,四个类确实对应不同数据源。

三层效应可叠加:即使重复图删干净,患者泄漏与源域泄漏仍能把准确率推到接近满分。

泄漏形态 出现在哪一层 需要什么信息才能处理 三个集能否处理
重复泄漏 图像 图像指纹 三者都可自建
患者泄漏 患者 患者主键 仅分割集有
源域泄漏 来源 来源标签 三者都无

打个比方:重复泄漏像两本书共用一页,患者泄漏像同一本书的两页分给两人,源域泄漏像整架书出自同一家印刷厂。第一种比对字迹即可发现,后两种要追问页码归属与印厂来源;真正难处理也影响最大的,正是后两者。

层次 可观测的迹象 检测成本 修复成本
重复泄漏 哈希距离极小 低 低(删图)
患者泄漏 尺寸与统计高度相似 中 高(重划分)
源域泄漏 类与尺寸或对比度共变 中 高(重采样)

4.2 一则系统性的证据:去重后只剩三千余张唯一扫描

2026 年 Journal of Medical Systems 的一篇工作直接处理了这个问题:作者指出「许多被广泛采用的脑肿瘤 MRI 数据集存在重复引起的数据泄漏」,并建立自动化清洗流水线移除重复扫描。跑完后,一个被广泛使用的公开数据集只剩 3522 张唯一扫描,他们以此为无泄漏基准做全部对比实验。

这就是最有力的证据:号称七千张的集合,去掉重复后只剩不到一半。而且这还只是图像层面去重,不含患者分组,真实患者数只会更少。

同一篇工作提出的 MTA-Swin 在该基准上报告 98.57% 的三随机种子均值。数字仍高,但前提变了:分母是去重后的唯一扫描,且做了分层交叉验证与 Grad-CAM。高分并非不能出现,只是必须先说清在什么数据上、怎么切的。

98.57% 与 99% 以上相差不大,含义却完全不同:前者在承认并处理泄漏后仍能达到,后者出自未处理的划分。只看小数点后一位会误以为相近,实际差的是「能否被引用」这一整道门槛。

项目 原文划分 去重后基准 差在哪
数据基数 七千张量级 三千余张唯一扫描 重复被移除
划分依据 目录级 分层交叉验证 更接近真实评估
报告方式 单次或多次 三种子均值 更稳健
可引用性 低 中 前提被写清

两者的关系容易被误读成「去重后性能掉了」。实际上它们不是同一实验的两次测量,而是不同数据集与不同协议的结果,放在一起只提示「前提不同、不可直接相减」,并不证明「去重会损失性能」。

比较方式 是否成立 原因
直接相减 不成立 数据集与协议都不同
定性比较 成立 一个处理了泄漏,一个没有
排榜 不成立 分母不同

4.3 一份对照:同一任务、不同切分下的分数带

把近年结果排在一起,是一条很宽的分数带:四分类集原样划分上 99% 以上是常态;患者级切分或去重基准上会掉;跨中心外部数据上掉得更多。

研究/设定 数据基础 划分方式 报告准确率 可读到什么
四分类集原样划分(大量论文) 7200 张 文件级 99% 以上 同分布,含患者泄漏
MTA-Swin 论文 去重后 3522 张 分层交叉验证 98.57%(三种子均值) 仍高,但前提明确
混合源集成+校准 多源整合 外部 TEST2 域偏移 内部 99.33%,外部下降 域偏移是真瓶颈
患者级分层五折 内部数据九成训练 患者级五折 98.3% ± 0.9% 需机构数据
单中心临床切片集 院内部 8040 张 五折 + 外部零样本 内部 97.42%,外部 94.82% 外部验证见真实落差

这张表该读的不是「谁最高」,而是「谁把前提写清楚了」。同为 98% 上下,分别来自文件级切分、患者级交叉验证与跨中心外部验证,证据强度差一个量级。

4.4 案例:同一个患者的第 12 层与第 13 层

设想一名 47 岁女性胶质瘤患者在某中心做了一次增强 MRI,共 24 个轴位层面。整理者按 80/20 随机划分:第 3、7、11、16、20 层进训练,第 12、13、18、23 层进测试。第 12 与第 13 层解剖上几乎连续,颅骨轮廓、脑室形态、头皮脂肪厚度、偏置场梯度全部一致。

模型见过第 11 层,遇到第 12 层时几乎不必识别肿瘤,只要认出「颅骨形状同第 11 层,而它标的是胶质瘤」。测试准确率因此轻松越过 99%,对从未见过的新患者却可能完全失败。

关键不在「随机划分错了」,而在于缺少患者主键时随机划分是唯一可执行的划分。整理者别无选择:问题不是操作失误,而是数据结构不允许正确操作。

这个案例后文还会出现:§4.5 用图像指纹把它找出来,§7.3 讲它如何扭曲文献数字,§9.2 讲怎么在最短流程里隔离它。

层面 第 11、12 层共享的线索 模型能否利用 对新患者是否成立
颅骨轮廓 完全一致 能 不成立
头皮脂肪厚度 完全一致 能 不成立
偏置场梯度 完全一致 能 不成立
脑室形态 几乎一致 能 部分成立
不同患者间 差异大 不能 成立

模型两种能力要分开报告:在已知患者的新切片上识别病灶,与在未知患者上识别。前者用于同一患者随访,后者才是诊断场景的主要需求。原划分只能测前者,多数论文却把它当后者来写。

报告场景 对应能力 三个集能否支持 建议措辞
同患者随访 已知患者识别 能 「同患者不同层面」
新患者诊断 未知患者泛化 需自建划分 「按推断分组」
跨中心部署 跨源泛化 不能 「需外部验证」

4.5 三条可执行的泄漏检查

第一条:图像级近重复检测。 用感知哈希(pHash)或骨干嵌入做近邻搜索,把距离低于阈值的图像聚成簇;跨训练/测试的簇即泄漏证据。无需患者标识,还能给出可复核清单。

第二条:按尺寸与像素统计聚类。 同一患者、同次扫描的切片尺寸与灰度高度一致,把 (高, 宽, 均值, 方差) 画散点会看到明显团块;团块跨训练与测试即可判定泄漏。四分类集上这一步常直接暴露源域混杂——不同来源形成分离团块。

第三条:推断分组后重切。 把前两步的簇当作「推断患者」,用 GroupKFold 重做交叉验证。这不是真实分组,必须声明为推断,但它给出的分数下界比文件级切分诚实得多。

#-- 用感知哈希做图像级近重复聚类,找出跨训练/测试的簇
import imagehash
from PIL import Image
from pathlib import Path

def phash_of(p, size=8):
    return imagehash.phash(Image.open(p).convert("L"), hash_size=size)

train_dir = Path("brain_tumor_mri/Training")
test_dir = Path("brain_tumor_mri/Testing")
train_h = {str(p): phash_of(p) for p in train_dir.rglob("*.jpg")}
test_h = {str(p): phash_of(p) for p in test_dir.rglob("*.jpg")}

leaked = []
for tp, th in test_h.items():
    for rp, rh in train_h.items():
        if th - rh <= 4:          #-- 汉明距离阈值,4 为常用起点
            leaked.append((tp, rp, th - rh))
print(len(leaked))

阈值 4 只是起点,应按数据调并用人工抽查校准。leaked 清单可直接进论文附录,比一句「可能存在泄漏」有力得多。

#-- 按尺寸与灰度统计做第二层聚类,暴露源域混杂
import numpy as np
from PIL import Image
from pathlib import Path
from collections import defaultdict

rows = []
for p in Path("brain_tumor_mri/Training").rglob("*.jpg"):
    a = np.asarray(Image.open(p).convert("L"), dtype=np.float32)
    rows.append((p.parent.name, a.shape[0], a.shape[1], a.mean(), a.std()))

buckets = defaultdict(int)
for cls, h, w, m, s in rows:
    buckets[(cls, h // 16, w // 16)] += 1
for k in sorted(buckets, key=lambda k: -buckets[k])[:10]:
    print(k, buckets[k])

若某类图像集中在少数尺寸桶、其他类分散,类别就与尺寸绑定,模型完全可以靠尺寸分类。

4.6 为什么检测集与分割集的泄漏性质不同

Br35H 的主要问题不是患者泄漏,而是标签粒度过粗:只有「有/无」两档,框的来源也不确定。模型最多学到「有没有高信号团块」,学不到「这是什么肿瘤」。

LGG 分割集不同:有患者标识可按患者切分,有像素掩膜可算 Dice,有 TCGA 基因组簇可做关联分析。它的限制是规模与单类,而非泄漏。

泄漏形态 四分类集 Br35H LGG 分割集
重复泄漏 第二版已处理,残余未知 可能性高 低
患者泄漏 无法处理 无法处理 按目录切分可控
源域泄漏 高(类与源耦合) 中 低
标签噪声 中(glioma 有问题) 高(框粗) 低
表面相似度 高 中 低

检测集的框即便出自人工,也普遍偏松:常把整个脑区包进去而不紧贴肿瘤。这对分类无害,对定位评估却致命——IoU 会因画法被系统性压低或抬高。分割掩膜逐像素,无此问题,但只有单区。

标注形态 误差来源 对指标的偏置 补救难度
类名 边界病例争议 类别混淆 中
粗框 框过松 IoU 失真 高
单区掩膜 无亚区分层 Dice 偏高 中

补救成本也不同:四分类集去重后重切最便宜;检测集要先确认框来源,可能要联系作者,成本不可控;分割集本就该按患者切分,改起来最容易。

数据集 最便宜的补救 耗时量级 剩余风险
四分类集 去重加推断分组 小时级 源域混杂仍在
Br35H 确认框来源 取决于作者 粒度太粗
LGG 分割集 改为按患者切分 小时级 规模与单类

§5 怎么取、怎么装、怎么先跑通

5.1 三种获取路径

获取方式有三种:网页手动下载、Kaggle CLI、Kaggle API。三者都需账号,区别在于是否要人盯着。对这几个 GB 以内的集合,CLI 最省事。

路径 需要账号 可脚本化 适合场景 缺点
网页下载 是 否 一次性取用 无法进 CI
CLI 是 是 日常开发 需先配凭据
API 是 是 程序内取数 版本易变
#-- 安装 CLI 并配置凭据
pip install kaggle
mkdir -p ~/.kaggle
#-- 把网页 Account 页下载的 kaggle.json 放进去
chmod 600 ~/.kaggle/kaggle.json
kaggle --version
#-- 下载三个集
kaggle datasets download -d masoudnickparvar/brain-tumor-mri-dataset -p data/ --unzip
kaggle datasets download -d ahmedhamada0/brain-tumor-detection -p data/ --unzip
kaggle datasets download -d mateuszbuda/lgg-mri-segmentation -p data/ --unzip

CLI 报 403 通常是凭据未生效或未接受条款:先在网页打开数据集页点同意,再重试。

5.2 用 Python API 拉取并核对体量

#-- 用官方 API 拉取,并按页面公布的体量核对
from kaggle.api.kaggle_api_extended import KaggleApi
from pathlib import Path

api = KaggleApi()
api.authenticate()

items = [
    ("masoudnickparvar/brain-tumor-mri-dataset", "data/"),
    ("ahmedhamada0/brain-tumor-detection", "data/"),
    ("mateuszbuda/lgg-mri-segmentation", "data/"),
]
for slug, dest in items:
    api.dataset_download_files(slug, path=dest, unzip=True)
    print(slug, "done")

root = Path("data/brain_tumor_mri")
print(len(list(root.rglob("*.jpg"))))   #-- 应接近 7200

核对体量是必要一步:公开数据集被重打包、截断、加壳并不罕见,下载后先数文件再开训。

核对项 期望值来源 偏差的含义 处置
文件总数 页面 Summary 下载不完整 重新下载
各类文件数 页面目录 版本不同 核对版本号
单文件可读 文件系统 传输损坏 逐文件试读
目录层级 实际解压结构 打包方式不同 调整路径

5.3 把目录装成可训练的数据集

#-- 四分类集:一行加载,再按患者推断分组重切
from torchvision import datasets, transforms
from pathlib import Path

tf = transforms.Compose([
    transforms.Resize((224, 224)),
    transforms.ToTensor(),
])

train_ds = datasets.ImageFolder("data/brain_tumor_mri/Training", transform=tf)
test_ds = datasets.ImageFolder("data/brain_tumor_mri/Testing", transform=tf)
print(train_ds.class_to_idx)
print(len(train_ds), len(test_ds))

ImageFolder 按目录名生成类别索引,顺序按字母排列,与页面顺序不同。写报告时务必打印 class_to_idx 并附映射表,否则无法核对混淆矩阵的列对应哪一类。

#-- 分割集:按患者构建、按患者切分
from pathlib import Path
import numpy as np
from PIL import Image

root = Path("data/kaggle_3m")
patients = sorted([d for d in root.iterdir() if d.is_dir()])

def load_pair(img_path):
    m_path = img_path.with_name(f"{img_path.stem}_mask{img_path.suffix}")
    img = np.asarray(Image.open(img_path).convert("L"), dtype=np.float32) / 255.0
    msk = (np.asarray(Image.open(m_path).convert("L")) > 127).astype(np.float32)
    return img, msk

p0 = sorted(patients[0].glob("*.tif"))
img, msk = load_pair([p for p in p0 if "_mask" not in p.name][0])
print(img.shape, msk.shape, msk.mean())

掩膜以大于 127 二值化,是因为 TIF 掩膜通常存 0 与 255。先算 msk.mean() 即可看出该切片的肿瘤占比,占比为零的切片在训练中贡献极小。

5.4 三个集的最小可用流水线

对分类集,最小流水线是「加载 → 分组重切 → 训练 → 报两套分数」。对检测集,最小流水线是「先确认框的来源 → 若无人工框则退化为二分类」。对分割集,最小流水线是「按患者切 → 训练 U-Net → 报每患者 Dice」。

数据集 最小任务 最小模型 最小指标 最小交付物
四分类集 四分类 ResNet18 迁移 准确率 + 混淆矩阵 两套分数
Br35H 二分类 任意 CNN 准确率 + 敏感度 框来源说明
LGG 分割集 二值分割 U-Net 每患者 Dice 患者级划分清单

5.5 训练前的三次核对

第一次:文件数是否与页面一致。四分类集七千余张,检测集三千张量级,分割集约 7860 个文件(含掩膜)。差太多说明下载不完整或版本不同。

第二次:类别索引顺序。ImageFolder 的字母序与页面顺序不同,混淆矩阵标签必须与之对应。

第三次:图像是否被重采样。四分类集体量约 167 MB,分辨率不高,很多图已裁到只剩脑部区域,说明原始版本可能更大,Kaggle 版是处理过的。

核对序号 核对对象 期望 不过的后果
一 文件总数 与页面一致 分母错,比例失真
二 类别索引 与混淆矩阵对应 类别标错
三 是否重采样 记录在案 无法与原文对齐

5.6 常见取数故障

现象 可能原因 处置
CLI 返回 403 凭据未生效或未接受条款 网页点同意后重试
目录多一层嵌套 Kaggle 打包差异 先 find 确认顶层再改路径
图像打不开 部分文件为零字节 逐文件试读并记录
类别目录大小写不一 跨源合并残留 统一小写后再加载
掩膜与切片数量不等 个别患者缺掩膜 按配对关系取交集
尺寸差异极大 源域混杂 统一缩放并记录损失

5.7 存储与算力预算

三个集合计不到两个 GB,笔记本硬盘足够。真正吃资源的是解码与增强,把数千张图放大到 224 像素以上时内存占用会明显上升。

项 四分类集 Br35H LGG 分割集 合计
压缩包体量 约 168 MB 约 92 MB 约 1.06 GB 约 1.3 GB
解压后估计 数百 MB 数百 MB 约 1 GB 两 GB 以内
单卡训练可行性 可行 可行 可行 均可单卡完成
典型训练耗时 十分钟量级 十分钟量级 半小时量级 视模型而定

这么轻的体量有个副作用:使用者倾向不做数据检查就直接开训。一次近重复检测只占一次训练的几分之一,多数流程里却没有这一步。

5.8 一次完整的取数核对记录

下面的脚本串起下载后的核对:数文件、看类别、查尺寸、验配对,装了 Python 即可跑,不依赖 GPU。

#-- 下载后的一次性核对:文件数、类别、尺寸、掩膜配对
from pathlib import Path
from collections import Counter
from PIL import Image

root = Path("data/brain_tumor_mri")
cnt = Counter(p.parent.name for p in root.rglob("*.jpg"))
print("四分类各类文件数:", dict(cnt))

sizes = Counter()
for p in list(root.rglob("*.jpg"))[:200]:
    with Image.open(p) as im:
        sizes[im.size] += 1
print("抽样前 200 张的尺寸分布:", sizes.most_common(5))

seg = Path("data/kaggle_3m")
missing = []
for d in [x for x in seg.iterdir() if x.is_dir()]:
    for p in d.glob("*.tif"):
        if "_mask" in p.name:
            continue
        if not p.with_name(f"{p.stem}_mask{p.suffix}").exists():
            missing.append(p)
print("缺掩膜的切片数:", len(missing))

三行输出对应三个核对项:文件数对不上说明下载不完整;尺寸分布极散说明源域混杂;缺掩膜数非零说明配对要按交集处理。三项都过,才谈得上模型。

§6 与库内条目的关系

6.1 关系图谱

本篇与库内三条主线相连。

第一条是 BraTS 系列,代表「有协议」的一端:多序列、多亚区、患者级划分、容器盲评、跨中心赛段。本篇三个集是「无协议」的一端。两者不是优劣关系而是用途分层:BraTS 做正式研究,Kaggle 集做教学与流水线验证。

第二条是 TCGA:LGG 分割集的数据来自 TCGA 低级别胶质瘤集合,库内已有 TCGA 总条目。理解来源背景应从 TCGA 条目进入,而非 Kaggle 页面。

第三条是 脑影像基础设施类条目:BrainWeb 提供仿真真值,IXI 提供健康脑多序列基准,与本篇构成对照——前者检验预处理是否正确,本篇三个集检验流水线能否在真实病理数据上跑通。

库内条目 关系类型 差异要点 何时选它
BraTS 2026 同任务不同协议 多序列、多亚区、盲评 正式分割研究
BraTS-MEN 同器官不同肿瘤 脑膜瘤专项、靶区 脑膜瘤或靶区研究
TCGA 上游来源 多组学、无影像掩膜 影像基因组学关联
BrainWeb 仿真对照 无真实病理 检验预处理流水线
IXI 健康对照 无肿瘤 做配准与分割基线
BHX 脑出血检测框 同形态不同任务 大规模框标注 检测任务本体

6.2 检索路径

站内检索可用这几条路径。

按任务找:脑肿瘤分类 → 本篇;脑肿瘤分割 → BraTS 系列与本篇的 §2;脑肿瘤检测 → 本篇与 BHX。

按数据来源找:TCGA → TCGA 条目 → 本篇分割集;公开教学集 → 本篇。

按方法学找:数据泄漏 → 本篇 §4;患者级切分 → 本篇 §4.5;评测协议 → BraTS 2026。

检索词 命中条目 命中的是哪一节
脑肿瘤分类 本篇 §2 与 §3
胶质瘤分割 本篇、BraTS 2026 §2、§4
数据泄漏 本篇 §4 全节
患者级切分 本篇 §4.5
FLAIR 本篇、BraTS 系列 §2.2
TCGA 影像 TCGA、本篇 §3.3

6.3 与 BraTS 的逐项分工

库内 BraTS 条目有六个(2026 主赛、脑膜瘤、转移瘤、儿童、非洲区域、脑膜瘤放疗),覆盖有协议的一端;本篇覆盖无协议的一端。两者是一条流水线上的两道工序,不是替代关系。

工序 用哪个 目的 通过标准
代码正确性 本篇三个集 确认加载、增强、损失没写错 已知数据上能收敛
方法比较 本篇去重基准 粗筛架构 无泄漏下的相对排序
正式评测 BraTS 系列 与公开榜单比较 盲评分数
临床申报 自建多中心数据 证明泛化与合规 前瞻或外部验证

跳过第一道,后续数字可能被低级 bug 污染;停在第一道,数字可能被泄漏污染。后者正是三份 Kaggle 数据最容易导致的——分数好到没人想往下走。

6.4 消歧:三个同名不同物的东西

站内检索时容易混淆三类条目。

第一类是同一器官的不同数据集:BraTS-MEN 也是脑膜瘤,但是带掩膜的挑战赛数据;四分类集里的 meningioma 只是一个类名。同名,用途完全不同。

第二类是同一数据的上游与镜像:TCGA 条目是上游,LGG 分割集是它在 Kaggle 的影像镜像。引用原始来源走 TCGA,下载切片与掩膜走本篇。

第三类是同一任务的不同形态:脑出血检测框(BHX)与 Br35H 都是检测任务,但前者有规模的框级标注,后者是两档分类加少量框。都叫检测,可用性差很远。

容易混淆的名字 实际指什么 真正差异 判断方法
脑膜瘤数据 BraTS-MEN 或四分类类名 有无掩膜 看是否给体数据
TCGA 影像 TCGA 总集或本篇镜像 上游与下游 看是否带掩膜
检测集 BHX 或 Br35H 标注规模 看是否有人工框文件

§7 质量评估与局限性

7.0 阅读本节前的一个前置校正

有一个常见的误判需要先纠正:把「Kaggle 下载量高」当成「数据质量高」。下载量只反映易得性,与标注质量、划分正确性、许可清晰度都无关。这三个集之所以下载量高,恰恰因为它们小、快、开箱即用——这些优点与「能否支撑临床结论」是两条互不相干的轴。

第二个误判是把「第二版已去重」当成「泄漏已解决」。去重解决的是重复泄漏,不解决患者泄漏与源域泄漏。这两个才是这三个集的主要问题。

第三个误判是把「论文里用了它并报了 99%」当成同行认可。同一批数据被不同划分方式反复使用,分数高低主要取决于划分方式,而不是方法优劣。

7.1 五维评分

采用 DAIMS 框架的五个维度,每维 5 分制。评分对象是三个集的合集,但分维度时按各自最弱的一环计。

维度 评分 理由
可得性(Accessibility) 4.5 一键下载,无需审批或伦理申请
可用性(Usability) 3.0 分类集开箱可跑;检测集框来源不明;分割集需按患者重组
标注质量(Annotation Quality) 2.5 分类标签干净但无标注者;检测框粗;掩膜为人工单区
方法学严谨性(Rigor) 2.0 无患者标识、无患者级划分、无评测协议、无外部验证
代表性与公平性(Representativeness) 1.5 类别人为均衡,不含转移瘤,人群信息缺失
DAIMS 综合 2.7 教学友好,研究受限

7.2 各维度失分的具体位置

可得性得分高不完全是好事:门槛低意味着用户庞大,其中不少人不会读页面上关于来源与划分的说明。被误用的概率与易得性成正比。

标注质量失分在两处:一是分类集没有标注者信息——glioma 与 meningioma 的边界由谁定?若只按原来源目录继承,标注质量就等同于原来源,而页面自认 SARTAJ 的 glioma 有问题;二是检测集的框,人工还是模型在页面上找不到答案。

方法学严谨性是全篇的核心失分:没有患者标识就没有患者级切分,没有官方划分跨论文数字就无法比较,没有外部验证集则所有泛化声明都缺一环。

代表性失分在类别体系:四类等量是人为的,真实门诊里转移瘤占比不低,却根本不在类别表里。

维度 主要失分点 失分的方向 一句话
可得性 几乎无门槛 双刃剑 越易得越易误用
可用性 检测框来源不明 拉低 需先确认才能用
标注质量 无标注者信息 拉低 标签是继承来的
方法学 无患者级划分 大幅拉低 核心缺陷
代表性 类别四档且均衡 拉低 不是真实分布

7.3 已知的、可枚举的偏差

偏差 方向 影响 可否补救
患者泄漏 高估性能 分数虚高,泛化被夸大 部分可补救
源域混杂 高估性能 模型学到采集风格 难,需知道源标签
类别人为均衡 指标偏离真实 阳性预测值失真 需重加权
肿瘤类型缺失 覆盖不全 转移瘤等被错分 不可补救
无年龄性别 亚组分析不可做 无法评估公平性 不可补救
无扫描仪信息 无法做域分析 无法解释失败案例 不可补救
检测框粗糙 定位指标失真 IoU 不可信 需重标
单类分割 泛化受限 只适用 LGG 需扩展数据

§4.4 的案例对应的正是第一行:患者泄漏让性能系统性高估,幅度取决于随机划分时同一患者切片被拆到两侧的概率。切片越多、训练测试比例越接近,概率越高。

7.4 外部验证矩阵

验证方式 四分类集 Br35H LGG 分割集 说明
文件级随机划分 可做 可做 不适用 默认做法,含泄漏
患者级划分 不可做 不可做 可做 仅分割集
去重后留出 可做 可做 可做 需自建流水线
跨来源留一 勉强可做 不可做 不适用 需知道源标签
跨中心外部验证 不可做 不可做 需另找数据 无中心标识
与 BraTS 交叉验证 不可行 不可行 序列不同 任务与协议都对不上

这张矩阵说明:这三个集上能做的最强验证是「去重 + 推断分组 + 内部交叉验证」。跨中心泛化必须另找数据——不是偷懒,而是数据没提供。

验证强度 能排除什么 不能排除什么 结论强度
文件级划分 几乎没有 重复、患者、源域 弱
去重后划分 重复泄漏 患者、源域 中弱
推断分组后 部分患者泄漏 源域、中心差异 中
外部独立数据 患者与源域大部分 标签定义差异 较强

7.5 它为何能持续:低门槛与高回报的组合

这三个集能活到今天,靠一条极短的正反馈回路:下载快、跑得快、分数高、论文收得快。任何一环变长,流行度都会下降。这也解释了它们为何不会被修好:患者级划分、去重、外部验证都要增加工作量,收益却是分数变低,整理者没有动力。

只要「高准确率的脑肿瘤分类」仍可发表、可引用、可当课程案例,这三个集就会继续被使用。真正的改变不来自数据集修订,而来自评测习惯:当审稿人开始要求患者级划分,它们的用法自然会退回教学。

回路环节 需要多久 收益 阻碍
下载 分钟级 立即可用 无
训练 十分钟到半小时 高分数 无
写稿 天级 可发表 无
修数据 月级 分数变低 缺激励

§8 生态位与历史

8.1 三个集的时间线

Br35H 明确带 2020 年份,三者中定位最清楚。作者在页面花大量篇幅讲流行病学,语气像科普加项目说明,也符合当时 Kaggle 数据集页面的普遍风格。

四分类集约在 2020 年出现,此后多次迭代,第二版做了去重与均衡(页面写明「版本 2」)。它远比前两者流行,因为第一次把「四类、均衡、开箱可跑」同时做到。

LGG 分割集源头更早:两篇配套论文分别是 2017 年与 2019 年,数据取自 TCGA 既有集合。它在 Kaggle 上更像论文配套数据的镜像,而非一次独立整理。

时间 事件 数据集
2017 放射基因组学论文 LGG 分割集(源头)
2019 基因亚型与形状论文 LGG 分割集(源头)
2020 Br35H 发布 检测集
2020 前后 四分类集首版 四分类集
之后 第二版去重与均衡 四分类集
2026 去重论文指出普遍重复泄漏 全家族

8.2 为什么它们成了教学标准件

教学需要特定组合:小到能在笔记本跑完、类别少到指标一眼能懂、准确率高到学生有成就感、许可宽松到可随意分发。同时满足的公开脑 MRI 集合不多,这三份恰好都满足。

相比之下 BraTS 要注册、下载数 GB 到数十 GB、理解多序列与多亚区、跑容器评测,对研究者友好、对初学者不友好。教学与科研的选型逻辑完全不同,这解释了它们为何在教学里不可替代。

8.3 在方法学演进中的位置

它们在文献里的另一个角色是「试金石」:新架构出现时作者都会在上面跑一遍,因为大家都跑过、数字可比。做法本身没错,问题是比较基准不统一。

近年来的纠偏工作也多从这三个集入手:先证明泄漏存在,再提出无泄漏基准,最后在新基准上重新排榜。这条路径正在成为惯例,2026 年那篇去重工作即是典型。

阶段 主流做法 对三个集的用法
2017–2020 追求高准确率 直接使用原划分
2021–2023 架构竞赛 原划分上刷分
2024–2025 质疑划分 加做交叉验证
2026 起 去重与患者级切分 自建无泄漏基准

8.4 与 BraTS 的分工

把两者放在一起看,分工很清楚。

BraTS 负责「能不能用」:用盲评、保密测试集、跨中心赛段回答模型在未见数据上到底行不行。三个 Kaggle 集负责「跑不跑得通」:以极低门槛回答流水线有没有写错。

健康的团队两个都用:先用 Kaggle 集跑通代码,再用 BraTS 或自建数据验证。跳过第一步浪费时间,停在第一步浪费结论。

维度 三个 Kaggle 集 BraTS 系列
入门门槛 极低 高(注册、体量大)
评测协议 无 容器盲评
患者级划分 仅分割集可做 官方提供
多序列 无 有
适合阶段 原型与教学 正式研究与申报
典型误用 报 99% 当成果 无(协议约束强)

8.5 使用人群画像

从页面标签与评论可看出用户构成。四分类集的标签集中在 Cancer、Image、Health、Deep Learning、Multiclass Classification、Transfer Learning 六类,这一组合说明它被当作迁移学习入门样本,而非临床数据集。评论区的用途以学习、研究、应用为主,学习占比不小。

这意味着:论文里用了它,很可能与大量课程作业共享同一份数据与同一种划分。此时数字本身不构成贡献,贡献只能来自你如何处理这个数字。

使用者类型 占比观感 典型用途 对泄漏的敏感度
学习者 高 跑通教程 低
研究者 中 方法对比 中
应用方 低 原型验证 中
课程作者 中 教学案例 视课程而定

8.6 未来三年它大概会变成什么

最可能的变化不是数据被修好,而是引用规范变严:2026 年的工作里,「无泄漏基准」成为必须声明的条件,去重流水线被单独描述,患者级交叉验证从加分项变成基本项。

若趋势延续,它们的角色会从「论文常用数据集」退回「教学标准件与泄漏案例」。这不是贬低,而是回归本位:把脑肿瘤分类的全部陷阱集中展示的教学材料,比被误当基准的数据集有用得多。

情景 触发条件 对使用者的影响
维持现状 评测习惯不变 继续产生不可比较的 99%
引用规范收紧 期刊要求声明划分 补做去重与分组
出现无泄漏版 维护者修订 旧结果需重跑
被新数据集替代 出现带患者 ID 的超大集 退回教学用途

§9 使用指引

9.1 三种角色的路径

学生与课程作者。 用四分类集做第一个实验,把泄漏检测作为实验的一部分:先跑文件级划分记录 99% 级分数,再跑去重与分组记录下降后的分数。这个对比比任何调参都更能说明问题。

算法工程师。 用四分类集验证代码、分割集验证分割流水线,然后立刻转向有患者标识的数据。把它们当单元测试,不当验收标准。

临床研究者。 若一定要用,只用分割集,且只做影像基因组学关联与分割方法学,不做诊断性能声明。分类集与检测集在你的场景里没有可用之处。

角色 首选集 用法 不做什么
学生 四分类集 分类实验 + 泄漏对比 不宣称泛化
课程作者 四分类集 + 分割集 分类与分割两节课 不省略泄漏讨论
算法工程师 全部 流水线单元测试 不用它做验收
临床研究者 分割集 关联与分割方法学 不做诊断声明
产品团队 四分类集 仅限原型 不把模型上线

9.2 一条最短的可用流程

下面这条流程从下载到出两套分数,大约二十行代码,可以直接跑。它的价值在于把「泄漏」从抽象讨论变成一组可比较的数字。

#-- 最短流程:下载 → 去重 → 分组 → 两套分数
import numpy as np, imagehash
from PIL import Image
from pathlib import Path
from sklearn.model_selection import StratifiedKFold, GroupKFold
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import make_pipeline
from sklearn.metrics import accuracy_score

root = Path("data/brain_tumor_mri")
paths, labels = [], []
for split in ("Training", "Testing"):
    for p in (root / split).rglob("*.jpg"):
        paths.append(p); labels.append(p.parent.name)
labels = np.array(labels)

feat, groups = [], []
for i, p in enumerate(paths):
    a = np.asarray(Image.open(p).convert("L").resize((64, 64)), dtype=np.float32).ravel() / 255.0
    h = imagehash.phash(Image.open(p).convert("L"), hash_size=8)
    feat.append(a); groups.append(int(str(h), 16) % 9973)   #-- 感知哈希当推断患者组
feat = np.array(feat); groups = np.array(groups)

def run(cv, tag):
    acc = []
    for tr, te in cv.split(feat, labels, groups):
        m = make_pipeline(StandardScaler(), LogisticRegression(max_iter=2000))
        m.fit(feat[tr], labels[tr])
        acc.append(accuracy_score(labels[te], m.predict(feat[te])))
    print(tag, round(float(np.mean(acc)), 4))

run(StratifiedKFold(5, shuffle=True, random_state=0), "切片级 StratifiedKFold")
run(GroupKFold(5), "推断分组 GroupKFold")

用感知哈希值取模当「推断患者组」是粗糙但可复现的近似,真实使用应以哈希距离聚类。即便是这个版本,两行输出的落差通常已足够说明问题。

§4.4 的案例在此兑现:同一患者的第 12 与第 13 层若落在同一推断组,GroupKFold 会把它们一起留在训练侧或测试侧,分数随之下降。降幅越大,原划分的泄漏越严重。

输出项 含义 正常表现 异常表现
切片级准确率 含泄漏的上界 很高 偏低说明代码有错
分组级准确率 更接近真实 中等 与切片级差距大即泄漏重
两者差值 泄漏的量级 数点到十余点 二十点以上重点排查

9.3 引用方式

引用四分类集应引 Kaggle 页面本身,并在方法里写明「使用官方 Training/Testing 划分」或「重新划分,方式为 X」。不写明划分,数字无法复核。

引用 Br35H 时,需要额外说明框的来源。若无法确认,应在局限性里写明「边界框的来源未能确认」。

引用 LGG 分割集应同时引原始论文,因为 Kaggle 页面只是镜像:标准引用指向 2019 年 Computers in Biology and Medicine 论文,并注明数据来自 TCIA 的 TCGA-LGG 集合。

数据集 应引用的对象 需额外声明 常见错误
四分类集 Kaggle 页面 + 划分方式 是否重新划分 只引页面不写划分
Br35H Kaggle 页面 框来源 当成 YOLO 标注集
LGG 分割集 2019 年论文 + Kaggle 镜像 按患者切分方式 只引 Kaggle 页面

§10 AI 使用声明

项目 说明
写作方式 人机协作,结构与论点由编辑确定
资料核验 逐个访问三个 Kaggle 页面,读 About 与 Summary
论文来源 Europe PMC 检索,读摘要,未取全文
未核验 逐文件统计、原始分辨率、分类集与检测集患者数
来源层级 页面一级、摘要二级、推算三级,均已标注
事实与判断 规模与许可为事实,评分为编辑判断
更新承诺 页面不再更新,本篇随其版本修订
责任边界 不构成医学建议,不替代合规审查

10.1 本篇对「合并成一篇」的处理说明

三个数据集写进同一篇是编辑判断:它们不是同一批发布的产品,也无统一维护者,但共享同一方法学缺陷与同一类误用路径。分写三篇会把共同缺陷重复三遍,而使用者需要的是一次讲透。

合并之后,每个集仍保留独立的规模、结构、许可与边界,没有混成一个模糊的「脑肿瘤 MRI 大数据集」。凡三者表现不同处,都以并排表格呈现。

编辑处理 做法 理由
规模数字 分集列出,不求和 来源与口径不同
许可 分集列出 三者条款互不相同
适用边界 分别给出 能力层次不同
泄漏问题 合并论述 缺陷是共有的

常见误读(避坑清单)

说法 实际 证据
四分类集有测试集,所以切分可靠 目录是文件级,不是患者级 页面 About 未提患者分组;去重论文称该族数据集普遍存在重复泄漏
第二版说消除了重叠,所以没有泄漏了 消除的是图像级重复,患者级重叠仍在 页面 Version 2 Updates 原文只提 duplicate images
Br35H 是 YOLO 格式的检测集 页面给的是 yes/no 两档目录,框来源未声明 页面 About the data 只描述三个目录
99% 准确率说明方法好 主要反映划分方式 去重后唯一扫描仅 3522 张,原划分含重复
三个集可以合并增大样本 标签体系、许可、来源都不同 四分类 4 档、检测 2 档、分割单类;许可 3 种
分割集也是 Kaggle 的,所以许可一样 分割集是 CC BY-NC-SA 4.0 页面 License 字段
图像尺寸不一可以统一缩放解决 缩放不能消除源域指纹 页面 Note 提到尺寸差异,推荐自行预处理
分割集只有 110 人所以没用 有患者标识,可做正确的患者级验证 页面明确 110 名 TCGA 患者
有基因组簇就能做影像基因组学 能做关联,但 110 例的统计功效有限 页面引用两篇论文,样本即 110 例
用了公开数据就没有伦理问题 公开不等于可商用,也不等于可发表性能声明 三个集许可不同,Br35H 未标许可

FAQ

Q1:99% 的分类准确率可信吗?
在四分类集上不应直接采信:缺少患者标识,训练与测试可能含同一患者的相邻切片,模型可靠记忆患者而非病灶拿高分。要判断可信度,先看去重与分组后还剩多少分。

Q2:三个数据集能合并训练吗?
不建议默认合并:三者的标签体系、许可与采集协议都不同,分类集的标签无法直接对齐分割掩膜,分割集的非商业许可会传染到下游模型。

Q3:哪个适合做严肃研究?
LGG 分割集:有真实的 TCGA 患者来源与人工掩膜,可按患者切分。分类集与检测集更适合教学演示与流水线跑通。

Q4:没有患者 ID 怎么补救?
可做图像级感知哈希去重、按尺寸与像素统计聚类,再用相似度阈值合并成推断患者组。但这只是近似,必须在论文里声明为推断而非官方分组。

Q5:为什么 BraTS 就没有这个问题?
因为 BraTS 有官方患者级划分与容器盲评,测试标签保密。不是数据本身更干净,而是协议约束了用法,让泄漏无法转化为分数。

Q6:四分类集的四个类分别来自哪里?
页面写明由 figshare、SARTAJ、Br35H 三源拼合:no tumor 全部来自 Br35H,glioma 中 SARTAJ 的问题图替换为 figshare 图。逐类对应关系页面未完全展开。

Q7:Br35H 的框是人工标还是模型生成的?
页面没有明确说明。Br35H-Mask-RCNN 的名字暗示是 Mask R-CNN 的结果,但主目录的框来源仍需向作者确认;确认前不应当作人工标注。

Q8:分割集为什么只有低级别胶质瘤?
因为它取自 TCGA 的 LGG 集合,该集合只收录低级别胶质瘤。这不是抽样偏差,而是父集合定义决定的。

Q9:可以商用吗?
只有四分类集的 CC BY 4.0 允许商用并需署名。分割集禁止商业使用。检测集未标许可,合规上应视为不可用。

Q10:测试集分数掉下来多少才算正常?
没有统一阈值,但方向是确定的:去重后通常下降,分组后进一步下降,跨中心外部验证下降最多。应报告三档数字并解释差异,而不是只报最高的一档。

Q11:能不能用这三个集做预训练再迁到 BraTS?
技术上可以,但收益不确定:四分类集的源域特征可能与 BraTS 差异很大,预训练学到的可能是采集风格而非解剖特征。若要尝试,需做消融对比。

Q12:如果审稿人质疑数据泄漏,我该怎么回应?
重跑去重与分组交叉验证,把两套数字放进补充材料,并在局限性里说明患者标识缺失、无法做真实患者级划分。这比辩解有效。

Q13:这三个集和 BraTS 的差距到底在哪儿?
差在协议,不在图像:BraTS 有患者级划分、盲评、多序列、多亚区,这三个集只有图像加粗标签。图像可先用来试代码,但任何跨机构比较的结论都必须换数据。

Q14:如果我只想验证一段 MRI 预处理代码,用哪个最快?
四分类集:目录规整、体量最小、加载只要一行,几秒就能跑通预处理流水线。跑通后立刻换到目标数据,不要在这上面调参。

你的问题 可查的节 一句话答案
规模多大 §2 七千张、三千张、百人级
怎么拿 §5 Kaggle CLI 或 API
能不能用 §7 教学可以,临床不行
怎么防泄漏 §4.5 去重加推断分组
选哪个 §1.7 按你要的能力层次选

术语表

术语 解释
数据泄漏 训练时可见测试信息,评估分数虚高
患者级切分 同一患者的样本只落在训练或测试一侧
切片级切分 按单张图像划分,同患者可跨两侧
重复泄漏 同一图或近似副本同时出现在两侧
源域泄漏 类别与来源耦合,学到采集风格
感知哈希 将图像压成短指纹,快速找近似副本
推断患者组 无患者标识时用相似度聚类出的近似分组
混淆矩阵 真实与预测类别的交叉计数表
Dice 系数 分割重叠度指标,0 到 1
FLAIR 液体衰减反转恢复序列,抑脑脊液、显病灶
TCIA 美国癌症影像档案库,提供去标识影像
TCGA 癌症基因组图谱,多组学与配套影像
LGG 低级别胶质瘤
亚区 肿瘤内部按组织类型划分的区域
盲评 评测方持有测试标签,提交方只见容器
域偏移 训练与部署分布不一致
类别均衡 各类样本数相近
偏置场 MRI 中随空间缓慢变化的强度不均
迁移学习 用预训练权重初始化新任务
特征提取器 冻结骨干网络,只训分类头
消融实验 逐项去掉组件以确认贡献
外部验证集 来源不同于训练的独立测试数据
相同方式共享 衍生作品须沿用相同许可
非商业 禁止用于盈利目的

附录 A:核心数字核对表

项 值 来源 来源层级
四分类集图像数 7200 页面 About 一级
训练每类 1400 页面目录 一级
测试每类 400 页面目录 一级
四分类集体量 167.85 MB Data Explorer 一级
四分类集许可 CC BY 4.0 页面 License 一级
检测集图像数 3060 页面 About 一级
检测集 yes 1500 页面 About 一级
检测集 no 1500 页面 About 一级
检测集体量 91.77 MB Data Explorer 一级
分割集患者数 110 页面 About 一级
分割集体量 1.06 GB Data Explorer 一级
分割集文件数 7860 页面 Summary 一级
分割集许可 CC BY-NC-SA 4.0 页面 License 一级
去重后唯一扫描 3522 J Med Syst 摘要 二级
去重基准准确率 98.57% J Med Syst 摘要 二级
源域偏移外部准确率 96% 量级 Sci Rep 摘要 二级
四分类集患者数 未知 未披露 未核实
检测集框来源 未知 未说明 未核实

附录 B:数字的来源分层

第一级:官方页面。 三个 Kaggle 的 About、Data Explorer、Summary 区块提供全部规模数字与许可信息。优点是可复核,缺点是不完整:不给患者数、采集参数与逐类源映射。

第二级:论文摘要。 去重后的唯一扫描数来自 Journal of Medical Systems 摘要;分数带数字来自 Europe PMC 收录的摘要。优点是经同行评议,缺点是只读摘要,方法细节未核。

第三级:推算。 「下降幅度取决于切片数与划分比例」这类判断没有直接数字支撑,由机制推出,已尽量放在定性段落里,不给具体数值。

层级 来源数量 可信度 本篇用法
一级 3 个 Kaggle 页面 高,可复核 规模、结构、许可
二级 4 篇论文摘要 中高,经同行评议 泄漏证据、分数带
三级 机制推算 中,需实证 只作定性

附录 C:完整参考文献

  1. Nickparvar M. Brain Tumor MRI Dataset(版本 2). Kaggle. https://www.kaggle.com/datasets/masoudnickparvar/brain-tumor-mri-dataset
  2. Hamada A. Br35H: Brain Tumor Detection 2020(版本 12). Kaggle. https://www.kaggle.com/datasets/ahmedhamada0/brain-tumor-detection
  3. Buda M, Saha A, Mazurowski MA. LGG MRI Segmentation. Kaggle. https://www.kaggle.com/datasets/mateuszbuda/lgg-mri-segmentation
  4. Buda M, Saha A, Mazurowski MA. Association of genomic subtypes of lower-grade gliomas with shape features automatically extracted by a deep learning algorithm. Computers in Biology and Medicine, 2019. DOI: 10.1016/j.compbiomed.2018.12.012
  5. Mazurowski MA, et al. Radiogenomics of lower-grade glioma: algorithmically-assessed tumor shape is associated with tumor genomic subtypes and patient outcomes in a multi-institutional study with The Cancer Genome Atlas data. Journal of Neuro-Oncology, 2017. DOI: 10.1007/s11060-017-2470-3
  6. MTA-Swin: A Multi-Token Attention Swin Transformer for Brain Tumor Classification with Leakage-Free MRI Benchmarking. Journal of Medical Systems, 2026. DOI: 10.1007/s10916-026-02418-w
  7. A Hybrid Approach for Brain-Tumor Detection and Classification from MRI Images. Journal of Imaging, 2026. DOI: 10.3390/jimaging12090460
  8. Enhancing brain tumor detection through deep learning and explainable AI techniques. Scientific Reports, 2026. DOI: 10.1038/s41598-026-60334-y
  9. The Cancer Genome Atlas Research Network. Comprehensive, Integrative Genomic Analysis of Diffuse Lower-Grade Gliomas. NEJM, 2015. DOI: 10.1056/NEJMoa1402121

附录 D:任务代码

任务一:给四分类集做一份泄漏清单。 输出跨训练与测试的近重复对,可直接附进论文。

#-- 输出跨集近重复清单到 CSV
import csv, imagehash
from PIL import Image
from pathlib import Path

def h(p):
    return imagehash.phash(Image.open(p).convert("L"))

tr = {p: h(p) for p in Path("data/brain_tumor_mri/Training").rglob("*.jpg")}
te = {p: h(p) for p in Path("data/brain_tumor_mri/Testing").rglob("*.jpg")}

with open("leak_report.csv", "w", newline="") as f:
    w = csv.writer(f); w.writerow(["test_file", "train_file", "distance"])
    for tp, th in te.items():
        for rp, rh in tr.items():
            d = th - rh
            if d <= 4:
                w.writerow([str(tp), str(rp), d])

任务二:给分割集做一次患者级体数据重组。 切片重组为体可以喂 3D 模型,但页面未给切片间距。

#-- 按患者重组为体数据
import numpy as np
from PIL import Image
from pathlib import Path

def stack_patient(patient_dir):
    files = sorted(p for p in patient_dir.glob("*.tif") if "_mask" not in p.name)
    imgs = [np.asarray(Image.open(p).convert("L"), dtype=np.float32) for p in files]
    msks = [np.asarray(Image.open(p.with_name(f"{p.stem}_mask{p.suffix}")).convert("L")) for p in files]
    return np.stack(imgs), np.stack(msks)

root = Path("data/kaggle_3m")
p = sorted([d for d in root.iterdir() if d.is_dir()])[0]
vol, mask = stack_patient(p)
print(vol.shape, mask.shape)   #-- (层数, 高, 宽)

任务三:按类别与尺寸交叉制表,暴露源域混杂。

#-- 类别 × 尺寸桶交叉表
import pandas as pd
from PIL import Image
from pathlib import Path

rows = []
for p in Path("data/brain_tumor_mri/Training").rglob("*.jpg"):
    with Image.open(p) as im:
        rows.append({"cls": p.parent.name, "h": im.size[1], "w": im.size[0]})

df = pd.DataFrame(rows)
df["bucket"] = (df.h // 32).astype(str) + "x" + (df.w // 32).astype(str)
print(pd.crosstab(df.cls, df.bucket).T.head(15))

附录 E:如果只记五件事

一、三个集是同一问题的三种表现:没有患者标识,就没有可信的患者级切分。

二、99% 是警报而非成绩:文件级划分上的高分,首先说明模型记住了患者。

三、去重能把七千张砍到三千余张唯一扫描,这就是泄漏的直接证据。

四、只有 LGG 分割集能按患者切分,也只有它能做严肃研究;但它只有 110 人、单类、非商业。

五、当教具用是它们最好的用途,当证据用则是对使用者的误导。

编辑说明

三个数据集页面于 2026-10-27 逐个访问,读取 About、Data Explorer、Summary、License 区块,未登录、未下载数据体。论文证据来自 Europe PMC 摘要检索,未获取全文,故对摘要中未展开的方法细节未作推断。

未覆盖内容包括:逐文件尺寸分布、原始分辨率、分类集与检测集的实际患者数、检测集边界框的标注者身份。这些无法从公开页面确认,已如实标注为未核实,未做估算填充。

页面内部存在需要留意的口径差异:四分类集页面声称第二版「消除了训练与测试之间的重叠」,而 2026 年的去重研究仍将该族数据列为重复泄漏的典型。两者并不矛盾——前者说的是图像级重复,后者说的是跨患者的近重复与扫描级重复,但页面表述容易被理解成后者也已解决,这一点已在 §4 与避坑清单中说明,未对页面做对错判断。


相关数据集导航

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

  • kg-lgg-mri-segmentation — 共享标签:医学影像 / MRI / 医学图像分割 / 脑肿瘤
  • brats — 共享标签:医学影像 / MRI / 医学图像分割 / 脑肿瘤
  • crossmoda-2023 — 共享标签:医学影像 / MRI / 医学图像分割 / 脑肿瘤
  • brisc — 共享标签:医学影像 / MRI / 医学图像分割 / 脑肿瘤
  • brats-2026 — 共享标签:医学影像 / MRI / 医学图像分割 / 脑肿瘤
  • brats-africa — 共享标签:医学影像 / MRI / 医学图像分割 / 脑肿瘤
  • segthy — 共享标签:医学影像 / MRI / 医学图像分割
  • rembrandt — 共享标签:医学影像 / MRI / 脑肿瘤
  • remind — 共享标签:医学影像 / 医学图像分割 / 脑肿瘤
  • brats-pediatric — 共享标签:医学影像 / MRI / 医学图像分割 / 脑肿瘤

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

返回 AI-Ready 数据集