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

调用scaler.transform时出现特征数不匹配的ValueError问题求助

问题原因与解决方法

错误原因

你用MinMaxScaler拟合的是包含4个特征(y、h、o、l)的数据集,scaler会记住这4个特征的缩放规则。但后续代码里你把model_inputs通过reshape(-1, 1)改成了仅1个特征的数组,和scaler预期的4特征输入不匹配,所以触发了ValueError。

解决方案

情况1:需要对4个特征统一缩放(和训练scaler时的逻辑一致)

直接删除model_inputs = model_inputs.reshape(-1, 1)这一行即可,因为切片后的model_inputs本身就保留了4列的结构,符合scaler的输入要求:

total_dataset = df.values
model_inputs = total_dataset[len(total_dataset) - test_data - prediction_days:]
print(model_inputs) 
# 移除多余的reshape操作
model_inputs = scaler.transform(model_inputs)

情况2:仅需要对单个特征(比如y列)做缩放

如果你的目标是只处理其中某一列数据,那需要在训练scaler时就只针对该列拟合,后续也只传入对应列的数据:

# 仅针对y列训练scaler
scaler = MinMaxScaler()
scaled_data = scaler.fit_transform(df[['y']])

# 后续提取y列数据并处理
total_dataset = df.values
# 提取第0列(即y列)并调整形状
model_inputs = total_dataset[len(total_dataset) - test_data - prediction_days:, 0].reshape(-1, 1)
model_inputs = scaler.transform(model_inputs)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 08:01:04