混淆矩阵的示意图如下:
from sklearn.metrics import confusion_matrix
_pred=np.array([[0,1,2],
[1,2,3],
[1,1,2]])
_gt = np.array([[0, 1, 1],
[2, 2, 3],
[1, 3, 2]])
flat_pred = _pred.flatten().astype('uint8')
print('flat_pred=',flat_pred)
flat_true = _gt.flatten().astype('uint8')
print('flat_true=',flat_true)
label_class = [x for x in range(4)]
# print(label_class)
confusion = confusion_matrix(flat_true, flat_pred, label_class)
print('confusion=',confusion)
list_diag = np.diag(confusion)
print('list_diag=',list_diag)
list_raw_sum = np.sum(confusion, axis=1)
print('list_raw_sum=',list_raw_sum)
each_acc = np.nan_to_num(list_diag.astype('Float32') / list_raw_sum.astype('Float32'))
print('each_acc=', each_acc)
ave_acc=np.mean(each_acc)
print('ave_acc=',ave_acc)