使用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()