无法可视化绘制的混淆矩阵
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()
将有助于使可视化更清晰。
我是机器学习新手,正在学习基础知识。 我正在处理 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()
将有助于使可视化更清晰。