任何给定时间的系列预测

数据挖掘 机器学习 深度学习 时间序列
2022-02-11 05:37:11

我有一个时间序列的数据点。然后给我一个未来的时间戳,我必须预测数据点的值。为简单起见,您可以假设时间戳是有界的,例如查询在未来最多可以是 1 小时。

这与传统的训练和预测模型不同。在这里,除了过去的数据之外,您还将获得时间作为查询输入。

目前,我每分钟都在训练不同的模型(是的,60 个模型:很多等待时间)。

我想知道这个特定任务是否有可用的东西?

编辑:要获得有关数据的视图,您可以假设一个简单的实数时间序列,我必须使用历史来预测任何一般时间(在接下来的 1 小时内)。

2个回答

考虑到 ocam 的剃须刀,我建议首先使用最简单的模型,如果简单模型失败,则增加复杂性:

  1. 指数加权移动平均线,仅允许与滞后一号自动相关
  2. ARIMAX,允许多个滞后自相关、季节性调整和外部回归。
  3. 傅立叶变换,允许拟合更多形状的时间序列,但它们通常更难以向用户解释

所有这些模型都可以提前一步预测,并且您可以重复最多 60 步。当然,置信区间会变得更宽,提前这么多步。Base R 有许多可用的时间序列。

这两个模型适用于许多时间序列数据。我只会在神经网络不起作用或者你正在寻找边缘检测时才开始使用神经网络。

神经网络

如果神经网络是唯一的选择,你可以查看这篇文章,或者如果你有 matlab 可用这篇文章

我最近在 medium 上发现了这篇非常有趣的文章,它解释了如何将神经网络拟合到时间序列数据中。可以在此处找到更详细的实施指南。我没有尝试过这两种方法,但我认为这可能对将来的参考有用。

时间序列作案手法

请注意,无论如何,在开始对时间序列进行建模之前,强烈建议采取一些准备步骤:

  1. 如此处所述,使您的系列静止
  2. 了解您可以在系列中分解哪些元素,如此处所述

希望这可以帮助

我会用神经网络这样做。我会采取固定的时间间隔(取决于您的数据)。然后我将它输入网络并输出下一个时间步长。然后,您可以删除初始输入数据中的最后一个数据点,并将先前的输出添加到输入以预测下一步,依此类推。对于训练,您可以在每个点停止,并将 x 的最后一个间隔和当前点作为 y。

也许你也可以看看循环网络:https ://keras.io/layers/recurrent/ 。

最后,我不建议使用神经网络来解决这个问题,因为在我看来这太过分了。