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

多分类任务生成混淆矩阵报错:多类别与连续多输出目标不兼容

问题解决:多分类任务混淆矩阵生成错误

错误原因

你的模型输出pred是12类的概率分布(形状(486, 12)),而真实标签y_val是单类别整数标签(形状(486,))。sklearn的分类指标要求输入的预测值和真实值必须是同类型的类别标签,不能混合概率分布和整数标签,因此触发ValueError。

解决步骤

将模型输出的概率分布转换为对应的类别标签(取每个样本概率最大的类别索引),再传入混淆矩阵函数:

修正后的代码

from sklearn.metrics import confusion_matrix
import numpy as np

# 获取模型预测的概率分布
pred_probs = model_BiLSTM.predict(X_val)
# 将概率转换为类别标签(取每个样本概率最大的类)
pred_labels = np.argmax(pred_probs, axis=1)
# 生成混淆矩阵
y_unique = np.unique(y_val)
cm = confusion_matrix(y_val, pred_labels, labels=y_unique)

关键说明

  • np.argmax(pred_probs, axis=1):对每个样本(axis=1表示沿类别维度)取概率最大值对应的索引,得到形状为(486,)的整数标签数组,和y_val格式完全匹配。
  • 你的模型使用SparseCategoricalCrossentropy损失,说明真实标签采用稀疏整数格式,这种转换方式完全符合模型的输出逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:35:19