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

Keras多分类模型预测逆缩放引发形状广播错误问题求助

问题排查与解决方案

错误原因

你犯了一个概念性错误:StandardScaler 是用来预处理输入特征(也就是模型的X数据)的,它内部保存的均值、标准差数组是基于输入特征的维度(你的输入是9维,所以形状为(9,))。而模型输出的(1,6)数组是6个类别的softmax概率,和输入特征属于完全不同的数据范畴,根本不需要对它执行逆缩放操作——这就是触发形状不匹配报错的核心原因。

正确获取分类结果与概率的方法

1. 直接获取各类别概率

模型预测输出的(1,6)数组本身就是每个类别的概率值,你可以直接打印查看:

pred_probs = model.predict(test_sample)
print("各类别概率:", pred_probs)

2. 获取预测的类别标签

如果需要得到具体的分类结果(比如对应0-5的整数标签),可以用np.argmax()提取概率最大的索引:

import numpy as np
pred_class = np.argmax(pred_probs, axis=1)
print("预测类别:", pred_class)

如果你的原始标签是字符串形式(而非整数编码),可以提前建立类别映射字典,比如:

class_map = {0: "类别A", 1: "类别B", 2: "类别C", 3: "类别D", 4: "类别E", 5: "类别F"}
pred_class_name = class_map[pred_class[0]]
print("预测类别名称:", pred_class_name)

关键补充

输入特征的缩放仅针对模型的输入数据:训练前对X_train执行sc.fit_transform(),对X_test执行sc.transform()即可。模型的输出是分类概率,和输入特征的缩放逻辑毫无关系,不需要做任何逆处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 11:40:22