请指导我的混淆矩阵的热图显示。我尝试了不同的图大小,但没有得到正确的显示。我的代码如下和屏幕截图
def show_confusion_matrix(test_labels,predictions):
confusion=sk_metrics.confusion_matrix(np.argmax(test_labels,axis=1),np.argmax(predictions,axis=1))
confusion_normalized=confusion.astype('float')/confusion.sum(axis=1)
#confusion_normalized=confusion_matrix(np.argmax(y_test,axis=1),np.argmax(predictions,axis=1))
axis_labels=list(uniquelabel) ## unique labels has 120 dog breed names
fig,ax=plt.subplots(figsize=(30,70))
ax=sns.heatmap(confusion_normalized,xticklabels=axis_labels,yticklabels=axis_labels,
linewidths=0.10,cmap='Blues',annot=True,fmt='.2f',square=True)
plt.title('Confusion_matrix')
plt.ylabel("True Label")
plt.xlabel("Predicted Label")
show_confusion_matrix(y_test,predictions)
我发现的第一个问题是字体大小
from seaborn import set
from seaborn import set_style
set(font_scale=1.8)
set_style("darkgrid")
或者您可以设置样式whitegrid
你有很多功能,因此我建议你用一个简单的方法来应用蒙版。
from numpy import zeros_like
from numpy import triu_indices_from
mask = zeros_like(confusion_normalized)
mask[triu_indices_from(mask)] = True
您需要使用confusion_normalized
,因为您想要绘制标准化的混淆矩阵。
from seaborn import axes_style
from matplotlib.pyplot import subplots
with axes_style("white"):
f, ax = subplots(figsize=(15, 15))
ax = heatmap(confusion_normalized,
annot=True,
mask=mask,
vmax=1,
vmin=0,
square=True,
cmap="YlGnBu",
linewidths=1.5,
annot_kws={"size": 18})
savefig('heatmap.png')
示例输出
问题内容: 我确定我忘记了一些非常简单的内容,但是我无法获得某些与Seaborn合作的计划。 如果我做: 然后,我通常使用matplotlib创建的任何图都将获得Seaborn样式(背景为灰色网格)。 但是,如果我尝试执行以下示例之一,例如: pairplot函数返回一个PairGrid对象,但该图未显示。 我有点困惑,因为matplotlib似乎可以正常运行,并且Seaborn样式已应用于其他m
我正在对实际数据和来自分类器的预测数据进行多标签分类。实际数据包括三类(c1、c2和c3),同样,预测数据也包括三类(c1、c2和c3)。数据如下 在多标签分类中,文档可能属于多个类别。在上述数据中,1表示文档属于特定类,0表示文档不属于特定类。 第一行Actual\u数据表示文档属于c1类和c2类,不属于c3类。类似地,第一行predicted\u数据表示文档属于类别c1、c2和c3。 最初我使
我有两个向量,实际值和预测值。两者都是因子类型,有8个级别。第八层实际观测值只有55个,预测值为0。然而,当我制作一个混乱矩阵时,8级观察值消失或以某种方式移动。实际总数的列不应该等于它们的实际计数吗? 我用了两种不同的方法来反复检查。我还尝试显式地使两个向量中的因子级别相同。到目前为止运气不好。
在混淆矩阵中,对角线表示预测标签与正确标签匹配的情况。所以对角线是好的,而所有其他单元格都是坏的。为了澄清非专家的CM中什么是好的,什么是坏的,我想给对角线一个不同于其他颜色的颜色。我想用Python实现这一点 基本上,我试图实现这个问题在R中的作用(ggplot2热图2不同的配色方案-混淆矩阵:与分类不同的配色方案中的匹配) 这将导致此图像: 我想用例如为非对角单元格着色。所以我想象会有2个色条
我试图弄清楚如何使用神经网络为多标签分类任务生成混淆矩阵。我之前设法使用函数“交集”计算准确性,因为对此我不关心任何排序。 然而,为了计算混淆矩阵,我确实关心预测/标签的索引顺序。由于标签的值始终相同(
我是jQuery的新手,我试图在不使用jQuery的切换函数的情况下创建一个show/hide切换按钮,但我不知道下面的代码有什么问题。 “隐藏”按钮可成功隐藏段落。隐藏部分起作用了。它添加了一个类“show”,删除了类“hide”,并更改了按钮的文本。我使用Dev工具来查看这个部分,这个部分正在工作,但是再次点击按钮就不工作了,即show部分。 null null