返回列表

2nd Place Solution - with 1D-CNN (Private LB: 0.01601)

407. Mechanisms of Action (MoA) Prediction | lish-moa

开始: 2020-09-03 结束: 2020-11-30 药物研发 数据算法赛
第二名方案 - 使用 1D-CNN (Private LB: 0.01601)

第二名方案 - 使用 1D-CNN (Private LB: 0.01601)

作者:tmp (baosenguo) | 比赛排名:第 2 名

1. 概述

首先,非常感谢 Kaggle 团队和哈佛大学创新科学实验室提供了宝贵的数据集并主办了这场精彩的挑战赛。这是我第一次参加 Kaggle 比赛,我必须说我从宝贵的社区中学到了很多东西。

该方法由 3 个单模型组成:

  • 1D-CNN
  • TabNet
  • DNN

最终的提交结果是通过单模型输出的加权平均生成的。

下表列出了该方案中单模型和最终融合的表现。该方案最重要的部分可能是 1D-CNN,其 Private LB 得分为 0.01601。最终融合在此基础上仅提高了 0.00002(Private LB 0.01599)。

Performance Table

下面的流程图概述了技术细节,我将在以下部分进行介绍。

Flowchart

2. 本地交叉验证 (Local CV)

本次挑战最重要的目标之一是测试模型针对从未在公共数据集中出现的药物的性能。为此,我使用了 @cdeotte 发布的 CV 分层代码。

通常在基因组和生物医学数据中,样本类型、仪器误差、试剂质量和其他系统偏差有时会显著影响分布。这在现实世界中是不可避免的,因此正确的评估非常重要。举个例子:当存在批次效应时,“留出批次”比随机 k 折交叉验证更能客观地反映模型的泛化能力。在本次比赛中,虽然不太确定,但这种“留出药物”策略似乎降低了特定药物组的过拟合风险(Public LB 第 4 名;Private LB 第 2 名)。

3. 预处理

样本归一化

有一些假设(可能是错误的):

  • 由于不可避免的系统误差存在(例如,数据不能在同一台机器上产生,实验不能由同一个人进行),原始生物数据通常无法直接比较。
  • 即使处理方式完全不同,显著不同特征的数量也不会太多。
  • 可以简单地假设大多数样本的分布是相似的。

基于这些假设,样本分别根据基因表达和细胞活力的分布进行了归一化。

简而言之,每个样本中的基因数据减去了 25% 和 75% 分位数的平均值。类似地,细胞数据减去了 25% 和 72% 分位数的平均值,然后除以新分布的 4 + 75% 分位数。基因和细胞步骤的细微差别是由处理后分布的正态性决定的。

通常,样本归一化应在特征转换之前实施。

特征转换

样本归一化后,对数值特征应用了分位数转换。

4. 特征工程

特征工程方面没有什么特别之处,在 1D-CNN 模型中甚至没有进行方差过滤。其他两个模型中不同的特征处理方法仅用于增加多样性。

  • 所有模型都使用了 PCA 特征,但 n_components 不同(1D-CNN 为 50 个基因 + 15 个细胞,TabNet 和 DNN 为 600 个基因 + 50 个细胞)。
  • TabNet 中使用了统计特征(如总和、均值)和组合特征。
  • TabNet 和 DNN 中使用了方差过滤。
  • 此外,所有模型中都移除了虚拟变量(cp_time, cp_dose)。

5. 损失函数

为了处理目标的不平衡并减少对特定目标的过拟合,所有单模型都使用了带有标签平滑和 pos_weight 的 BCELoss(二元交叉熵损失)。

正如其他人所提到的,标签平滑通过降低过度自信的概率表现良好

同比赛其他方案