517. Open Problems - Multimodal Single-Cell Integration | open-problems-multimodal
首先,感谢 Kaggle 团队和主办方提供这个尖端技术数据集并主办这项伟大的挑战赛。我在比赛中学到了很多。非常感谢我的队友 @mathormad 和 @nguyenvlm 这些日子的辛勤付出。这是我们获得 LB 第3名和 Private 第6名的方案总结。
我们使用了 分层5折交叉验证,按 day/donor/celltype 进行分层。我们没有使用 GroupKFold,以避免在 Public 榜上过拟合,而且 Private 数据集的 day 与训练数据集相差较“远”,因此按 day 进行 CV 分割有点冒险(我们尝试过,但 CV 和 LB 都下降了)。我们认为,这是我们在 Public 和 Private 排行榜上排名稳定的关键。我们在 CV 中表现最好的提交在 Public 和 Private 排行榜上也是最好的。
n_iter 参数使 CV 略微提高了 2e-4(但运行时间更长,我们设置为 50 次迭代,sklearn 库默认仅为 5 次)。去噪自编码器帮助我们提高了 CV 1e-3(与 SVD/PCA 相比)。对于 Cite 任务,我们将上述整个训练过程应用于原始计数数据集,然后与原始数据集进行集成。这显著提升了 1e-3 的性能。
对于 Multiome 任务,我们没有使用原始计数数据集,因为它缺少某些行,我们无法匹配原始数据和原始计数之间的 OOF,因此没有 CV 分数来验证。我认为这应该可行,但我们没有足够的时间重新匹配 OOF。
我们将 1 个模型的预测与当前特征连接起来,作为另一个模型的输入(例如,使用 xgb 的输出作为 MLP 的输入,反之亦然),这将单个模型的性能提高了约 5e-4。
我们也使用了伪标签(提升不大,约 2-3e-4)。