Я построил нейронную сеть на основе LSTM
, чтобы предсказать цену BTC. Я бы сказал, что его тренировка приличная, но я не уверен, как заставить его предсказывать завтрашнюю цену, например.
Я попробовал метод Кераса predict
для моей обученной модели с сегодняшней ценой в качестве аргумента, а затем с tens.flow «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)
Ожидаемый результат - массив NumPy 7D
со значениями от 1
до 1e-7
. Но я не знаю, к чему относятся эти ценности. Любое предложение?