我已经使用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')
在这里你可以看到我的混淆矩阵:
我得到了我应该得到的混淆矩阵。唯一的问题是没有显示的标签名称。我在互联网上搜索了很长一段时间,没有运气。是否有任何参数可以附加标签或如何做到这一点?
3条答案
按热度按时间xtfmy6hx1#
当您分解类别时,您应该保留水平,因此您可以将其与
pd.crosstab
而不是confusion_matrix
结合使用来绘制。以iris为例:在这一部分,你得到了[0,..1,..2]中的标签y和水平,作为0,1,2对应的原始标签:
所以我们适合并做你所拥有的:
和一个混淆矩阵0,1,2:
我们回头使用水平:
rlcwz9us2#
标签按字母顺序排序。因此,使用numpy DISTINCT ture_label,您将获得按字母顺序排序的ndarray
ddarikpa3#