python - 如何在python中通过LSTM获得对新数据的预测
问题描述
这是一个单变量时间序列预测问题。如以下代码所示,我将初始数据分为训练数据集(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)
解决方案
由于在训练模型时我们没有未来的价值,我们只是将数据分为训练集和测试集。然后我们只是想象测试集是未来的值。我们使用训练集(通常也是验证集)训练我们的模型。在我们的模型经过训练后,我们使用测试集对其进行测试,以检查我们的模型性能。