无法可视化绘制的混淆矩阵

Can't visualize plotted Confusion Matrix

我是机器学习新手,正在学习基础知识。 我正在处理 Dog-vision 数据集 (https://www.kaggle.com/c/dog-breed-identification),我正在尝试绘制一个混淆矩阵,但无法找到我做错的地方,需要帮助!

我的true_label看起来像这样

true_label[:10]
array([26, 96,  8, 15,  3, 10, 62, 82, 92, 16]

而predicted_label看起来像这样

predicted_l[:10]
array([26, 96,  8, 15,  3, 10, 62, 82, 92, 16]

它们几乎相同,但并非数组中的所有元素都相同。

然后我将它们转换成熊猫数据框,代码如下

import pandas as pd
from sklearn.metrics import confusion_matrix
classes=[]
for i in range(0, 99):
  classes.append(i)

cf_matrix = confusion_matrix(true_l, predicted_l)
cf_matrix_df = pd.DataFrame(cf_matrix, index=classes,columns=classes)
cf_matrix_df

然后输出是这样的-

然后我尝试用这个数据框绘制混淆矩阵 但它没有以正确的方式绘制。这是我的混淆矩阵的代码和输出:-

import seaborn as sns
figure = plt.figure(figsize=(8, 8))
sns.heatmap(cf_matrix_df, annot=True,cmap=plt.cm.Blues)
plt.tight_layout()
plt.ylabel('True label')
plt.xlabel('Predicted label')
plt.show()

输出

如果您需要更多信息,请在此处查看我的笔记本。 https://colab.research.google.com/drive/1SoXJJNTnGx39uZHizAut-HuMtKhQQolk?usp=sharing

您可以通过删除 annot=True 参数来改善绘图,因为它会在每个单元格中写入数据值。只需删除此参数以获得更好的可视化效果:

sns.heatmap(cf_matrix_df, cmap=plt.cm.Blues)

更新:增加图形大小figsize()将有助于使可视化更清晰。