【问题标题】:How to output a value of a CNN for Stock Prediction如何为股票预测输出 CNN 的值
【发布时间】:2019-04-24 22:49:37
【问题描述】:

我构建了一个基于LSTM 的神经网络来预测 BTC 的价格。我会说它的训练很不错,但我不确定如何让它预测明天的价格。

我为我的训练模型尝试了 Keras 的方法 predict,以今天的价格作为参数,然后使用 tensorflow 的“tf.argmax”来选择输出数组中的最高确定性。现在我知道它指的是在计算机视觉案例中预测的类别,但我真的不知道在那种情况下这些概率指的是什么。

模型构建:


  model = Sequential()
  model.add(LSTM(neurons, return_sequences=True, input_shape=(inputs.shape[1], inputs.shape[2]), activation=activ_func))
  model.add(Dropout(dropout))
  model.add(LSTM(neurons, return_sequences=True, activation=activ_func))
  model.add(Dropout(dropout))
  model.add(LSTM(neurons, activation=activ_func))
  model.add(Dropout(dropout))
  model.add(Dense(units=output_size))
  model.add(Activation(activ_func))
  model.compile(loss=loss, optimizer=optimizer, metrics=['mae'])
  model.summary()
  plot_keras_model(model, show_shapes=True, show_layer_names=False)

训练和预测:


prediction_data = get_today_price4prediction('bitcoin', tag="BTC")
X_prediction = create_inputs(prediction_data)
X_prediction = to_array(X_prediction)
btc_history = btc_model.fit(X_train, Y_train_btc, epochs=epochs, batch_size=batch_size, verbose=1, validation_data=(X_test, Y_test_btc), shuffle=False)
predictions = btc_model.predict(X_prediction, verbose=1, steps=None)
plot_results(btc_history, btc_model, Y_train_btc, coin='BTC')
predictions = tf.math.argmax(predictions)
print(predictions)

预期的输出是一个7D numpy 数组,其值从11e-7。但我不知道这些值指的是什么。有什么建议吗?

【问题讨论】:

    标签: python numpy tensorflow keras


    【解决方案1】:

    听起来您试图在不知道数据的情况下获得结果。永远不要这样做,你可能会得到无用的结果。

    我不知道你从哪里得到数据,但那个地方应该描述目标是什么。在这种情况下,由于多维输出,它可能是一个分类目标(例如,如果您使用分类交叉熵损失,但代码中也没有说明)。如果是这种情况并且您期望的输出是一个实数,那么类别可能是这个数字的范围,输出数组中的每个值都是这个数字属于这些范围中的每一个的概率。

    【讨论】:

    • 有没有办法知道这些范围?因为当我在训练和测试期间用 BTC 的实际价格绘制输出时,我得到了一个不错的近似值,但如图所示。还是我应该尝试将明天的预测绘制成图表,然后使用特定的库将图表的最后数据读取为实数?
    • 这都是猜测,如果是这种情况,您应该检查数据集的来源以及范围是多少。
    猜你喜欢
    • 2020-08-26
    • 2020-06-19
    • 1970-01-01
    • 2019-03-17
    • 2020-05-15
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    • 1970-01-01
    相关资源
    最近更新 更多