时间序列预测是机器学习历史最悠久的应用之一,也是整个行业使用最普遍的技术之一(如果不是最普遍的话)。然而,在最近的 ML 热潮中,预测有些落伍了。
时间序列预测正在成为一门失传的艺术。 它是美国零售业50亿美元背后的引擎。 然而,研究进展缓慢,交易技巧被锁起来。 以下是您需要了解的内容:
1.特定领域的EDA
启动任何ML问题的最佳方式。
这里有一些在时间序列数据中需要注意的事情。
- - 季节性(月、日等)。
- - 趋势(对于适当的评估来说是很大的)。
- - 自相关性
- - 旧的和新的系列之间的差异
- - 大量的原始样本
不过,别忘了,除了历史因素外,还要叠加其他变量。
通常情况下,看似随机的波动有一个明显的原因。
价格转变、广告活动等。
2.特定领域的基准测试
MAE为96.05好吗?
MAPE为36%呢?
除非你创造一个愚蠢的基准,否则没有办法知道。
预测平均值是很好的,但请记住,即使是一个天真的预测者也可能超过这个通常的表现。
尝试更好地考虑领域的东西,如滚动平均值,预测最后一天的可用数据中看到的值,等等。
然后,使用该基线的性能来衡量你的模型。
3.领域专长
异常情况下的利益相关者关系:如果可以的话,一定要与了解业务方面的基本运作和动态的人合作。
可能会出现由收款问题、罢工、缺货等引起的高峰。
一次5分钟的对话可以为你节省50个小时。
4.模型评估
对于99.999%的问题,任何除滚动前移/扩展窗口交叉验证以外的答案都是错误的。
不要对你的样本做任何不能保证未来值不被包括在内的随机分割。
这对生产来说是一个死刑判决。
而且不要忘记评价指标。
MAE和RMSE都很好。
MAPE/WAPE也有它们的位置。
但是,如果你没有使用像RMSSE和MASE这样的比例指标,你可能没有很好地捕捉到你的模型性能。
甚至更好的是:深入研究基本的业务运作,这样你就可以直接将你的预测准确性转化为企业的$$提升。
5.现在,我们将进入有趣的东西:建模技术
"最先进的 "在很大程度上取决于业务的使用情况。我将在这里为大家提供一些东西。
1、统计学模型
在低数据环境中,很难击败好的老的ARIMA和ETS。
但这并不是故事的结束。在Theta模型、STR和其他许多模型中都有一些创新。
2. LightGBM/XGBoost
如果你的公司有任何像样的数据量,你可能不会击败这个。
结合滚动/滞后功能、分组聚合和你能得到的所有外部变量,你有可能把一个模型拍在你的整个企业上。
6.结合预测
时间序列数据一直在改变它的行为,所以将多个模型组合起来通常会得到更稳健的结果。
一旦你找到了你最好的单一模型,请尝试前面列表中的所有其他模型,并将其中一些模型组合起来,以实现多样性。
层次预测在使你的预测更加连贯方面也是令人难以置信的强大。
它不仅能使你的预测和不同层次的预测相互一致,而且还能使预测的准确性得到很好的提升
7.生产
你的主要关切是数据漂移。请确保你有一个监测系统,定期检查。
就个人而言,我喜欢对抗性验证来识别数据漂移。它是ML中最强大而又未被充分使用的技术之一。