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

调用sklearn的confusion_matrix出现未知与多分类目标混合报错如何解决

报错原因

该报错由y_test与ypred的类型不匹配触发:虽然两者的实际取值都是0、1、2、3四类整数,但y_test的dtype为object,scikit-learn的分类指标校验逻辑会将object类型的分类值判定为未知类型,和数值类的多分类目标ypred识别为类型冲突,就算取值合法也会抛出报错。

可直接落地的解决方法
  • 方案一:转换y_test的类型为整数型,和ypred对齐
    执行代码前先做类型转换:
y_test = y_test.astype(int)
result = confusion_matrix(y_test, ypred)
  • 方案二:显式指定分类标签,跳过自动类型推断
    如果不想修改原始y_test的类型,可以给混淆矩阵函数传入labels参数手动指定分类范围:
result = confusion_matrix(y_test, ypred, labels=[0,1,2,3])
校验确认(可选)

修改前可以执行以下代码确认取值无异常,避免隐式转换导致其他问题:

# 确认y_test的所有取值都符合预期
print(y_test.unique())
# 确认ypred的所有取值都在分类范围内
print(set(ypred))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 13:39:03