2022年 11月 10日

利用python绘制混淆矩阵

利用python绘制混淆矩阵,直接附代码。

from sklearn.metrics import confusion_matrix
import matplotlib.pyplot as plt

y_pred = [] # ['2','2','3','1','4'] # 类似的格式
y_true = [] # ['0','1','2','3','4'] # 类似的格式
# 对上面进行赋值

C = confusion_matrix(y_true, y_pred, labels=['0','1','2','3','4']) # 可将'1'等替换成自己的类别,如'cat'。

plt.matshow(C, cmap=plt.cm.Reds) # 根据最下面的图按自己需求更改颜色
# plt.colorbar()

for i in range(len(C)):
    for j in range(len(C)):
        plt.annotate(C[j, i], xy=(i, j), horizontalalignment='center', verticalalignment='center')

# plt.tick_params(labelsize=15) # 设置左边和上面的label类别如0,1,2,3,4的字体大小。

plt.ylabel('True label')
plt.xlabel('Predicted label')
# plt.ylabel('True label', fontdict={'family': 'Times New Roman', 'size': 20}) # 设置字体大小。
# plt.xlabel('Predicted label', fontdict={'family': 'Times New Roman', 'size': 20})
# plt.xticks(range(0,5), labels=['a','b','c','d','e']) # 将x轴或y轴坐标,刻度 替换为文字/字符
# plt.yticks(range(0,5), labels=['a','b','c','d','e'])
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

简单理解混淆矩阵的元素含义,例如下面第一行第二个的“3”表示实际标签为类别0的预测成类别1的有3个样本。

附效果图:
请添加图片描述
请添加图片描述
请添加图片描述
如果需要切换不同的颜色,如:
在这里插入图片描述