返回列表

1st Place Solution

520. Tabular Playground Series - Nov 2022 | tabular-playground-series-nov-2022

开始: 2022-11-01 结束: 2022-11-30 数据算法赛
第一名方案

第一名方案

作者:Jose Cáliz, Samuel Cortinhas
比赛排名:公榜第7名,私榜第1名

大家好,感谢这次比赛,我们在处理这个数据集的过程中度过了一段美好的时光。我将跟随 @alexryzhkov 的脚步,解释一下我们团队的解决方案。

方案简述

我们采用了大量的集成学习,结合了不同的模型架构和特征。最终的融合模型包括:

  1. @sergiosaharovskiy@alexryzhkov 提供的 LightAutoML。
  2. 一个使用不同特征训练的 XGBoost 模型。
  3. 一个使用不同特征训练的 LGBM 模型。
  4. 两个使用不同特征训练的全连接神经网络(NN)。

使用的库/算法

我们使用了:XGBoost, LightGBM, LightAutoML, Keras, 以及 Weights and Biases 等。

提升分数的关键点

  1. 良好的交叉验证:我们使用了 10 折分层 K 折(StratifiedKfold),部分模型使用了 20 折。
  2. 堆叠:使用 scipy.minimize 进行堆叠,感谢 @pourchot
  3. 神经网络多重启动:通过多次启动神经网络来减轻噪声影响。
  4. 后处理:对 0.5 以上和以下的预测值添加微小数值。始终信任交叉验证(CV)来选择正负 delta。比赛早期的 EDA 笔记本显示,模型在分类负标签时更困难。
  5. 模型融合:融合不同类型的模型,不仅在算法上,也在特征上。我们使用 Top-K AUC、带逻辑回归的 L1 正则化、特征重要性(类似 RFE)、置换重要性来选择特征。
  6. 使用 Logits:使用 logits 而不是概率,感谢 @ambrosm
  7. 信任你的 CV:很容易过拟合。
  8. 激活函数:使用 Swish 和 Mish 作为激活函数。

几个未奏效的想法

  1. 玻尔兹曼集成,在最初几次迭代后我们没有深入探究。
  2. 几何平均,类似于玻尔兹曼方法。
  3. 残差块(简单的神经网络已经足够了)。

有哪些可以改进的地方?

根据我的经验,这是一场奇怪的比赛,因为几乎没有数据分析环节,我觉得这更像是不管三七二十一直接尝试直到成功。就我个人而言,我花了太多时间试图从头开始做事,而不是阅读他人的作品。

比赛中学到的教训

使用实验跟踪工具非常重要,它对保存 oof 预测和验证假设非常有帮助。要非常开放地学习所需的新事物,AutoML 就是一个很好的例子。

特别感谢我的队友,我很享受团队合作,没有比拥有一个共同的“敌人”更好的学习方式了,哈哈。