Skip to main content

利用二元分类在NIH Chest X-ray数据集中预测肺病

在本报告中,我们将在NIH Chest X-ray数据集上执行二元分类。
Created on July 1|Last edited on July 1

概述

医疗图像的机器学习是一个很有前景的领域。事实上,许多该领域中的人认为以ML为中心的诊断只是个时间问题。但由于假阴性(false negatives)和假阳性(false positives)的后果对患者如此厉害相关,这一领域的行业发展和研究人员仍然相当初步。
从数据分析的角度看,与大多数医学图像一样,胸部X射线相当理想。它们的大小和角度相当均匀,很多图像公开(个人识别信息当然被隐去)。
今天,我们将看到是否可以利用那些图像的NIH数据集来预测肺病诊断。具体而言,我们的预测产出是关于正常肺或异常肺的预测。
执行任务: 二元分类
输入类型: 图像
输出: 预测得分表示正常或异常的肺部。
让我们开始:

数据集

NIH Chest X-ray数据集由112,120个X射线图像组成,具有来自30,805名患者的14个文本疾病标签。 14个疾病标签是Atelectasis, Cardiomegaly, Consolidation, Edema, Effusion, Emphysema, Fibrosis, Hernia, Infiltration, Mass, Nodule, Pleural Thickening, Pneumonia, Pneumothorax.
为了创建这些标签,作者使用自然语言处理到相关的放射性报告中的文本疾病分类。这些标签预计准确度>90%,适合弱监督学习。

许可证和归因

(The data is also available as Kaggle dataset)

模型:v1

模型偏差

NIH Chest X-ray附带的data_entry_2017_v2020.csv包含类标签以及患者数据。提供的患者数据是:
  • 性别: 男性或女性
  • 年龄: 连续值
在训练期间没有提供关于年龄或性别的信号。

对性别的偏差

该模型在仅为男性(蓝色)以及仅为女性(橙色)的子集上进行评估。

观察

  • 该模型在男性类别的X射线子集中提供更好的预测。
  • 这显示了训练数据集的性别不平衡。
  • 偏差来自数据集。



Run set
2


年龄组偏差

连续年龄被分组为:[0,10,20,30,40,50,60,70,80,90]
为每个分组评估该模型,以了解每个组中的模型性能。

观察

  • 某些年龄组(中年人范围)的肺相关疾病应该是常见的。
  • 0-20年龄组测试错误率高,这是可接受的。
  • 对于年龄组70-90,数据样本的数量将更少。
通过相关领域知识,这点可以更好地量化。

Run set
19

下载

下载模型:v1

# initialize wandb run
run = wandb.init()

# download model_nih_1.h5 as artifact
artifact = run.use_artifact('wandb/model-card-NIH-Chest-X-ray-binary/model:latest')
artifact_dir = artifact.download()

# close the run
run.join()

不足

数据集

  • 用于训练的数据集是完整数据集的一个小子集。
  • 图��标签是通过NLP提取,因此可能存在一些错误的标签。 NLP标签精度估计为> 90%。

模型

  • 对于诸如非自然发生的X射线等图像,基于普通卷积神经网络的图像分类器是不够的。


Iterate on AI agents and models faster. Try Weights & Biases today.