准确率可以在整体模型级别而不是类级别计算,而精度,召回可以在类级别计算。
要计算准确度,您可以使用以下函数
keras.metrics.accuracy(y_true, y_pred)
您可以将target_names 参数添加到您的classification_report,如下所示以了解标签。
target_names = ["Class {}".format(i) for i in range(num_classes)]
print(classification_report(Y_test, y_pred, target_names=target_names))
还有另一种方法可以打印标签并了解第一个和第二个索引代表什么。这是一个例子
import numpy as np
from sklearn.preprocessing import LabelBinarizer
from tensorflow.keras.utils import to_categorical
# define example
data = ['dog', 'dog', 'cat', 'dog', 'cat', 'cat', 'dog', 'cat', 'dog', 'dog']
values = np.array(data)
#Binary encode
lb = LabelBinarizer()
labels = lb.fit_transform(values)
labels = to_categorical(labels)
print("which position represents for cat and dog?:")
print("Data is:",data)
print(labels)
输出:
which position represents for cat and dog?:
Data is: ['dog', 'dog', 'cat', 'dog', 'cat', 'cat', 'dog', 'cat', 'dog', 'dog']
[[0. 1.]
[0. 1.]
[1. 0.]
[0. 1.]
[1. 0.]
[1. 0.]
[0. 1.]
[1. 0.]
[0. 1.]
[0. 1.]]
从你可以很容易理解的输出中,第一个索引是猫,第二个是狗。