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

逻辑回归绘制混淆矩阵时plot_confusion_matrix缺X、y_true参数如何解决

问题根源

你先后导入了两个同名的plot_confusion_matrix工具,后导入的sklearn.metrics.plot_confusion_matrix覆盖了先导入的mlxtend.plotting.plot_confusion_matrix:

  • mlxtend版本的plot_confusion_matrix支持直接传入预计算好的混淆矩阵作为入参
  • sklearn版本的plot_confusion_matrix需要传入「训练好的模型、测试集特征、测试集真实标签」三个入参,自动计算混淆矩阵再绘制,不支持直接传入混淆矩阵,所以触发参数缺失报错

解决方法

方案1:保留你原有的逻辑,使用mlxtend版本的绘图工具

删掉sklearn版本的同名导入即可,修改导入部分代码:

from sklearn.metrics import confusion_matrix
from mlxtend.plotting import plot_confusion_matrix
# 移除下面这行冲突导入
# from sklearn.metrics import plot_confusion_matrix

修改后原有plot_confusion_matrix(cm)调用可正常运行。

方案2:适配sklearn版本的绘图工具,无需预计算混淆矩阵

无需提前调用confusion_matrix计算cm,直接传入对应参数即可:

plt.rcParams.update({'font.size': 16})
plt.figure()
# 依次传入训练好的逻辑回归模型、测试集特征、测试集真实标签
plot_confusion_matrix(reg, x_test, y_test)
plt.title("Logistic Regression Model - Confusion Matrix")
plt.xticks(range(2), ["Existing Customer","Attrited Customer"], fontsize=16)
plt.yticks(range(2), ["Existing Customer","Attrited Customer"], fontsize=16)
plt.show()

补充说明

如果你的scikit-learn版本≥1.0,sklearn.metrics.plot_confusion_matrix已被弃用,可使用官方推荐的ConfusionMatrixDisplay实现相同需求:

from sklearn.metrics import ConfusionMatrixDisplay, confusion_matrix

cm = confusion_matrix(y_test, log_reg_pred)
disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=["Existing Customer","Attrited Customer"])
disp.plot()
plt.title("Logistic Regression Model - Confusion Matrix")
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 14:27:03