Как получить прогнозируемые значения по сравнению с фактическими значениями из обученной модели керас - PullRequest
0 голосов
/ 23 апреля 2019

Я обучил модель с использованием кера на основе цен на криптовалюту.Он хорошо тренируется и имеет точность около 60%.Тем не менее, мне трудно понять, как использовать результаты model.predict (), чтобы сравнить / построить их с фактическими значениями.

Моя модель выглядит следующим образом:

model = Sequential()
model.add(LSTM(128, input_shape=(train_x.shape[1:]), return_sequences=True))
model.add(Dropout(0.2))
model.add(BatchNormalization())

model.add(LSTM(128, input_shape=(train_x.shape[1:]), return_sequences=True))
model.add(Dropout(0.2))
model.add(BatchNormalization())

model.add(LSTM(128, input_shape=(train_x.shape[1:])))
model.add(Dropout(0.2))
model.add(BatchNormalization())

model.add(Dense(32, activation="tanh")) #could use relu
model.add(Dropout(0.2))

model.add(Dense(2, activation="softmax"))

opt = tf.keras.optimizers.Adam(lr=0.001, decay=1e-6)
model.compile(loss='sparse_categorical_crossentropy', optimizer=opt, metrics=['accuracy'])

history = model.fit(
    train_x, train_y, 
    batch_size=BATCH_SIZE, 
    epochs=EPOCHS, 
    validation_data=(validation_x, validation_y))

# ## Plot predictions
targets = validation_data['close'] #get all the actual prices from the validation data
preds = model.predict(validation_x)

train_x - это первые 90% данных, а validation_x - последние 10% или около того.

цели возвращаются в виде серии панд, которая выглядит следующим образом:

time
1552021200    0.312
1552024800    0.312
1552028400    0.310
1552032000    0.311
1552035600    0.311
1552039200    0.311
1552042800    0.310
1552046400    0.309
1552050000    0.310
1552053600    0.312

, но preds возвращает ndarray, который выглядит следующим образом:

[[0.41261673 0.5873832 ]
 [0.34726056 0.65273947]
 [0.33154735 0.6684527 ]
 ...
 [0.4990835  0.50091654]
 [0.27250433 0.7274957 ]
 [0.3717066  0.6282934 ]]

Я обнаружил, чтоэтот ndarray - просто вероятности каждого класса, однако я уверен, что есть какой-то способ использовать эти вероятности для прогнозирования значений в тех же индексных точках, что и цели.Хотя я не уверен, как это сделать, и не могу понять, как это сделать.

...