返回列表

Public 6th Private 14 Solution

517. Open Problems - Multimodal Single-Cell Integration | open-problems-multimodal

开始: 2022-08-15 结束: 2022-11-15 基因组学与生物信息 数据算法赛
Public 6th Private 14 Solution
作者:Anthony Chiu (Grandmaster)
比赛:Open Problems – Multimodal Single-Cell Integration
排名:Public 6th / Private 14th

Public 6th Private 14 解决方案

简介

额外数据

  • 主办方发布的原始计数数据。

降维

我认为最有帮助的是:

  • sklearn.decomposition.TruncatedSVD (128 个分量)
  • 自制的去噪自动编码器 (128 个隐藏节点)

直接特征

将基础模型的结果作为 NN 输入特征进行集成

众所周知,MSE 对于比赛指标来说并不是一个很好的损失函数。因此,在每个折内,我们训练了 4 个基础模型,并将其特征用作 NN(神经网络)的输入。

  • sklearn.linear_model.Ridge
  • sklearn.linear_model.MultiTaskElasticNet
  • sklearn.kernel_ridge.KernelRidge
  • sklearn.ensemble.HistGradientBoostingRegressor

我们在它们的预测中加入了大量噪声,以确保 NN 也能从其他特征中学习。

        self.blender = torch.nn.Sequential(
            GaussianNoise(self.blend_noise),
            torch.nn.Linear(out_dim * 4, 128),
            torch.nn.LayerNorm(128),
            activation(),
            torch.nn.Dropout(self.blend_dropout),
        )

基于目标聚类的 GroupK 交叉验证

本节中的技巧提高了 Public 和 Private LB(排行榜)成绩,但我们无法比较 CV(交叉验证),因为这是一种 CV 方案的变更。幸运的是,它在 Public 和 Private 上都表现(相对)良好。

众所周知,训练集、Private 和 Public 测试集之间存在一些微妙的域偏移。然而,困难在于这种偏移至少发生在三个方向上(供体、天数、细胞类型)。为了创建一个困难但又不至于太难的 CV 方案,我们发现对目标值进行聚类在 Public 和 Private 排行榜上都表现非常好。

让我们将 CV 方案的选择视为一个光谱:

  • 最简单的 CV 方案:随机 K 折(缺点:不能代表测试集)
  • 困难的 CV 方案:按天/供体分组的 GroupKfold(缺点:训练折数太少)
  • 最困难的 CV 方案 1:时间序列分割(缺点:浪费最后一天的数据)
  • 最困难的 CV 方案 2:从训练集中完全排除 1 天或 1 个供体(缺点:太难/过于防御)

进行聚类的另一个原因是,这里的天数是分类的,但在现实生活中,时间是连续的。按天进行 GroupK CV 并不是那么令人满意。

第一张图片显示了通过 tsvd 目标(点)可视化的目标 kmeans 结果(颜色):
目标聚类可视化

接下来,你可以看到

同比赛其他方案