【发布时间】:2020-06-19 23:33:37
【问题描述】:
我想知道如何在模型训练后预测和获取未来的时间序列数据。我想在 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
以线性回归形式预测的结果与实际数据大不相同。
输出一个独立于真实数据的线性回归异常:
full source(第 25 行之后是我的代码。)
我真的很好奇如何使用Tensorflow预测方法预测时间序列的以下值
我不知道这在理论上是否可行。我只是想知道如何使用 predict 方法获得以下 n 个步骤。
感谢您阅读冗长的问题。我就您的宝贵意见征求意见。
【问题讨论】:
标签: python tensorflow machine-learning deep-learning prediction