keras 中 LSTM 的多元时间序列的正确输入形状是什么?

What is the correct input shape of multivariate time series for LSTM in keras?

我不明白将多变量时间序列输入 LSTM 的正确方法是什么。

假设我有一个包含 3 个随时间变化的特征的数据集,如下所示:

feat1 feat2 feat3
1 2 3
4 5 6
7 8 9

我是否应该将其呈现给我的 LSTM,因为它正在使用 numpy.vstack()?像这样:

[[1,2,3],  
[4,5,6],  
[7,8,9]]

或者我应该按列堆叠它,以便每一行都是使用 numpy.column_stack() 的特征序列?像这样:

[[1,4,7],  
[2,5,8],  
[3,6,9]]

来自keras LSTM API:

inputs: A 3D tensor with shape [batch, timesteps, feature].

因此,特征(多变量)应该用最后一个维度来表示,这意味着你的第一个建议是正确的。

Obs:只有当您没有对整个数据集使用 fit 函数时,才应该关注 batch 维度。否则,如果您展示的是单个示例(例如,在推理中),您还应该在第 0 轴应用 numpy.expand_dims 函数。