热图中转置混淆矩阵的原因

reason for transposed confusion matrix in heatmap

我绘制了一个热图,它将混淆矩阵作为输入数据。混淆矩阵的形状为:

 [[37  0  0  0  0  0  0  0  0  0]
 [ 0 42  0  0  0  1  0  0  0  0]
 [ 1  0 43  0  0  0  0  0  0  0]
 [ 0  0  0 44  0  0  0  0  1  0]
 [ 0  0  0  0 37  0  0  1  0  0]
 [ 0  0  0  0  0 47  0  0  0  1]
 [ 0  0  0  0  0  0 52  0  0  0]
 [ 0  0  0  0  1  0  0 47  0  0]
 [ 0  1  0  1  0  0  0  1 45  0]
 [ 0  0  0  0  0  2  0  0  0 45]]

绘制热图的代码是:

fig2=plt.figure()
fig2.add_subplot(111)
sns.heatmap(confm.T,annot=True,square=True,cbar=False,fmt="d")
plt.xlabel("true label")
plt.ylabel("predicted label")

产生:

如您所见,输入矩阵 "confm" 被转置 (confm.T)。这是什么原因?我必须这样做吗?

当我用你提供的代码绘制你的数据时,我得到了这个:

没有转置并且交换 x 和 y 标签时你得到:

fig2=plt.figure()
fig2.add_subplot(111)
sns.heatmap(confm,annot=True,square=True,cbar=False,fmt="d")
plt.xlabel("predicted label")
plt.ylabel("true label")

这导致相同的混淆矩阵。转置真正做的是交换哪个是预测,哪个是基本事实(真实标签)。您需要使用什么取决于数据的格式。

只有当你想切换沿着哪个轴放置哪些数据时才需要转置。我通常按​​原样使用混淆矩阵:y - 真实标签,x - 预测标签。仅当您喜欢时才需要转置矩阵和交换标签,反之亦然:y - 预测标签,x - 真实标签。