我有 predicted_y
和 real_y
。
有没有比以下方法更快的获取准确率的方式:
from keras import backend as Kaccuracy_array = K.eval(keras.metrics.categorical_accuracy(real_y, predicted_y))print(sum(accuracy_array)/len(accuracy_array))
回答:
正如我在评论中提到的,我建议您使用 scikit-learn
来达到您的目的。
示例 1:
from sklearn import metricsresults = metrics.accuracy_score(real_y, predicted_y)
您还可以获取包括 precision
、recall
、f1-scores
的分类报告。
示例 2:
from sklearn.metrics import classification_reporty_true = [0, 1, 2, 2, 2]y_pred = [0, 0, 2, 2, 1]target_names = ['class 0', 'class 1', 'class 2']print(classification_report(y_true, y_pred, target_names=target_names)) precision recall f1-score support class 0 0.50 1.00 0.67 1 class 1 0.00 0.00 0.00 1 class 2 1.00 0.67 0.80 3avg / total 0.70 0.60 0.61 5
最后,对于混淆矩阵,请使用以下方法:
示例 3:
from sklearn.metrics import confusion_matrixy_true = [0, 1, 2, 2, 2]y_pred = [0, 0, 2, 2, 1]confusion_matrix(y_true, y_pred)array([[1, 0, 0], [1, 0, 0], [0, 1, 2]])