如何在Python中使用LSTM编写时间序列长度以预测下一个值

时间:2019-07-16 15:29:43

标签: python-3.x machine-learning time keras lstm

在这里,我有一个数据集,其中有三个输入分别为X1,X2,X3。因此,我想在每60分钟内预测X1值。

在这里,我不是每60分钟测量一次值。因此,我每5分钟重新采样一次数据,以减少错误。

因此,我想每60分钟预测一次我的下一个值。这样我就为时间序列编写了代码。

因此,这里的时间顺序= 12。 由于每5分钟重新采样一次数据,因此60分钟为12,12*5 = 60 minutes.

我使用lstm模型来预测x1的值。 当我编写代码以每60分钟预测一次价值时,它给了我一个错误Error when checking input: expected lstm_1_input to have 3 dimensions, but got array with shape (12, 1)

有人可以帮我解决这个问题吗?

这是我的代码:

sequence_timestep = 12
last_sequence_train = x_train_n[-1]

pred1 = []

def sequence_constructor():
   if len(pred1) >= sequence_timestep:
     new_sequence = pred1[-x_train:]
   else:
     splitter = sequence_timestep - len(pred1)
     part_1 = last_sequence_train[-splitter:]
     new_sequence = np.append(part_1,pred1) #Concatenate 2 list
 new_sequence = np.array(new_sequence)
 return new_sequence  


for i in range(288):
 new_sequence = sequence_constructor()
 new_prediction = model.predict(new_sequence)
 pred1.append(new_prediction)  

错误:

enter image description here

My csv file

0 个答案:

没有答案