Keras 多变量数据的LSTM输入整形

Keras 多变量数据的LSTM输入整形,keras,lstm,Keras,Lstm,我有一个包含多个输入和输出的数据集,我想与Keras LSTM一起使用。我正试图弄清楚数据需要如何重塑 原始数据如下: Time, Temp(X1), Pressure(X2), Stress(Y1), Life(Y2) 1, T1, P1, S1, L1 2, T2, P2, S2, L2 3, T3, P3, S3, L3 4, T4, P4, S4, L4 5, T5, P5, S5, L5 6, T6, P6, S6, L6 我们可以使用之前的两个温度、

我有一个包含多个输入和输出的数据集,我想与Keras LSTM一起使用。我正试图弄清楚数据需要如何重塑

原始数据如下:

Time, Temp(X1), Pressure(X2), Stress(Y1), Life(Y2)          
1,  T1, P1, S1, L1
2,  T2, P2, S2, L2
3,  T3, P3, S3, L3
4,  T4, P4, S4, L4
5,  T5, P5, S5, L5
6,  T6, P6, S6, L6
我们可以使用之前的两个温度、压力、应力和寿命值来估计应力和寿命的当前值。因此,使用2的回溯/时间步,我们可以使用我可以将数据重新安排为以下内容: X列矩阵的形状为4,10:

T1, P1, T2, P2, T3, P3, S1, L1, S2, L2
T2, P2, T3, P3, T4, P4, S2, L2, S3, L3
T3, P3, T4, P4, T5, P5, S3, L3, S4, L4
T4, P4, T5, P5, T6, P6, S4, L4, S5, L5
Y列矩阵的形状为4,2:

 S3, L3
 S4, L4
 S5, L5
 S6, L6
Keras要求将输入重塑为[样本、时间步长、特征]

samples=4
timesteps/lookback=2
Original data X features=2
但不可能将4,10的X列矩阵重塑为4,2,2。那么,陷阱在哪里


此外,Y列矩阵的形状应该是什么?

您希望从n-1和n-2预测第n个值。因此,您可以在数据上创建一个滑动窗口来创建样本

T1和T2的数据预测T3

T2和T3的数据预测T4

等等,直到

T4和T5的数据预测T6

因此,您将得到4个示例,由前2个时间步中的X1、X2、Y1和Y2定义

您的输入数据将是

X = [[[T1, P1, S1, L1]
      [T2, P2, S2, L2]],
     [[T2, P2, S2, L2],
       T3, P3, S3, L3]],
     [[T3, P3, S3, L3]
       T4, P4, S4, L4]],
     [[T4, P4, S4, L4],
       T5, P5, S5, L5]]]
以及您想要预测的值

y = [[S3, L3],
     [S4, L4],
     [S5, L5],
     [S6, L6]]

您必须将时间索引6和7替换为5和6。我正在尝试使用X1和X2的当前值以及以前的X1、X2、Y1、Y2值预测Y1和Y2的当前值。@trumee我将编辑我的答案,仅从过去的X1和X2预测当前的Y1、Y2。我已更新了上面的X矩阵。在第一个示例中,为什么忽略当前值T3和P3。它们还应用于估计S3、L3。@trumee实际上不确定您是否可以在每个时间步都有由不同数量的特征定义的观测值,其中4个用于过去的观测值,2个用于当前的观测值。对,您发布的X矩阵的顺序是正确的[样本、时间步、特征],因此不需要对其进行重塑,对吗?