混淆矩阵中的颜色编码和归一化值实际上指定了什么?

数据挖掘 机器学习 可视化 混淆矩阵
2022-02-03 13:06:28

我无法从以下混淆矩阵中推断出有关该模型的任何信息。实际指定的颜色编码是什么?

例如,当预测标签为 1 且真实标签为 1 时,矩阵中该点的值为0.20这是否意味着它的准确性?这是否意味着当标签实际上是 1 时,模型只能预测 1 的 20% 时间?

在此处输入图像描述

PS:SO URL以获得更清晰的图像

2个回答

每一个都显示了当真标签为(纵轴)时element_ab预测的概率(横轴)例如,当真标签为0时,会以0.14的概率预测为标签2label ab

颜色强度表示一行中每个元素的概率

这是我用来在混淆矩阵上创建颜色的代码。

#Create Confusion matrix

def plot_confusion_matrix(cm, classes,
                          normalize=False,
                          title='Confusion matrix',
                          cmap=plt.cm.Purples):
    plt.imshow(cm, interpolation='nearest', cmap=cmap)
    plt.title(title)
    plt.colorbar()
    tick_marks = np.arange(len(classes))
    plt.xticks(tick_marks, classes, rotation=45)
    plt.yticks(tick_marks, classes)

    if normalize:
        cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]
        print("Normalized confusion matrix")
    else:
        print('Confusion matrix, without normalization')

    thresh = cm.max() / 3.
    for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):
        plt.text(j, i, cm[i, j],
                 horizontalalignment="center",
                 color="white" if cm[i, j] > thresh else "black")

    plt.tight_layout()
    plt.ylabel('True label')
    plt.xlabel('Predicted label')