返回列表

4th place approach

497. Tabular Playground Series - Jun 2022 | tabular-playground-series-jun-2022

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

第4名方案

作者: Ravi Ramakrishnan (Grandmaster) | 排名: 第4名

大家好!
我的解决方案比获胜者的方案要简单得多,但我很高兴它能让我获得这个名次!
我对 Kaggle 还比较陌生,这是第一次获得这样的名次,感觉有点不可思议!空值填充在大多数其他任务中通常只是一个顺便的任务,我从未想过我会为了这个任务在一个月内花费无数个小时,并最终得到这样的结果!

我首先浏览了一些关于空值填充的讨论帖,并阅读了 Abhishek Thakur 的空值填充教程(这里的帖子中也提到过)。然后,我尝试了基于描述性统计(主要是均值和中位数)的简单填充器作为基准提交。接着,像我们许多人一样,我使用了一些机器学习模型,如 LGBM、Catboost 和 XgBoost。在这个阶段,我的分数在 0.90 到 0.86 之间。后来,我借鉴了工作中的一些旧模型思路,利用表中的其他列来预测含有大量空值的列。考虑到这一点,我尝试使用预测模型来预测 F_1 和 F_3 列。我也使用了这些列的均值和中位数,在此期间做了一些提交,试图找出一种策略。我要特别感谢名为“TPS2206 The na count of each record is critical!”的笔记本,这为我在这次比赛中提供了一个新的视角。我对 F_4 组列的最终处理方案包括在 Keras 和 Tensorflow 上构建的一个简单密集神经网络(考虑到我的硬件限制,没有使用回调)。我对 F_1 和 F_3 组列的最终提交包括了线性模型和这些特征的描述性统计的组合。我还根据另一本名为“TPS Jun 2022 PyTorch Lightning with NA counts”的笔记本微调了我的 F_4 模型候选之一。

我从这次独特的经历中学到了很多。我了解了去噪自编码器(来自获胜者的方案),了解了 TabNet(来自提交的代码之一),在我的基准提交中使用了迭代填充器,并学到了即使是简单的模型,如果执行得当,也能产生出色的解决方案!我以前有一种先入为主的观念,认为 Kaggle 全是关于复杂甚至更复杂的算法,我自己推翻了这个观点!

我自己为这次比赛做的 EDA 笔记本获得了不少赞,非常感谢!另外,特别感谢以下帮助我走到这一步的笔记本:

  • TPS Jun 2022 PyTorch Lightning with NA counts
  • TPS2206 The na count of each record is critical!
  • 0.89 IterativeImputer + Optuna
  • TPS22Jun Tensorflow with NA counts

祝愿大家在下一个 TPS 挑战中一切顺利,这是该系列中第一个无监督模型!

这类比赛最棒的地方在于每个人都是赢家!我认为我从这次任务中获得的知识肯定会对我的工作和其他方面有所帮助。

同比赛其他方案