从Keras model.predict_generator计算精度

问题描述 投票:0回答:1

我有Keras模型,我想用我的测试数据来评估它。当我使用keras model.evaluate_generator时,我得到了损失和acc返回它,我可以打印百分比准确度,如:

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获得吗?

machine-learning keras classification
1个回答
1
投票

准确性可以从你的y_predy_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
© www.soinside.com 2019 - 2024. All rights reserved.