【踩坑经验·代码模版】matplotlib绘制混淆矩阵模版及显示一半问题

使用matplotlib绘制混淆矩阵可能出现矩阵上下只显示一半的问题,出现这个问题的原因可能是代码编写先后顺序的问题,如下是经过调整,可以完整绘制的代码模版(二分类)

# 绘制混淆矩阵所需计算
from sklearn.metrics import confusion_matrix
import numpy as np
cnf_matrix = confusion_matrix(y_test, y_predict)
np.set_printoptions(precision=2)
# 绘制混淆矩阵模版
from matplotlib import pyplot as plt
import itertools
def plot_confusion_matrix(cm, classes,
                          title='Confusion matrix',
                          cmap=plt.cm.Blues):
    """
    绘制混淆矩阵
    """
    plt.title(title)
    tick_marks = np.arange(len(classes))
    plt.xticks(tick_marks, classes, rotation=0)
    plt.yticks(tick_marks, classes)
    
    plt.imshow(cm, interpolation='nearest', cmap=cmap)
    plt.colorbar()

    thresh = cm.max() / 2.
    for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):
        plt.text(j, i, cm[i, j],
                 horizontalalignment="center",
                 color="white" if cm[i, j] > thresh else "black")

    plt.tight_layout()
    plt.ylabel('True label')
    plt.xlabel('Predicted label')

class_names = [0,1]  # 这里填写两类名称
plt.figure()
plot_confusion_matrix(cnf_matrix
                      , classes=class_names
                      , title='Confusion matrix')
plt.show()
发布了22 篇原创文章 · 获赞 0 · 访问量 946

猜你喜欢

转载自blog.csdn.net/weixin_44680262/article/details/104435532