Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从LSTM进行预测并使用python绘制它?_Python_Deep Learning_Time Series_Lstm_Forecasting - Fatal编程技术网

如何从LSTM进行预测并使用python绘制它?

如何从LSTM进行预测并使用python绘制它?,python,deep-learning,time-series,lstm,forecasting,Python,Deep Learning,Time Series,Lstm,Forecasting,我仍然是一个使用LSTM制作预测时间序列数据的初学者。 我已经成功地使用时间序列中的LSTM制作了该模型,以使用本教程进行预测: 现在我想用这个模型来: 预测新值 并使用matplotlib 例如: 如果我想要接下来4天的值,那么就得到它并绘制在曲线上。 我已经搜索了很多,但没有找到结果 下面是我绘制的模型代码和曲线 谢谢 然后用于绘制结果(当我要继续曲线以预测下一个时间段时) 你的问题模棱两可。您已经进行了预测并绘制了数据。你到底想要什么,这与你目前所做的不同?例如,我根据4个步骤进行预测,

我仍然是一个使用LSTM制作预测时间序列数据的初学者。 我已经成功地使用时间序列中的LSTM制作了该模型,以使用本教程进行预测:

现在我想用这个模型来:

  • 预测新值
  • 并使用
    matplotlib
    例如:
  • 如果我想要接下来4天的值,那么就得到它并绘制在曲线上。 我已经搜索了很多,但没有找到结果 下面是我绘制的模型代码和曲线 谢谢

    然后用于绘制结果(当我要继续曲线以预测下一个时间段时)


    你的问题模棱两可。您已经进行了预测并绘制了数据。你到底想要什么,这与你目前所做的不同?例如,我根据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();