python - 如何反转 Sklearn `plot_confusion_matrix` 函数中的混淆矩阵?
问题描述
使用该sklearn.metrics.plot_confusion_matrix
函数时,它会绘制一个混淆矩阵,其中实际值作为行,预测值作为列。但是,我见过的所有其他来源都将矩阵设置为实际值作为列并预测为行。坦率地说,这种方法似乎更好,而 Sklearn 的方法确实令人困惑。
如果该图以该格式显示矩阵,那就太好了。我将如何实现这一目标?
该线程接近答案,但它不直接这样做。
解决方案
似乎 Sklearn 提供了另一个函数来显示混淆矩阵。它不采用估计器和验证集,而是直接接受矩阵并绘制它:
import numpy as np
from sklearn.metrics import ConfusionMatrixDisplay
from sklearn.metrics import confusion_matrix
# Create the CM
cm = confusion_matrix(y_true, y_pred)
# Flip it using Numpy and feed it to the display function
cmp = ConfusionMatrixDisplay(cm, display_labels=['label_1', 'label_2'])
plt.xlabel('Actual')
plt.ylabel('Predicted')
cmp.plot();
它还具有display_labels
在绘图之前接受自定义类标签的参数。当我们为函数提供一个倒置矩阵时,添加自定义轴标签很重要。这是该函数的文档:
https://scikit-learn.org/stable/modules/generated/sklearn.metrics.ConfusionMatrixDisplay.html
推荐阅读
- google-apps-script - 谷歌表格到谷歌日历应用脚本帮助/审查
- mysql - 如何从 user 和 usermeta 表中选择最后一个用户信息?
- angular - 在 app.component.ts 中的 init 上运行函数
- java - 从tomcat java运行Webdriver
- java - TOTP / HOTP / HmacSHA256 与 Java 中的无符号字节密钥
- mysql - Hack : 将数据从 pi3 发送到服务器云
- angular - 在 Angular 上将样式作为模块导入
- javascript - 如果日期更多是页面加载时定义的日期,如何添加类
- android - 无法在最新的 android studio 中解决依赖问题。为什么以及最新的android studio中的问题是什么
- api - 在 softlayer 上配置网络网关时无法过滤具有服务器的数据中心