python画二分类混淆矩阵(confusion_matrix)代码

二分类任务,在最后的实验部分需要画混淆矩阵,来说明实验的结果。


import matplotlib.pyplot as plt


guess = ["normal","cancer"]
fact = [ "normal","cancer"]
classes = list(set(fact))
classes.sort(reverse=True)
r1=[[367,16],[33,384]]

plt.figure(figsize=(12,10))       #设置plt窗口的大小
confusion =r1
print("confusion",confusion)
plt.imshow(confusion, cmap=plt.cm.Blues)
indices = range(len(confusion))
indices2 = range(3)
plt.xticks(indices, classes,rotation=40,fontsize=18)
plt.yticks([0.00,1.00], classes,fontsize=18)
plt.ylim(1.5 , -0.5)   #设置y的纵坐标的上下限

plt.title("Confusion matrix",fontdict={'weight':'normal','size': 18})
#设置color bar的标签大小
cb=plt.colorbar()
cb.ax.tick_params(labelsize=18)
plt.xlabel('Predict label',fontsize=18)
plt.ylabel('True label',fontsize=18)

print("len(confusion)",len(confusion))
for first_index in range(len(confusion)):
    for second_index in range(len(confusion[first_index])):

        if confusion[first_index][second_index]>200:
            color="w"
        else:
            color="black"
        plt.text(first_index, second_index, confusion[first_index][second_index],fontsize=18, color = color,verticalalignment='center',horizontalalignment='center',)
plt.show()

显示效果如下:

python画二分类混淆矩阵(confusion_matrix)代码