返回列表

3rd Place Solution (+ github code)

388. TReNDS Neuroimaging | trends-assessment-prediction

开始: 2020-04-23 结束: 2020-06-29 医学影像分析 数据算法赛
第三名方案 (+ github 代码)

第三名方案 (+ github 代码)

作者:shimacos (Grandmaster) | 比赛排名:第3名

首先,我要感谢主办方组织了这场有趣的比赛。这场比赛非常有意思,因为我们尝试了许多技术!我也非常高兴能获得我的第一枚单人金牌!

方案概览

Solution Overview

方案详情

我认为本次比赛的关键在于模型的堆叠和多样性。因此,我构建了许多模型,如下所示。

1. 基于表格特征的简单模型

首先,我使用 fnc 和 loading 特征训练了一些简单模型:

  • SVM(rbf 核和线性核)
  • NuSVM
  • KNN
  • Ridge
  • BaggingRegressor(Ridge)

2. 基于 fMRI 数据的神经网络模型

2-1. 3D 体素数据

我应用了样本级和分量级的归一化。

2-2. 掩码数据

Nilearn 的 Masker 可以从脑区分割中提取信号。然后,我使用了 schaefer_2018 分割,并从 fMRI 中提取了 400 个感兴趣区域(ROIs)。(将形状从 [53, 52, 64, 53] 缩减为 [53, 400])
最后,我基于这 [53, 400] 的信号构建了一些模型。

  • CNN 模型(输入通道为 400)
    • 1D ResNet18
    • 1D densenet121
    • 1D ResNest 14d
  • Transformer
    • 无位置编码
    • 分量间的自注意力机制(特征轴为 400)
  • GIN (图同构网络)

3. 结合表格特征、NN 特征和体素统计特征的 LGBM 和 XGBoost

  • 我计算了每个分量的体素统计特征(均值、最大值、峰度、偏度)。
    • 我使用 NiftiMasker 提取非零区域。
  • 结合 (2 + 1)D CNN 隐藏特征的 LGBM(XGBoost) 模型
  • 结合简单 3dConvNet 隐藏特征的 LGBM(XGBoost) 模型
  • 结合 GIN 隐藏特征的 LGBM(XGBoost) 模型

我根据特征重要性选择了每个模型的 1024 个特征,并减少了叶子节点的数量以防止过拟合 (n_leaves = 2)。

4. 堆叠

我查看了训练数据和测试数据中预测值的分布,如果差异过大则将其剔除。我还制作了域之间的交互

同比赛其他方案