LSTM滑动窗口,结果预测

img


为什么这个测试数据,发一条数据进去,会测试出5个结果?模型是用过去5秒的数据来预测他们的位置,特征是4个。所以预测数据结构是(1,5,4),但是预测结果有5个,是为什么呢?

每一秒的数据当成一个样本(共5秒),样本特征维度是4,那这个样本矩阵不就是5x4,那输出自然是5x预测结果吧

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/748529
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:使用LSTM生成序列、自动问答使用?分割即可!
  • 除此之外, 这篇博客: LSTM中的归一化与反归一化问题、预测未来值问题中的 验证模型并对预测值进行反归一化,并查看预测情况 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 其实对预测值反归一化需要注意一个问题,那就是预测值的形状shape要和归一化前的数据形状相同,在多特征中也是如此,后面将会进行介绍。

    #模型验证,在测试集中进行验证
    test_pred = model.predict(X_test, verbose =1)
    
    #对得到的预测值和真实值进行反归一化
    original_test_pred=scaler.inverse_transform(test_pred)
    original_y_test=scaler.inverse_transform(y_test)
    
    计算各种评价参数其中包括MSE,RMSE,MAE,MAPE,r2
    from sklearn import metrics
     
    # MAPE需要自己实现
    def mape(y_true, y_pred):
        return np.mean(np.abs((original_y_test-original_test_pred) / original_y_test))
     
    y_true = np.array(original_y_test)
    y_pred = np.array(original_test_pred)
     
    print('MSE:',metrics.mean_squared_error(original_y_test,original_test_pred))
     
    print('RMSE:',np.sqrt(metrics.mean_squared_error(original_y_test,original_test_pred)))
     
    print('MAE:',metrics.mean_absolute_error(original_y_test,original_test_pred))
     
    print('MAPE:',mape(original_y_test,original_test_pred))
    
    score = r2_score(original_y_test,original_test_pred)
    print("r^2的值:",score)