返回列表

6th Place Solution

637. Playground Series - Season 5, Episode 1 | playground-series-s5e1

开始: 2025-01-01 结束: 2025-01-31 销量与需求预测 数据算法赛
第六名解决方案 - Pascal Terpstra

第六名解决方案

作者: Pascal Terpstra
发布日期: 2025-02-01
竞赛排名: 第 6 名

首先,感谢所有分享有趣讨论的人——我从中学到了很多!

我的最终解决方案是由 3 个不同模型组成的集成模型。第一个模型是我改编自 @kdmitrie 发布的 Notebook。第二个模型使用了乘法线性回归模型,第三个模型是 @cdeotte 发布的 Transformer。

模型 1(公共榜单 = 0.04792, 私有榜单 = 0.04678)

  • 乘法模型
  • 考虑了闰年(2012 年和 2016 年)。实际上,这只是意味着我修改了 dayofyear 列,对于闰年,将 2 月 29 日之后的所有日期减去 1。
  • 使用了不同的国家权重:我意识到肯尼亚的预测对最终分数影响很大,这是由于 MAPE 指标的性质(试着给肯尼亚的所有预测值加 1,看看会发生什么!)。我在所有预测值乘以 1.06 的基础上,对肯尼亚额外使用了 1.02 的乘数。我还尝试了对其他国家使用稍低的乘数,并使用了基于观测值的特定乘数,其中每个乘数基于预测的置信度(基于往年相同预测的变异性)。

模型 2(公共榜单 = 0.04874, 私有榜单 = 0.04800)

  • 训练了一个线性回归模型,用于预测一年中每一天的年度销售总量 (num_sold) 的占比。
  • 店铺占比是通过简单地取给定日期和国家内每个产品的 num_sold 的平均占比获得的。
  • 产品占比(这意味着某一天内一个国家总 num_sold 中的产品占比)是通过线性回归获得的。这里使用了简单的 cos 和 sin 变换来进行强预测。
  • 我发现首先留出 2016 年作为验证集来调查误差中的任何模式很有用。

模型 3(公共榜单 = 0.0526, 私有榜单 = 0.06037)

  • 第三个模型 simply 是 @cdeotte 发布的 Transformer 的输出。

模型集成(公共榜单 = 0.04706, 私有榜单 = 0.04722)

  • 这是三个模型的集成。
  • 事后看来,只提交模型 1 的预测会更好(现在说起来容易!)。

我尝试过但无效的方法

  • 使用 Boosting 方法(例如 Catboost, XGBoost)和 RNN。
  • 在线性回归模型中考虑节假日(例如考虑复活节后的影响)。
同比赛其他方案