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

CNN文本分类模型混淆矩阵报错:无法处理二元与连续目标混合

解决confusion_matrix报错:ValueError: Classification metrics can't handle a mix of binary and continuous targets

问题根源

报错有两个核心原因:

  • 模型预测输出是连续值(比如概率值),但confusion_matrix要求输入必须是离散的类别标签(比如二分类的0/1)
  • 真实标签y_test是一维数组(shape=(40,)),而预测结果predict是二维数组(shape=(40,1)),维度不匹配

解决步骤

1. 转换预测结果为类别标签 + 统一维度

根据任务类型处理:

  • 二分类任务:以0.5为阈值,将概率转换为0/1标签,同时把二维数组压平成一维:
# 先把二维预测数组转为一维
predict = predict.flatten()
# 按阈值生成类别标签
predict_labels = (predict > 0.5).astype(int)
  • 多分类任务:取每个样本概率最大的类别索引,自动转为一维标签:
# 取概率最大的类别,输出为一维数组(40,)
predict_labels = predict.argmax(axis=1)

2. 重新计算混淆矩阵

用转换后的标签和y_test计算:

from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, predict_labels)

验证维度

转换后predict_labels.shape应该和y_test.shape一致,都是(40,),此时就能正常生成混淆矩阵了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 10:35:17