403. OSIC Pulmonary Fibrosis Progression | osic-pulmonary-fibrosis-progression
这是我第一次获得Kaggle银牌,超级开心 😄。这对我来说是一次很棒的学习经历。向所有的获胜者致敬,也感谢整个Kaggle生态系统。
表格特征和从CT扫描中提取的特征被用于Tabnet模型中,并使用分位数损失进行训练。作为一种数据增强形式,假设每个人的每个可用FVC分数都是第一次FVC测试分数,并据此构建其他特征。
这部分相当直接。
first_test_fvc - 假设的第一次就诊的FVC分数。predict_week - 距离CT扫描的周数,来自训练数据的 Week 特征。weeks_from_first_visit - 距离第一次FVC测试的周数。expected_fvc - fvc * percent,这对每个患者来说是一个常数。percent - first_test_fvc 与 expected_fvc 相比的百分比。age - 患者的年龄。Sex 和 SmokingStatus 的独热编码值。为每位患者生成了3D重新缩放的分割肺模型,并从中提取了图像特征。
分割 - 肺部分割是使用标记控制的分水岭分割进行的,感谢 Aadhav Vignesh 的出色工作。
体素像素重新缩放 - 重新缩放是使用 Pulmonary Dicom Preprocessing 中的 resample 方法完成的。感谢 Laura Fink 提供的优秀内核。
我在这种方法中遇到的唯一问题是,在推理笔记本中为私有数据集生成3D模型时,要在4小时的提交运行时间内完成。我通过将 resample 函数中的 scipy.ndimage.zoom 替换为 torch.nn.functional.interpolate 解决了这个问题,后者速度要快得多。
生成的图像特征包括:
lung_volume_in_liters - 3D模型中分割的肺部体素像素数量 / 1e6。lung_height - 包含超过1000个肺部体素像素的第一层和最后一层之间的差值。lung_mean_hu - HU值的平均值。lung_skew - HU值的偏度。