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

使用ConfusionMatrixDisplay时遇TypeError:__init__仅接受2个位置参数却传入4个

解决ConfusionMatrixDisplay的TypeError错误

错误原因

ConfusionMatrixDisplay的构造函数仅接受2个位置参数(self和confusion_matrix),display_labels需要以关键字参数传递。你可能沿用了旧方法confusion_matrix_plot的调用习惯,直接传入3个以上位置参数,触发了该错误。

正确实现方式

方式1:先计算混淆矩阵,再初始化Display

from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay

# 计算混淆矩阵
cm = confusion_matrix(y_true, y_pred)
# 用关键字参数指定分类标签
disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=class_names)
# 绘制混淆矩阵
disp.plot()

方式2:直接用from_predictions类方法(推荐,sklearn 1.0+支持)

无需手动计算混淆矩阵,直接传入真实标签和预测结果:

from sklearn.metrics import ConfusionMatrixDisplay

disp = ConfusionMatrixDisplay.from_predictions(y_true, y_pred, display_labels=class_names)
disp.plot()

方式3:从训练好的模型直接生成(适用于测试集)

基于模型和测试数据直接生成混淆矩阵:

from sklearn.metrics import ConfusionMatrixDisplay

disp = ConfusionMatrixDisplay.from_estimator(trained_model, X_test, y_test, display_labels=class_names)
disp.plot()

内容的提问来源于stack exchange,提问作者Ridwan Satrio Hadikusuma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 08:07:17