返回列表

4th place solution

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

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

第四名解决方案

发布时间:2025-02-01
竞赛排名:第 4 名

祝贺 @georgekoussa 的获胜 Notebook!也祝贺 @kdmitrie 取得了精彩的第三名。每当我短暂排名第一时,几小时后他就迅速把我挤到第二名 😉

这场使用人工数据集的预测竞赛有点像谜题,需要计算各种比例。然而,每年的总销售额对我来说仍然是个谜。所以我很高兴最终获得了第四名,就像在公共排行榜上一样。我本以为会有更大的变动。

简而言之,这是我的解决方案:

  • 将年度总计视为给定值(我使用了早期预测和一些公共 Notebook 的平均值)。以下所有步骤均指比例。
  • 使用世界银行每年的人均 GDP 数据作为国家比例。由于训练数据中的国家比例存在一些重大差异,我使用了简单的 scipy 线性回归来使比例更拟合,尤其是肯尼亚。
  • 使用固定的商店比例。我无法识别任何季节性或其他模式。
  • 针对每个国家,分别处理:
    • 计算每天的平均产品比例,区分偶数年和奇数年(观察正弦余弦曲线,有一个明显的两年模式),然后应用一些 FFT 平滑(感谢 @kdmitrie 在某处讨论过这一点)
    • 对于年度日期比例,我使用了 Sklearn 的 Ridge 和 HuberRegressor 进行线性回归(差别不大)。我做了一些广泛的特征工程。除了正弦 - 余弦特征和星期几之外,我还尝试了许多特定国家的假日,包括浮动和固定假日。销售高峰通常发生在假日后的几天。由于 Ridge 运行速度很快,我试图找出每个国家有效的具体日期。有趣的是,某些国家/假日组合产生了影响,尽管 holidays 库中并没有它们。
  • 最后,根据比例和年度总计计算绝对数值。

由于国家比例存在一些缺陷,当我没有好主意可提交时,我针对公共排行榜测试了一些因子(如肯尼亚 * 1.012)。但这并没有带来太大差别,并且相对于私有排行榜存在风险。

我最好的 Notebook 在公共排行榜上达到了 0.04385,在私有排行榜上达到了 0.4560,均使我获得第四名。

同比赛其他方案