如何反转 Sklearn `plot_confusion_matrix` 函数中的混淆矩阵? [关闭]

Posted

技术标签:

【中文标题】如何反转 Sklearn `plot_confusion_matrix` 函数中的混淆矩阵? [关闭]【英文标题】:How to invert the confusion matrix in Sklearn `plot_confusion_matrix` function? [closed] 【发布时间】:2021-08-17 06:58:22 【问题描述】:

使用sklearn.metrics.plot_confusion_matrix 函数时,它会绘制一个混淆矩阵,其中实际值作为行,预测值作为列。但是,我看到的所有其他来源都将矩阵设置为实际值作为列并预测为行。坦率地说,这种方法似乎更好,而 Sklearn 的方法确实令人困惑

如果绘图以这种格式显示矩阵,那就太好了。我将如何实现这一目标?

这个thread 接近回答,但它没有直接回答。

【问题讨论】:

这能回答你的问题吗? Why does my sklearn.metrics confusion_matrix output look transposed? 很接近,但是在写完问题后,我自己找到了答案并发布了它。您提到的线程大多重复我所说的,第二个答案是接近的,但没有直接显示如何绘制倒置矩阵 【参考方案1】:

似乎 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

【讨论】:

以上是关于如何反转 Sklearn `plot_confusion_matrix` 函数中的混淆矩阵? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

MinMax Scaler 和 TensorFlow

如何导入sklearn?

如何正确安装 sklearn 模块?

如何获得 PLS 回归的截距(sklearn)

如何使用 sklearn 找到标准化残差?

如何使用networkx图作为sklearn的输入