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

LSTM模型评估报continuous-multioutput is not supported错误

问题根因
  • 任务与评估指标不匹配:你搭建的是多输出回归类LSTM模型,目标是预测5维归一化后的连续特征值,编译时使用的MSE均方误差也是回归任务损失函数。而accuracy_score、precision、recall均为分类任务专属指标,仅支持离散标签输入,无法处理连续值输出,这也是报错continuous-multioutput is not supported的核心原因,即分类指标不支持多维度连续值格式的输入。
  • 代码存在索引错误:你设置LSTM层return_sequences=False时,模型预测输出的形状为(测试样本数, n_features),不存在第二维长度为1的维度,代码里写的LSTM_model.predict(xtest)[:,0,:]属于多余切片,会额外引发维度不匹配问题。
修复方案

根据你的实际任务场景二选一即可:

场景1:做时序生成/连续值预测任务(和“基于自有数据集生成新数据”需求一致)

直接替换为回归任务适用的评估指标即可,修正后的评估代码如下:

from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
import numpy as np

# 去掉错误的[:,0,:]切片,直接获取预测结果
y_pred = LSTM_model.predict(xtest, verbose=0)

# 计算回归指标
mae = mean_absolute_error(ytest, y_pred)
mse = mean_squared_error(ytest, y_pred)
rmse = np.sqrt(mse)
r2 = r2_score(ytest, y_pred)

print(f"平均绝对误差MAE: {mae:.4f}")
print(f"均方误差MSE: {mse:.4f}")
print(f"均方根误差RMSE: {rmse:.4f}")
print(f"决定系数R²: {r2:.4f}")

场景2:实际要做分类任务,只是模型结构写错了

需要按分类任务要求修改模型结构:

  • 输出层维度改为对应分类的类别数,二分类加sigmoid激活函数,多分类加softmax激活函数
  • 编译时将损失函数替换为对应分类损失:二分类用binary_crossentropy,多分类根据标签格式选择categorical_crossentropy或sparse_categorical_crossentropy
  • 模型预测后,将输出的概率值转换为离散类别标签(多分类取概率最大的类别索引,二分类按0.5阈值判断0/1),再调用accuracy_score等分类指标计算即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 16:18:20