我有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
获取它吗? 最佳答案
准确度可以从您的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
关于python - 从Keras模型计算准确性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55180953/