返回列表

A brief overview of 13th-place LB solution

588. CAFA 5 Protein Function Prediction | cafa-5-protein-function-prediction

开始: 2023-04-18 结束: 2023-12-20 药物研发 数据算法赛
第13名LB解决方案的简要概述

第13名LB解决方案的简要概述

作者:Antonina Dolgorukova
团队排名:第13名
发布时间:2023-08-24

这是一次难以置信的冒险,也是我参加的第一个比赛!我非常幸运地找到了一位经验丰富的队友 - @ogurtsov,他是我们团队的领导者。这段旅程不仅仅是关于算法和数据;它是一次探索、好奇和学习的旅程,所以感谢组织者、参赛伙伴以及Kaggle社区!

以下是我们第13名LB解决方案的简要概述:

1) 数据

我们使用了初始的训练集,以及来自UniProt和QuickGO数据库的注释(过滤了带有NOT限定符的术语、证据代码为"ND"的术语、过时的术语,以及那些不在竞赛OBO文件中的术语)。我们以两种方式使用这些数据:更新训练集(只包含实验确认术语的蛋白质)和与预测结果合并(测试集中从未经过实验确认的术语的蛋白质)。

2) 特征

ESM2 3B蛋白质序列嵌入,由@andreylalaley友好分享,并进行了Z-score标准化(训练数据的均值和标准差应用于训练、验证和测试集)。

3) 目标

我们的目标选择包括根据频率选择前500个GO术语,或者频率超过某个阈值的术语(BP > 250, MF和CC > 50)。

4) 神经网络

建模策略涉及多个具有不同超参数和层的多层感知器(MLPs),使用Torch或Tensorflow、R语言编写。每个模型在初始或更新的训练集以及不同的目标集上进行训练。为了确保鲁棒性,我们采用了10折交叉验证(CV)(一个作为验证集,九个作为训练集),然后对预测结果进行平均。对于某些模型,我们发现仅在训练蛋白质上进行验证更为有效,在这种情况下,我们使用随机10折CV以避免减少验证集。重要的是,我们为每个本体单独训练了一个MLP,每次只使用那些至少有一个所选顶级术语的蛋白质。

更新:对于所有MLP,我们使用AdamW优化器、一次循环学习率和早停回调(最多100个epoch,监控指标为验证损失,耐心为1、3或5)或学习率降低回调(因子为0.5,耐心=1)。

5) 后处理

首先,我们使用物种约束过滤预测,以消除与某些物种不兼容的术语。此外,在每一步之后,我们进行修正以确保父术语的预测不小于子术语的预测(在这种情况下,我们传播子术语的最大预测值)。最后,在与GO注释最终合并之前,我们再次过滤预测,只包括基于原始训练集频率的前450个术语,以及预测值大于0.5的稀有术语。

6) 集成

6个MLP的预测结果被简单平均。然后将得到的预测结果与导出的GO注释(即测试集中具有从未实验确认的术语的蛋白质集合)再次进行平均。

对于次要解决方案,我们使用与GO注释的加权平均,并为每个本体选择前35个预测。

我希望这将对其他人有益,作为一个可以做什么的例子(如果我们在最后shake up)或者应该避免什么(如果我们在最后shake down)😆。

同比赛其他方案