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
函数。
我不明白将多变量时间序列输入 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
函数。