如何从LSTM进行预测并使用python绘制它?
我仍然是一个使用LSTM制作预测时间序列数据的初学者。 我已经成功地使用时间序列中的LSTM制作了该模型,以使用本教程进行预测: 现在我想用这个模型来:如何从LSTM进行预测并使用python绘制它?,python,deep-learning,time-series,lstm,forecasting,Python,Deep Learning,Time Series,Lstm,Forecasting,我仍然是一个使用LSTM制作预测时间序列数据的初学者。 我已经成功地使用时间序列中的LSTM制作了该模型,以使用本教程进行预测: 现在我想用这个模型来: 预测新值 并使用matplotlib 例如: 如果我想要接下来4天的值,那么就得到它并绘制在曲线上。 我已经搜索了很多,但没有找到结果 下面是我绘制的模型代码和曲线 谢谢 然后用于绘制结果(当我要继续曲线以预测下一个时间段时) 你的问题模棱两可。您已经进行了预测并绘制了数据。你到底想要什么,这与你目前所做的不同?例如,我根据4个步骤进行预测,
matplotlib
例如:你的问题模棱两可。您已经进行了预测并绘制了数据。你到底想要什么,这与你目前所做的不同?例如,我根据4个步骤进行预测,因此如果今天是包含gmv真实值的数据中的最后一天,我想预测明天的值,然后在明天到来时预测后天,依此类推。@RocketsFallonkRocketFalls
model = Sequential()
model.add(LSTM(100, input_shape=(X_train.shape[1], X_train.shape[2])))
model.add(Dropout(0.2))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
history = model.fit(X_train, Y_train, epochs=20, batch_size=70, validation_data=(X_test, Y_test),
callbacks=[EarlyStopping(monitor='val_loss', patience=10)], verbose=1, shuffle=False)
model.summary()
train_predict = model.predict(X_train)
test_predict = model.predict(X_test)
# invert predictions
train_predict = scaler.inverse_transform(train_predict)
Y_train = scaler.inverse_transform([Y_train])
test_predict = scaler.inverse_transform(test_predict)
Y_test = scaler.inverse_transform([Y_test])
print('Train Mean Absolute Error:', mean_absolute_error(Y_train[0], train_predict[:,0]))
print('Train Root Mean Squared Error:',np.sqrt(mean_squared_error(Y_train[0], train_predict[:,0])))
print('Test Mean Absolute Error:', mean_absolute_error(Y_test[0], test_predict[:,0]))
print('Test Root Mean Squared Error:',np.sqrt(mean_squared_error(Y_test[0], test_predict[:,0])))
aa=[x for x in range(200)]
plt.figure(figsize=(8,4))
plt.plot(aa, Y_test[0][:200], marker='.', label="actual")
plt.plot(aa, test_predict[:,0][:200], 'r', label="prediction")
# plt.tick_params(left=False, labelleft=True) #remove ticks
plt.tight_layout()
sns.despine(top=True)
plt.subplots_adjust(left=0.07)
plt.ylabel('Global_active_power', size=15)
plt.xlabel('Time step', size=30)
plt.legend(fontsize=15)
plt.show();