返回列表

25th place solution

390. M5 Forecasting - Accuracy | m5-forecasting-accuracy

开始: 2020-03-03 结束: 2020-06-30 销量与需求预测 数据算法赛
第25名方案

第25名方案

作者:M0T0 | 比赛排名:第25名

我在这次比赛中学到了很多。非常感谢精彩的讨论和Notebook分享。
我的解决方案可能没什么价值,我也很好奇为什么它在Private榜单上表现不错,但我还是分享出来。
我预测了层级 1~10 和层级 12 的值。

模型

使用 LightGBM:

  • 层级 12:递归预测,目标函数为泊松分布。
  • 层级 1~10:逐天预测 (target->sale*price),层级 1~9 目标函数为 rmse,层级 10 为 tweedie。

特征

简单的位移、滚动、差分特征,商品数量,一些日历特征,价格。

验证

d1830-d1857, d1858-d1885, d1886-d1913, d1914-d1941

我在层级 1~10 的预测上花了不少时间,层级 1~10 预测的交叉验证(CV)结果很稳定。
我使用 StratifiedFold 来调整层级 1~10 的参数。

预测融合

我是这样组合预测结果的:

df[level12] *= df[price]
df[level_] = df[level_prediction] * (df[level12] / df.groupby(level_).transform(sum))
df[final_prediction] = 0.65 * mean(df[level8, level9]) + 0.35 * mean(df[level1~7, level10, level12])

我无法获得很好的层级 12 WRMSSE 分数,但在结合层级 1~10 的预测后得分提高了。我相信层级 1~10 的预测提升了 WRMSSE 分数。

时间段 单独层级 12 结合层级 1~10
d1942-d1969 0.73233 0.55895
d1914-d1941 0.60359 0.5635
d1886-d1913 0.56219 0.51489
d1858-d1885 0.67186 0.60522
d1830-d1857 0.71142 0.644
同比赛其他方案