首页 > 解决方案 > 如何反转 Sklearn `plot_confusion_matrix` 函数中的混淆矩阵?

问题描述

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

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

线程接近答案,但它不直接这样做。

标签: pythonpandasmachine-learningscikit-learnclassification

解决方案


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


推荐阅读