【发布时间】:2020-04-30 14:51:46
【问题描述】:
我已经使用 seaborn 将我的数据绘制成一个混淆矩阵,但是我遇到了一个问题。问题是它只在两个轴上显示从 0 到 11 的数字,因为我有 12 个不同的标签。
我的代码如下:
cf_matrix = confusion_matrix(y_test, y_pred)
fig, ax = plt.subplots(figsize=(15,10))
sns.heatmap(cf_matrix, linewidths=1, annot=True, ax=ax, fmt='g')
在这里你可以看到我的混淆矩阵:
我得到了我应该得到的混淆矩阵。唯一的问题是未显示的标签名称。我在互联网上搜索了很长时间,但没有运气。是否有任何参数可以附加标签或如何做到这一点?
谁能帮帮我?
谢谢!
//拉斯穆斯
【问题讨论】:
-
你可以试试
sns.heatmap(....., xticklabels=['xlabel1', ...], yticklabels=['ylabel1', ...]) -
嗨,约翰,感谢您的回答!我已经尝试过了,没关系,但是没有任何自动化方法可以单独识别,例如0 是标签 1 等等?
-
如果数据来自 pandas 数据框,标签可能会更加自动化。请注意,Python 总是从 0 开始计数。要从 1 开始获取标签,您可以尝试 ``..., xticklabels=range(1, myArray.shape[1]+1))`
-
是的,数据来自一个数据框,但在将其绘制到混淆矩阵中之前,它已经通过了神经网络。我想最简单的方法就是使用 xticklabels 和 yticklabels 然后手动编写标签。但是,您知道找出哪个标签是哪个数字的简单方法吗?
-
这里可以看到准确率和召回率。标签在此处的顺序与混淆矩阵中的顺序相同吗?即混淆矩阵中的 0 是“新产品行动”? imgur.com/IvZKCb2
标签: python seaborn confusion-matrix