使用机器学习进行预测


时间序列预测是机器学习历史最悠久的应用之一,也是整个行业使用最普遍的技术之一(如果不是最普遍的话)。然而,在最近的 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中最强大而又未被充分使用的技术之一。