背景
在混淆矩阵中,对角线表示预测标签与正确标签匹配的情况。因此,对角线是好的,而所有其他单元格都是不好的。为了让非专业人士更加清楚混淆矩阵中的好与坏,我想给对角线和其他部分使用不同的颜色进行区分。我想使用 Python 和 Seaborn 来实现这一点。
基本上,我正在尝试实现 R 中这个问题所做的事情 (ggplot2 Heatmap 2 Different Color Schemes - Confusion Matrix: Matches in Different Color Scheme than Missclassifications)。
使用 heatmap 的普通 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'
导致这个图片的结果是:
目标
我想使用例如cmap='OrRd'
来着色非对角线单元格。因此,我想会有2个色条,一个蓝色代表对角线,一个代表其他单元格。最好两个色条的值相匹配(所以都是0-70而不是0-70和0-40)。
我该如何实现这个目标?
以下图片是使用照片编辑软件制作的,并非代码生成:
cax2.set_title("X | O ", loc='right')
。还可以添加一些额外的轴标签和标题:ax.set(xlabel='预测标签', ylabel='真实标签', title="混淆矩阵")
。 - NumesSanguis