返回列表

4th place solution

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

开始: 2020-03-03 结束: 2020-06-30 销量与需求预测 数据算法赛
第4名解决方案
作者:monsaraida (Master) | 排名:第4名 | 发布时间:2020-07-01

第4名解决方案

首先,非常感谢比赛的参与者和组织者。我从这次比赛中学到了很多。我的解决方案可能看起来没有太大的价值,但我从社区中获得了很多见解,所以我觉得有义务与大家分享这个解决方案。(我特别从 @kyakovlev 的内核中学到了很多,谢谢。)

[解决方案]

  • 模型
    • LightGBM(单模型)
    • 目标函数 = tweedie
  • 验证
    • 5折留出验证 (d1578-d1605, d1830-d1857, d1858-d1885, d1886-d1913, d1914-d1941)
    • 无早停
  • 模型拆分
    • 针对每个商店
      • 针对每周
        • 模型 w1 预测 F01, F02, ..., F07
        • 模型 w2 预测 F08, F09, ..., F14
        • 模型 w3 预测 F15, F16, ..., F21
        • 模型 w4 预测 F22, F23, ..., F28
  • 特征
    • 通用时间序列特征
    • 通用价格特征
    • 通用日历特征
    • 无递归特征

比赛开始时,我首先了解了数据和评估指标,并创建了一个基线模型。然后我意识到验证分数在不同时间段内差异很大。(我无法建立一个合适的验证。)我深信这场比赛将非常困难,而且不可能建立一个高精度的模型。

所以我决定放弃在比赛中获得高排名的努力。取而代之的是,我决定尝试建立一个“实用”的解决方案。我的策略如下:

  • 不使用后处理、乘数和数据泄露
    • 在实践中,不可能利用这些信息,所以我决定不应该使用它们。
  • 信任交叉验证(CV),但不关心官方评估指标(WRMSSE)
    • WRMSSE 是比赛组织者的评估指标,但在实践中,我认为 WRMSSE 并不总是合理的。因此,我没有制作自定义损失函数,以避免过拟合于这个比赛任务本身。
  • 不使用复杂和递归的特征
    • 只使用可应用于任何实际任务的通用特征。
    • 递归特征会导致误差累积。
  • 不过度使用计算资源
    • 单模型(仅 LightGBM,无堆叠/融合)
    • 内存效率(针对每个商店和每周建立模型)

正如我之前提到的,我并没有以高排名为目标,所以我对这个结果(第4名)感到非常惊讶。从上面的解决方案可以看出,我没有做任何特别的事情。对我来说有价值的是学到了很多关于构建简单解决方案的知识,这些方案可以在实践中广泛应用。排名本身对我来说毫无意义。(然而,我对那些付出巨大努力想要登顶的人感到非常抱歉……)

无论如何,我从这次比赛和社区中学到了很多。感谢所有的 Kaggle 社区成员。

同比赛其他方案