Matplotlib 混淆矩阵输出缺少多标签分类的某些标签
我很难创建多标签分类的分类矩阵来评估MLPClassizer模型的性能。混淆矩阵输出应该是10x10,但我得到的是8x8,因为它没有显示9和10的标签值。true和predicted标签的类标签从1到10(无序)。代码的实现如下所示:Matplotlib 混淆矩阵输出缺少多标签分类的某些标签,matplotlib,confusion-matrix,multilabel-classification,Matplotlib,Confusion Matrix,Multilabel Classification,我很难创建多标签分类的分类矩阵来评估MLPClassizer模型的性能。混淆矩阵输出应该是10x10,但我得到的是8x8,因为它没有显示9和10的标签值。true和predicted标签的类标签从1到10(无序)。代码的实现如下所示: import matplotlib.pyplot as plt import seaborn as sns side_bar = [1,2,3,4,5,6,7,8,9,10] f, ax = plt.subplots(figsize
import matplotlib.pyplot as plt
import seaborn as sns
side_bar = [1,2,3,4,5,6,7,8,9,10]
f, ax = plt.subplots(figsize=(12,12))
sns.heatmap(cm, annot=True, linewidth=.5, linecolor="r", fmt=".0f", ax = ax)
ax.set_xticklabels(side_bar)
ax.set_yticklabels(side_bar)
plt.xlabel('Predicted Label')
plt.ylabel('True Label')
plt.show()
编辑:构建的混淆矩阵的代码和输出如下:
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)
print(cm)
str(cm)
[[20 0 0 1 0 5 1 0]
[ 3 0 0 0 0 0 0 0]
[ 1 1 0 1 0 1 0 0]
[ 3 0 0 0 0 3 1 1]
[ 0 0 0 0 0 1 0 0]
[ 3 0 0 1 0 2 1 1]
[ 3 0 0 0 0 0 0 2]
[ 1 0 0 0 0 0 0 1]]
'[[20 0 0 1 0 5 1 0]\n [ 3 0 0 0 0 0 0 0]\n [ 1 1 0 1 0
1 0 0]\n [ 3 0 0 0 0 3 1 1]\n [ 0 0 0 0 0 1 0 0]\n [ 3 0
0 1 0 2 1 1]\n [ 3 0 0 0 0 0 0 2]\n [ 1 0 0 0 0 0 0
1]]'
有谁能为我提供一个解决方案来解决这个问题吗?如果您的阵列
cm
是8x8,将创建8x8热图。您可能需要添加一些虚拟数据来创建一个可复制的示例。正如我在前面的评论中所说,混淆矩阵数组cm应该是10x10,但cm输出显示为8x8。你可能想看一看混乱矩阵热图来了解情况。我如何添加虚拟数据?好吧,你的混淆矩阵数组显然不是10x10。你是怎么计算的?您可以添加一个虚拟的10x10混淆矩阵作为cm=np.random.rand(10,10)
,但它将显示一个10x10热图。你也可以发布并添加str(cm)
的输出,向人们展示你的矩阵是什么样子。我编辑了帖子并添加了构建的混淆矩阵的代码和输出。我检查了,你对包含8个不同值的y_pred和y_测试都是正确的。