from sklearn.metrics import confusion_matrix
result = confusion_matrix(test_labels, predicted_labels)
plot_confusion_matrix(result)
def plot_confusion_matrix(cm, title='Confusion matrix', cmap=plt.cm.Blues):
"""
Plots confusion matrix,
cm - confusion matrix(np.array()数组)
"""
plt.figure(1, figsize=(15, 12), dpi=160)
plt.imshow(cm, interpolation='nearest', cmap=cmap)
plt.title(title)
plt.colorbar()
plt.tight_layout()
plt.ylabel('True label')
plt.xlabel('Predicted label')
plt.show()
Confusion matrix:
[[ 46 23 24 12 23]
[ 5 64 35 3 9]
[ 9 0 100 2 7]
[ 27 7 33 22 23]
[ 19 5 42 22 38]]
def plot_Confusion_matrix(metrix):
import matplotlib.pyplot as plt
import numpy as np
confusion = np.zeros((5, 5))
for i in range(len(metrix)):
for j in range(len(metrix[0])):
confusion[i][j] = round(metrix[i][j] / sum(metrix[i]), 2)
print(confusion)
plt.imshow(confusion, cmap=plt.cm.Blues, interpolation='nearest')
indices = np.array(range(len(confusion)))
label_name = ["school", "residence", "industrial", "commerce", "commonality"]
plt.xticks(indices, label_name, rotation=50)
plt.yticks(indices, label_name)
plt.colorbar()
plt.xlabel('Predicted label')
plt.ylabel('True label')
plt.title('Confusion_matrix')
plt.ylim(len(confusion) - 0.5, -0.5)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
for first_index in range(len(confusion)):
for second_index in range(len(confusion[first_index])):
plt.text(first_index, second_index,
confusion[first_index][second_index],
color="white" if first_index == second_index else"black",
fontsize=10, va='center', ha='center')
plt.savefig('./confusion_matrix.png', format='png')
plt.show()