返回列表

9th place solution

566. Playground Series - Season 3, Episode 19 | playground-series-s3e19

开始: 2023-07-11 结束: 2023-07-31 销量与需求预测 数据算法赛
第9名解决方案

第9名解决方案

作者:Geremie Yeo (GRANDMASTER)
发布时间:2023-08-02 09:17:01 UTC
比赛排名:第9名

这是我第一次在Playground/Featured系列赛中获得个位数排名。

非常感谢Kaggle组织Playground系列赛事,并采纳了@ravi20076关于增加挑战多样性的建议,同时也感谢队友@onurkoc83@nivedithavudayagiri的出色合作!

在本文中,我将详细介绍我在S3E19比赛中的解决方案。

处理2020年销售数据

我使用了这个数据集对2020年3月至12月的数据进行了平滑处理(而不仅仅是3月至5月)[我也尝试过使用2020年1月至12月的数据,但这导致了验证分数下降],以消除整年的异常趋势。

处理后的数据如下所示(没有出现任何偏差):

预处理

添加了以下额外特征:
(a) 标准日期特征:年、月、星期几等
(b) 节假日特征(参考:@nivedithavudayagiri
(c) 季节性特征:如month_sin、month_cos

方法

我没有使用交叉验证。训练集为2017-2020年平滑后的数据,验证集为2021年的数据。验证指标不是整个2021年的数据,而是仅计算2021年4月至12月的SMAPE这个讨论提示评估将基于4月至12月的数据)。

使用了后处理:将最终预测结果乘以一个系数(参考:@paddykb方法)。

在比赛期间,我发布了两个使用不同预测模型的公开笔记本:
(1) Prophet基线模型与后处理
验证分数:9.39
(5) CatBoost模型(平滑+后处理) [版本35]
验证分数:8.50

这两个笔记本的预测结果都被用作候选,与其他提交结果融合形成最终提交:

(2) EDA+集成ML管道+RNN by @tetsutani
(3) Gammy Sales [需注意!] by @paddykb
(4) EDA与建模提交 by @oscarm524

经过多次实验,最佳的融合子集是(2)、(3)和(5)。这得到了公开榜分数5.42826和私有榜分数6.01720,最终排名第9位

最终提交笔记本

https://www.kaggle.com/code/yeoyunsianggeremie/s3e19-9th-place-submission

注:如果选择公开榜分数最高的提交而非最佳CV分数,我本可以获得第6名。哈哈

感谢阅读!