我想知道如何在模型训练后预测和获取未来的时间序列数据。我想要在N步之后获取这些值。我想知道时间序列数据是否已经被正确学习和预测。如何正确地做到这一点以获取以下(下一个)值?我想使用
我有
结果以线性回归形式预测,与实际数据非常不同。
model.predict
或类似方法来获取下一个值。我有
x_test
和x_test[-1] == t
,所以下一个值的意思是t+1, t+2, .... t+n
。在这个例子中,我想要获取t+1, t+2 ... t+n
第一步
我尝试使用股票指数数据
inputs = total_data[len(total_data) - forecast - look_back:]
inputs = scaler.transform(inputs)
X_test = []
for i in range(look_back, inputs.shape[0]):
X_test.append(inputs[i - look_back:i])
X_test = np.array(X_test)
predicted = model.predict(X_test)
但结果如下
X_test[-20:]
和接下来的20个预测结果看起来一样。我想知道这是否是正确的训练和预测方法,以及结果是否正确。
我尝试的第一种方法没有正确工作。
第二种方法
我意识到有些问题,所以我使用了Tensorflow教程中的时间序列来练习模型的训练。
a = y_val[-look_back:]
for i in range(N-step prediction): #predict a new value n times.
tmp = model.predict(a.reshape(-1, look_back, num_feature)) #predicted value
a = a[1:] #remove first
a = np.append(a, tmp) #insert predicted value
结果以线性回归形式预测,与实际数据非常不同。
输出一个与真实数据无关的线性回归异常值:
完整源代码 (在第25行之后是我的代码.)
我非常好奇如何使用Tensorflow预测方法预测时间序列的下一个值
我不想理论上是否有效,我只是想知道如何使用预测方法获取接下来的n步骤
感谢您阅读这篇长问题。我希望听取您的宝贵意见。