当我使用此代码绘制混淆矩阵时
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay
cm = confusion_matrix(y_test, rmc_pred, labels=rmc.classes_)
disp = ConfusionMatrixDisplay(confusion_matrix=cm,
display_labels=rmc.classes_)
disp.plot()
Run Code Online (Sandbox Code Playgroud)
我得到一个紫色、黄色、蓝色和绿色的矩阵,每行都有垂直和水平的线切割。我想要一个蓝色的混淆矩阵,看起来像 sklearn 的文档中一样。你们中的任何人都可以帮助我如何做到这一点吗?提前谢谢了!
如果我将 sklearns 函数plot_confusion_matrix 与 cmap 参数一起使用,我会收到一条错误消息,指出:固定定位器位置的数量 (9),通常来自对 set_ticks 的调用,与刻度标签的数量 (10) 不匹配。
python matplotlib confusion-matrix scikit-learn multilabel-classification
在混淆矩阵中,对角线表示预测标签与正确标签匹配的情况。所以对角线是好的,而所有其他单元都是坏的。为了向非专家阐明 CM 中什么是好的和什么是坏的,我想给对角线赋予与其他颜色不同的颜色。我想用Python 和 Seaborn来实现这一点。
基本上我试图实现这个问题在 R 中的作用(ggplot2 Heatmap 2 Different Color Schemes - Confusion Matrix: Matches in Different Color Scheme than Missclassifications)
import numpy as np
import seaborn as sns
cf_matrix = np.array([[50, 2, 38],
[7, 43, 32],
[9, 4, 76]])
sns.heatmap(cf_matrix, annot=True, cmap='Blues') # cmap='OrRd'
Run Code Online (Sandbox Code Playgroud)
这导致此图像:
我想用例如着色非对角线单元格cmap='OrRd'。所以我想会有 2 个颜色条,1 个蓝色用于对角线,1 个用于其他单元格。优选地,两个颜色条的值匹配(因此两者都是例如 0-70 而不是 0-70 和 0-40)。我将如何处理这个问题?
以下不是用代码制作的,而是用照片编辑软件制作的: