相关疑难解决方法(0)

Sklearn 混淆矩阵:如何获得蓝色

当我使用此代码绘制混淆矩阵时

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

6
推荐指数
1
解决办法
4959
查看次数

Seaborn Confusion Matrix (heatmap) 2 配色方案(正确的对角线 vs 错误的休息)

背景

在混淆矩阵中,对角线表示预测标签与正确标签匹配的情况。所以对角线是好的,而所有其他单元都是坏的。为了向非专家阐明 CM 中什么是好的和什么是坏的,我想给对角线赋予与其他颜色不同的颜色。我想用Python 和 Seaborn来实现这一点。

基本上我试图实现这个问题在 R 中的作用(ggplot2 Heatmap 2 Different Color Schemes - Confusion Matrix: Matches in Different Color Scheme than Missclassifications

带有热图的普通 Seaborn 混淆矩阵

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)

这导致此图像:

Seaborn 混淆矩阵与颜色图“蓝调”

目标

我想用例如着色非对角线单元格cmap='OrRd'。所以我想会有 2 个颜色条,1 个蓝色用于对角线,1 个用于其他单元格。优选地,两个颜色条的值匹配(因此两者都是例如 0-70 而不是 0-70 和 0-40)。我将如何处理这个问题?

以下不是用代码制作的,而是用照片编辑软件制作的:

所需的混淆矩阵配色方案

python matplotlib heatmap confusion-matrix seaborn

2
推荐指数
1
解决办法
1574
查看次数