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

如何修复ValueError:分类指标无法处理多分类与连续多输出目标混合问题

解决CIFAR10混淆矩阵报错:Classification metrics can't handle a mix of multiclass and continuous-multioutput targets

问题根源

你遇到的报错有两个核心原因:

  • 标签维度不匹配:cifar10.load_data()返回的测试集标签y_test是二维数组(形状为(10000, 1)),而confusion_matrix要求输入一维的类别索引。
  • 预测结果类型错误:model.predict(X_test)返回的是每个样本对应10个类别的概率值数组(形状为(10000, 10)),属于连续多输出类型,而confusion_matrix需要的是离散的类别索引值。

之前用train_test_split的代码能正常运行,大概率是因为你当时的标签已经被处理为一维,或者划分后默认输出一维标签,同时可能提前把预测概率转成了类别索引。

修复步骤

直接修改代码中生成y_pred和处理y_test的部分:

  1. 把二维的y_test转为一维:
    y_test = y_test.flatten()  # 或者 y_test = np.squeeze(y_test)
    
  2. 将预测概率转为类别索引(取概率最大的类别):
    y_pred_probs = model.predict(X_test)
    y_pred = np.argmax(y_pred_probs, axis=1)
    
  3. 再调用混淆矩阵:
    from sklearn.metrics import confusion_matrix
    cm = confusion_matrix(y_test, y_pred)
    

这样就能匹配confusion_matrix对输入类型的要求,顺利生成混淆矩阵。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 17:46:00