返回列表

9th place solution summary

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

开始: 2023-04-18 结束: 2023-12-20 药物研发 数据算法赛
```html
作者:jcerpent(队友:@aypyaypy, @ahmedelfazouan)
发布时间:2023-12-20 19:32:39
排名:第9名

第9名解决方案总结

感谢组织者和Kaggle举办这场有趣的比赛,同时也要大大感谢社区在整个提交期间提供的许多有益想法和笔记本。还要感谢我出色的队友 @aypyaypy@ahmedelfazouan

以下是我们的方法简要总结。该方法融合了两个不同的思路,合并后发现它们互补性很好。

前馈神经网络

  1. 作为输入特征,我们采用了:Prot-T5嵌入向量、ESM2嵌入向量、Taxo特征以及( arguably 风险较高的)QuickGO注释。
  2. 我们预测最常见的前x_amount个注释作为传播后的目标。在最终解决方案中,我们集成了多个模型,这些模型预测不同数量的最常见注释,数量范围从2000到3500,步长为500。这带来了公共分数的重要提升。
  3. 建模:跳跃层显著提高了交叉验证(CV)和公共分数。具体来说,每个密集层的输出都会作为输入传递到最后一层,该层接收这些层的拼接集合。
  4. 基本10折交叉验证方案,并结合种子集成以略微提升分数。

我们最好的单模型达到了0.605的分数。

下图展示了使用不同目标+种子集成与单模型相比的变化。混合方案对pred=1的预测更加自信。

混合目标效果图

传播策略

第二部分采用了一个较少依赖机器学习的方法。

  1. 使用Kirill公开的笔记本中介绍的方法合并SprofGO和QuickGO(即:取平均值后,选择每个方面的前45个;https://www.kaggle.com/code/kirilldubovik/cafa5-tuning-merge-datasets)。

  2. 传播过程:如果子节点中存在一个基因本体论(GO)的注释,其预期概率大于父节点自身的概率,则将父节点GO的概率替换为子节点GO的最大概率。此操作从叶节点GO向根节点进行传播。

传播过程的结果可视化如下所示。正如预期的那样,大量的概率被设置为1。该方法的单独公共分数达到了0.597。

传播过程可视化

额外尝试

我们还尝试了其他一些方法,但由于私人分数仅针对选定的提交进行计算,因此无法报告其性能,这在计算角度是可以理解的。

我们尝试过的方法:

  • 通过使用嵌套交叉验证和伪标签来纠正训练/测试集中的重叠
  • 使用OOF值替换已存在于训练测试集中的行的测试预测
  • CNN(卷积神经网络)(表现完全不佳)
  • 任何其他类型的嵌入都降低了模型性能
```
同比赛其他方案