Рассчитать точность из Keras model.predict_generator - PullRequest
0 голосов
/ 15 марта 2019

У меня есть модель Keras, и я хочу оценить ее, используя мои тестовые данные.Когда я использую keras model.evaluate_generator, я получаю убытки и получаемые от него суммы, и я могу напечатать процентную точность, например:

loss, acc = model.evaluate_generator(test_gen, steps=evaluation_steps)
print("\n%s: %.2f%%" % (model.metrics_names[1], acc * 100))

В результате получается что-то вроде 92%.
Поскольку я хотел создатьМатрица путаницы (также посмотрите, сколько у меня ложных срабатываний и ложных отрицаний) Я изменил свой код на:

predictions = model.predict_generator(test_gen, steps=evaluation_steps)
y_pred = np.argmax(predictions, axis=1)
y_true = np.argmax(labels, axis=1)
confusion_matrix(y_true, y_pred)

Я получаю правильную матрицу путаницы с этим.Тем не менее, я все еще хочу, чтобы отображались 92%, могу ли я получить его от predictions?

1 Ответ

1 голос
/ 15 марта 2019

Точность может быть рассчитана простым способом из ваших y_pred и y_true; Вот пример с фиктивными данными для классификации 3 классов:

import numpy as np

y_true = np.array([2, 0, 2, 2, 0, 1])
y_pred = np.array([0, 0, 2, 2, 1, 2])

Простой визуальный осмотр здесь говорит нам, что наша точность должна быть 0,5 (50%); так:

l = len(y_true)
acc = sum([y_pred[i]==y_true[i] for i in range(l)])/l
acc
# 0.5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...