返回列表

12th-Place Solution

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

开始: 2022-08-15 结束: 2022-11-15 基因组学与生物信息 数据算法赛
第12名解决方案

第12名解决方案

作者:Silogram (Grandmaster)
比赛排名:第12名

首先,祝贺获胜者,特别是 @senkin@tmp 一直处于领先地位,以及 @shujisuzuki65 从公共榜到私有榜的大幅跃升。我很期待听到这两个团队分享他们的技术。总的来说,这是一场有趣的比赛,让我对生物信息学家面临的挑战有了更深的认识。

不知道其他人是否有同感,但对我来说这场比赛似乎非常漫长。我在中途就感到精疲力竭,最后4周左右并没有真正投入太多工作,这意味着我完全没有使用原始计数数据。因此,我的解决方案相当简单。

交叉验证(CV)设置

我将每个批次(唯一的用户/日期)分配到单独的折中,因此 citeseq 有 9 折,multiome 有 12 折。这样做虽然计算成本很高,但优点在于它没有针对新捐赠者(公共 LB)或新日期(私有 LB)进行特定优化。LB 分数与本地 CV 分数非常接近。本地 CV 的微小提升几乎总是会导致 LB 上类似的提升。这种 CV 方案可能就是我在私有 LB 上表现良好(从第46名升至第12名)的原因。

数据转换

我尝试了很多去噪和转换数据的方法,但大多数都失败了。最后,我只使用了原始数据的 PCA 和 tSVD。

特征工程

对于 Multiome,没有进行特征工程。对于 Citeseq,我使用完整数据集训练了 140 个浅层 LGB 模型(每个目标一个)。这里的目的不是使用模型本身,而是查看哪些特征对每个目标是重要的。我在随后的深度建模中使用了每个目标的前 100-200 个特征。

建模

对于 Citeseq,我训练了单目标(140 个独立模型)和多目标神经网络模型(使用 Fastai)。我还为每个目标训练了 LGB 和 CatBoost 模型。总的来说,我使用 PCA 数据的不同变体结合特征工程中选择的特征,训练了超过 20 组模型。单独来看,模型的本地 CV 分数在 0.8995 - 0.9017 之间。对于 multiome,我在 tSVD 降维后的目标上训练了 3 个多目标神经网络和一个 CatBoost 模型。

集成

我使用一种非常简单的优化加权方案将模型混合在一起,唯一的可能权重是 0、1、2 或 3。我尝试过其他具有更高 CV 分数的集成技术,但它们在 LB 上的表现更差。我担心这可能是由于折之间存在某些隐藏的泄漏,所以我坚持使用更简单的加权方案。这使 Citeseq 的本地 CV 分数达到 0.9039,Multiome 达到 0.669。

关于数据趋势的思考

我对 @AmbroseM 论证数据是时间序列的帖子很感兴趣。在 7 天的训练数据中无疑存在趋势,但我担心这些趋势是否会持续到第 10 天。我对生物学了解不够,但细胞行为似乎既有长期趋势(衰老),也有基于饮食、运动、疾病等的短期趋势。我认为在 7 天训练数据中可见的趋势很容易是短期趋势,在 7 天后可能会逆转,或者可能只是由于数据收集的技术方面而巧合出现的。根据 @AmbroseM 在这里的帖子,看起来这些趋势确实延续到了测试集。我非常有兴趣听取细胞科学家关于这些趋势可能意味着什么,它们本质上是周期性的吗,如果是,每个周期通常有多长。

同比赛其他方案