实现每一类分割结果的精度求解(利用混淆矩阵)

混淆矩阵的示意图如下:

实现每一类分割结果的精度求解(利用混淆矩阵)_第1张图片

import numpy as np
cm=np.array([[4,0,0,0],
            [0,1,0,0],
             [0, 0, 2, 0],
             [0, 1, 3, 0]])
plt.figure()
plt.grid(False)
plt.imshow(cm, cmap='jet')
plt.colorbar()
plt.show()

实现每一类分割结果的精度求解(利用混淆矩阵)_第2张图片

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)

实现每一类分割结果的精度求解(利用混淆矩阵)_第3张图片

实现每一类分割结果的精度求解(利用混淆矩阵)_第4张图片

你可能感兴趣的:(numpy,机器学习)