【问题标题】:How to add text to scikit-learn's confusion matrix? [duplicate]如何在 scikit-learn 的混淆矩阵中添加文本? [复制]
【发布时间】:2021-12-20 00:17:45
【问题描述】:

我希望将文本添加到来自 scikit-learn 的混淆矩阵对象的每个单元格中。更具体地说,我希望将 True Positive 放在左上角的单元格中,将 False Positive 放在右上角的单元格中等等。有没有简单的方法可以做到这一点,或者我必须使用注释并指定坐标?

fig, (ax1, ax2) = plt.subplots(1, 2)
fig.tight_layout

cm_benign = metrics.ConfusionMatrixDisplay.from_predictions(
    y_true, y_pred, ax=ax1, labels=["benign", "malignant"], colorbar=False
)
ax1.set_title("Confusion Matrix (Benign as +)")
cm_malignant = metrics.ConfusionMatrixDisplay.from_predictions(
    y_true, y_pred, ax=ax2, labels=["malignant", "benign"], colorbar=False
)
ax2.set_title("Confusion Matrix (Malignant as +)")
fig.subplots_adjust(wspace=0.8)
plt.show();

【问题讨论】:

    标签: python matplotlib scikit-learn


    【解决方案1】:

    您可以使用 seaborn 将标签放在您的身材上。您也可以像现在一样使用display_labels 参数和labels,我不确定它是否能正常工作,因为标签列表不一样,即使是相同的混淆矩阵。

    import seaborn as sns
    from sklearn.metrics import confusion_matrix
    
    x_labels = ["False Positive", "False Negative"]
    y_labels = ["True Positive", "True Negative"]
    cm = confusion_matrix(x, y)
    heatmap = sns.heatmap(cm, annot=True, fmt='d', xticklabels=x_labels, yticklabels=y_labels)
    figure = heatmap.get_figure()
    # show or save figure
    plt.close(cm)
    

    【讨论】:

      猜你喜欢
      • 2016-05-12
      • 2018-05-22
      • 2014-06-11
      • 2020-07-16
      • 2020-05-30
      • 2019-12-17
      • 2017-03-03
      • 2020-03-28
      • 2018-10-10
      相关资源
      最近更新 更多