【问题标题】:How can I get predicted the following value of stock using predict method of Tensorflow?如何使用 Tensorflow 的预测方法预测股票的以下价值?
【发布时间】:2020-06-19 23:33:37
【问题描述】:

我想知道如何在模型训练后预测和获取未来的时间序列数据。我想在 N 步后得到值。我想知道时间序列数据是否已被正确学习和预测。我该如何正确地获得以下(下一个)值?我想使用model.predict 或类似方法获取下一个值。

我有x_testx_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 个预测看起来一样。我想知道这是否是训练和预测值的正确方法,以及结果是否正确。

full source

我第一次尝试的方法没有正常工作。

第二

我意识到有问题,我尝试使用另一个官方数据,所以我使用 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


    【解决方案1】:
    在第二种方法中,由于代码中的错误,输出不预期。

    代码行,

    a = y_val[-look_back:]
    

    应由

    替换
    look_back = 20
    x = x_val_uni
    a = x[-look_back:]
    a.shape
    
    换句话说,我们应该将X Values作为预测模型的输入,而不是Y Values。 但是,我们可以将其与Y值进行比较,使用代码,
    y = y_val_uni[-20:]
    
    plt.plot(y)
    plt.plot(tmp)
    plt.show()
    

    将导致下面显示的曲线:

    请在此@ 987654322中找到完整的工作代码@。

    【讨论】:

    • 谢谢。如何预测下一个20值? span>
    猜你喜欢
    • 2020-06-05
    • 1970-01-01
    • 2019-03-17
    • 2016-11-12
    • 2020-08-26
    • 1970-01-01
    • 2023-01-13
    • 2019-07-04
    • 1970-01-01
    相关资源
    最近更新 更多