返回列表

How on Earth did I win this competetion?

568. ICR - Identifying Age-Related Conditions | icr-identify-age-related-conditions

开始: 2023-05-11 结束: 2023-08-10 基因组学与生物信息 数据算法赛
我是如何赢得这场比赛的?

我是如何赢得这场比赛的?

作者:room722 | 发布于:2023-08-11 | 竞赛排名:第1名

你好!这个结果真的出乎意料。我原本只希望进入前10%,但从没想过能取得更好的成绩。感谢所有参与比赛的选手,特别是那些讨论各种想法并分享代码的人!特别感谢SAMUEL,他在这篇笔记中介绍了概率重加权的方法:https://www.kaggle.com/code/muelsamu/simple-tabpfn-approach-for-score-of-15-in-1-min

我的解决方案完全基于一个复杂的深度神经网络:https://www.kaggle.com/room722/icr-adv-model
更新:训练笔记已附上。

对我来说不起作用的方法:

  1. 梯度提升明显过拟合,虽然我在这上面花的时间不多,也没有做太多微调
  2. "希腊字母"特征毫无用处。我认为这是因为测试数据中没有这些特征
  3. 特征工程导致了过拟合

成功的方法:

  1. 基于变量选择网络的深度神经网络[1]
  2. 不使用常规的MinMaxScaler或StandardScaler归一化,而是为每个特征使用8个神经元的线性投影
  3. 三层主要网络使用高dropout值:0.75→0.5→0.25
  4. 最终对概率进行重加权效果非常好
  5. 10折交叉验证,每折重复10-30次,根据CV结果选择每折表现最好的2个模型(是的,交叉验证在这次比赛中居然有效!)。训练过程非常不稳定,单折的CV分数可能在0.25到0.05之间波动,部分原因是大dropout值,部分原因是训练数据量较少。这就是为什么我为每折选择了2个最佳模型
  6. CV采用了类似多标签的策略:首先训练一个基础DNN,收集所有验证数据并按如下方式标记:(y_true=1且y_pred<0.2)或(y_true=0且y_pred>0.8)→标记为1,否则为0。这个标签类似于"预测难度"。另一个标签自然就是目标本身

诚实地说,能获胜我很幸运,但对我个人而言,这也意味着DNN的胜利,可能不仅仅是靠运气。作为DNN的忠实粉丝,这让我感到自豪和快乐))

[1] 该网络的想法来自:https://arxiv.org/abs/1912.09363

同比赛其他方案