第四名解决方案 - Johannes Heller
第四名解决方案
祝贺 @georgekoussa 的获胜 Notebook!也祝贺 @kdmitrie 取得了精彩的第三名。每当我短暂排名第一时,几小时后他就迅速把我挤到第二名 😉
这场使用人工数据集的预测竞赛有点像谜题,需要计算各种比例。然而,每年的总销售额对我来说仍然是个谜。所以我很高兴最终获得了第四名,就像在公共排行榜上一样。我本以为会有更大的变动。
简而言之,这是我的解决方案:
- 将年度总计视为给定值(我使用了早期预测和一些公共 Notebook 的平均值)。以下所有步骤均指比例。
- 使用世界银行每年的人均 GDP 数据作为国家比例。由于训练数据中的国家比例存在一些重大差异,我使用了简单的 scipy 线性回归来使比例更拟合,尤其是肯尼亚。
- 使用固定的商店比例。我无法识别任何季节性或其他模式。
- 针对每个国家,分别处理:
- 计算每天的平均产品比例,区分偶数年和奇数年(观察正弦余弦曲线,有一个明显的两年模式),然后应用一些 FFT 平滑(感谢 @kdmitrie 在某处讨论过这一点)
- 对于年度日期比例,我使用了 Sklearn 的 Ridge 和 HuberRegressor 进行线性回归(差别不大)。我做了一些广泛的特征工程。除了正弦 - 余弦特征和星期几之外,我还尝试了许多特定国家的假日,包括浮动和固定假日。销售高峰通常发生在假日后的几天。由于 Ridge 运行速度很快,我试图找出每个国家有效的具体日期。有趣的是,某些国家/假日组合产生了影响,尽管 holidays 库中并没有它们。
- 最后,根据比例和年度总计计算绝对数值。
由于国家比例存在一些缺陷,当我没有好主意可提交时,我针对公共排行榜测试了一些因子(如肯尼亚 * 1.012)。但这并没有带来太大差别,并且相对于私有排行榜存在风险。
我最好的 Notebook 在公共排行榜上达到了 0.04385,在私有排行榜上达到了 0.4560,均使我获得第四名。