在本文中我们将使用深度学习方法 (LSTM) 执行多元时间序列预测。
我们先来了解两个主题——
- 什么是时间序列分析?
- 什么是 LSTM?
时间序列分析:时间序列表示基于时间顺序的一系列数据。它可以是秒、分钟、小时、天、周、月、年。未来的数据将取决于它以前的值。
在现实世界的案例中,我们主要有两种类型的时间序列分析——
- 单变量时间序列
- 多元时间序列
对于单变量时间序列数据,我们将使用单列进行预测。
正如我们所见,只有一列,因此即将到来的未来值将仅取决于它之前的值。
但是在多元时间序列数据的情况下,将有不同类型的特征值并且目标数据将依赖于这些特征。
正如在图片中看到的,在多元变量中将有多个列来对目标值进行预测。(上图中“count”为目标值)
在上面的数据中,count不仅取决于它以前的值,还取决于其他特征。因此,要预测即将到来的count值,我们必须考虑包括目标列在内的所有列来对目标值进行预测。
在执行多元时间序列分析时必须记住一件事,我们需要使用多个特征预测当前的目标,让我们通过一个例子来理解 -
在训练时,如果我们使用 5 列 [feature1, feature2, feature3, feature4, target] 来训练模型,我们需要为即将到来的预测日提供 4 列 [feature1, feature2, feature3, feature4]。
LSTM
本文中不打算详细讨论LSTM。所以只提供一些简单的描述,如果你对LSTM没有太多的了解,可以参考我们以前发布的文章。
LSTM基本上是一个循环神经网络,能够处理长期依赖关系。
假设你在看一部电影。所以当电影中发生任何情况时,你都已经知道之前发生了什么,并且可以理解因为过去发生的事情所以才会有新的情况发生。RNN也是以同样的方式工作,它们记住过去的信息并使用它来处理当前的输入。RNN的问题是,由于渐变消失,它们不能记住长期依赖关系。因此为了避免长期依赖问题设计了lstm。
现在我们讨论了时间序列预测和LSTM理论部分。让我们开始编码。
如果你想看完整的代码,可以在这里查看: