如何在python中通过LSTM获得新数据的预测

S.X*_*S.X 4 python machine-learning lstm keras tensorflow

这是一个单变量时间序列预测问题。如下面的代码所示,我将初始数据分为训练数据集 ( trainX) 和测试数据集 ( testX),然后通过 keras 创建一个 LSTM 网络。接下来,我通过训练数据集训练模型。但是,当我想获得预测时,我需要知道测试值,所以我的问题是:既然我知道这个问题中的测试数据集的真实值,为什么我必须预测。我想要得到的是未来时间的预测值?如果我对 LSTM 网络有一些误解,请告诉我。

谢谢你!

# create and fit the LSTM network
model = Sequential()
model.add(LSTM(4, input_shape=(1, look_back)))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(trainX, trainY, epochs=100, batch_size=1, verbose=2)
# make predictions
trainPredict = model.predict(trainX)
testPredict = model.predict(testX)
Run Code Online (Sandbox Code Playgroud)

小智 5

我认为在这种情况下正确的术语是“预测”。

一个很好的解释是:在训练和测试模型之后,使用已有的数据(正如我之前的其他人所说的那样),您想要预测未来的数据,我认为这是关于循环的真正有趣的事情网络。

因此,为了做到这一点,您需要使用模型(使用过去的数据进行训练)从原始数据集中的最终日期后一天开始预测值。一旦你预测了这个值,你就会做同样的事情,但要考虑最后的预测值,依此类推。

事实上,您正在使用预测来进行其他预测,这意味着获得好的结果要困难得多,因此尝试预测短时间范围是很常见的。

您需要执行的确切代码可能会有所不同,但我认为这是主要概念

在下面的链接中,在执行预测的最后一部分中,作者向我们展示了代码和他如何做到这一点的解释。

https://towardsdatascience.com/time-series-forecasting-with-recurrent-neural-networks-74674e289816

我想就是这样。