390. M5 Forecasting - Accuracy | m5-forecasting-accuracy
所以我想和大家分享一下我策略中的一些要点。
我决定不使用任何乘数。我不太喜欢那种方法,我更倾向于通过特征工程和调整超参数来提高模型的泛化能力。
我使用了 @kyakovlev 在 M5 - Three shades of Dark: Darker magic 中发布的一些想法,例如:
我从 M5 - Out of stock feature (640x faster) 中提取了:
我还使用了其他特征,例如 'sell price'(售价)的最后两位数字、'days from last price change'(距上次价格变动的天数)、'sell price ratio'(售价比率)、'days from last sale'(距上次销售的天数)、'release week'(发布周)、'weeks from release'(发布后的周数)、'cluster'(聚类)、'ADI rolling mean'(ADI滚动平均值)以及考虑了 'weekend'(周末)、'snap'(SNAP补贴日)和 'event'(事件)+ 'preholidays'(节假日前)的目标编码。
还有一些不需要提及的基本特征。我还修正了我发现的一些异常值以及 讨论区 中提到的其他异常值。
关于数据,实际上我使用了自2011年以来的整个数据集来计算特征,除了编码特征,我将编码特征的起始日期设为2013年。
我使用了 LightGBM,并为每家商店创建了模型,这是基于 @kyakovlev 的模型并根据我的需求进行了调整。
我使用了一种改编自 Time-Based Cross Validation 的滚动前向交叉验证方法进行训练。
我认为我的解决方案还有很多可以改进的地方。到了周日,我的模型开始表现得很奇怪,所以我决定从零开始重建一切,所以我没有太多时间去分析哪些特征确实是好的。我删减了一堆特征,也没时间测试贝叶斯编码和其他想法,现在冷静下来我会去尝试这些。
希望这能帮助大家理解你们竞争对手的一些方法,尽管我们看到这次比赛的结果本来也可以通过“一些”乘数来达到。非常感谢那些分享想法并帮助改进我模型的人。
如果我忘记提及任何人的想法,请告诉我,我会给予适当的署名和引用。