407. Mechanisms of Action (MoA) Prediction | lish-moa
非常感谢哈佛大学实验室科学创新中心和 Kaggle 团队主办这次比赛,也感谢所有其他参与者创造了如此友好而又充满挑战的竞技环境!这是我第一次参加数据科学竞赛,我从大家身上学到了很多。
我解决方案背后的主要思想是将多标签预测问题重新构建为多分类问题,以利用目标之间的相关性。虽然最初有 206 个二元目标,但训练数据集只包含 328 个不同的组合。我给每个组合一个从 0 到 327 的类别标签,并将其作为目标变量。类别标签与原始目标之间的对应关系存储在一个 328x206 的矩阵中。
然后,我建立了在最后一层具有 softmax 激活函数的神经网络模型,产生形状为 (batch_size x 328) 的概率矩阵,并针对分类交叉熵进行优化。为了检索 206 个原始目标的预测结果,我将神经网络输出乘以 328x206 矩阵。
虽然理论上这种“对偶”方法比较受限,因为对于具有 328 个类别中未见过的 MoA 组合的新药,不可能给出完美的预测,但在实践中,这些单独的模型本身仍有不错的表现(神经网络的最佳公开/私有 LB 分数分别为 0.01849/0.1633,Tabnet 为 0.01830/0.01623)。
然而,它们最大的威力在于与其他模型融合时,因为这种重构显著降低了预测相关性,因为它从训练数据中检测到了不同的信号。
我的最终解决方案是四个模型的简单平均(无加权):两个 Tabnet 和两个神经网络(每种架构各有一个多分类和一个多标签模型)。特征工程流程没有什么特别之处:我使用了 QuantileTransformer、PCA 和基于行的统计数据,正如几个公共笔记本中所做的那样。
我选定的最佳提交的详细信息如下(LB 分数 0.01811/0.01603),但我通过其他模型组合也获得了类似的私有分数 0.01603 和 0.01604。
| 模型 | 折数 | CV (含 ctrl) | Public LB | Private LB |
|---|---|---|---|---|
| 多分类 NN | 7 | 0.01361 | 0.01884 | 0.01659 |
| 多分类 Tabnet | 7 | 0.01484 | 0.01830 | 0.01623 |
| 多标签 NN | 7 | 0.01453 | 0.01837 | 0.01626 |
| 多标签 Tabnet | 7 | 0.01480 | 0.01834 | 0.01620 |
例如,我的一个由四个不同模型组成的融合(多分类 NN - 0.01633,多分类 Tabnet - 0.01636,多标签 Resnet - 0.01636,多标签 Tabnet 0.01624)也达到了 0.01603 的 Private LB 分数,但我没有选择它,因为它的 Public LB 分数较差(0.01819)。
由于我的模型之间的 CV 分数非常不同,很难制定最终的验证策略,因为优化融合权重会给模型 1 分配 100% 的权重。最后,我凭直觉认为,只要保持简单,我就不应该过拟合,我的两个最终提交结合了不同的模型以最小化风险。