LSTM输入重塑多变量数据

时间:2017-06-21 12:08:27

标签: 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

我们可以使用2个先前的温度,压力,压力和寿命值来估计压力和寿命的当前值。因此,使用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列车矩阵应该被塑造成什么?

1 个答案:

答案 0 :(得分:1)

您想要预测n-1和n-2的第n个值。因此,您可以在数据上创建“滑动窗口”以创建样本。

数据@ T1和T2预测T3

数据@ T2和T3预测T4

等等,直到

数据@ T4和T5预测T6

所以你最终会得到4个样本,由前两个步骤中的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]]