You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用ConfusionMatrixDisplay生成指定尺寸且标签正确的混淆矩阵图?

解决混淆矩阵图尺寸与标签不匹配的问题

你的问题出在调用ConfusionMatrixDisplay.from_predictions时未指定自定义坐标轴对象,导致该方法默认创建了一张新图(即标签正确但尺寸为默认值的图),后续调用cmp.plot(ax=ax)又在你指定尺寸的坐标轴上重复绘制,但未传递分类标签信息,因此出现标签错误的情况。

修正后的代码

import matplotlib.pyplot as plt
from sklearn import datasets, svm
from sklearn.metrics import ConfusionMatrixDisplay

# 导入数据
iris = datasets.load_iris()
X, y = iris.data, iris.target

# 训练分类器
classifier = svm.SVC(kernel="linear")
y_pred = classifier.fit(X, y).predict(X)

# 绘制混淆矩阵
fig, ax = plt.subplots(figsize=(8, 6))
# 直接在from_predictions中指定ax,复用已创建的自定义尺寸坐标轴
ConfusionMatrixDisplay.from_predictions(
    y, y_pred, 
    normalize="true", 
    values_format=".0%",
    ax=ax  # 关键:指定使用预先定义好尺寸的坐标轴
)
plt.show()

关键说明

  • 移除了单独创建cmp对象再调用plot的步骤,直接在from_predictions中传入ax=ax,让混淆矩阵绘制在你预先设置好8x6英寸尺寸的坐标轴上。
  • 这样既保留了自定义尺寸,又能正确显示分类标签,且只会生成一张符合要求的混淆矩阵图。

内容的提问来源于stack exchange,提问作者Manojit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 11:19:53