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

Keras二分类模型生成混淆矩阵报ValueError错误如何解决

问题解决

报错原因

Keras二分类模型使用sigmoid作为输出层激活函数时,predict接口返回的是0~1区间的连续概率值,而scikit-learn的confusion_matrix、classification_report等分类指标计算工具要求输入的预测结果必须为离散的类别标签(0/1),两类数据格式不匹配直接触发该报错。
此外你的原有代码存在两处疏漏:

  • 未调用model.predict(X_test)给y_pred赋值
  • 仅写了y_pred.round没有调用该方法(正确写法是y_pred.round())

修复步骤

步骤1:获取预测结果并转换为类别标签

在调用分类指标前新增以下代码:

# 获得测试集预测概率
y_pred = model.predict(X_test)
# 将概率转换为0/1标签,默认采用0.5作为分类阈值
y_pred_label = y_pred.round().astype(int).squeeze()
# 将y_test也降为一维数组,避免形状不匹配
y_test_label = y_test.squeeze()

如果需要自定义分类阈值(比如调整正负样本的判类偏好),可替换阈值转换逻辑,示例如下(阈值设为0.3):

y_pred_label = (y_pred >= 0.3).astype(int).squeeze()

步骤2:调用指标函数生成结果

print(classification_report(y_test_label, y_pred_label))
print(confusion_matrix(y_test_label, y_pred_label))

额外提示:你的代码中导入了PyTorch的Dataset、DataLoader相关组件,但全程使用Keras接口训练模型,这部分冗余代码可直接删除,不影响运行效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:54:05