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

sklearn多特征训练SVR报样本数不一致[192,48]错误如何解决

问题原因

报错的核心原因是你对多特征的训练输入做了错误的维度变换:

  • 你的X_train从48行训练集中取出了4个特征,原始维度是(48, 4),总元素数为48*4=192
  • 调用X_train.reshape(-1,1)后,所有元素被平铺成了形状为(192, 1)的数组,相当于强行生成了192个样本
  • 但你的y_train只有48个标注样本,二者样本数不一致直接触发报错

你之前单特征训练时reshape(-1,1)是正确操作,因为单特征取出后维度是(48,),需要转成sklearn要求的(样本数, 特征数)二维结构,但多特征场景下不需要这个操作。

修复方案

直接修改fit调用代码,删除多余的reshape操作即可:

# 修改前
svr_rbf.fit(X_train.reshape(-1,1),y_train.ravel()) 
# 修改后
svr_rbf.fit(X_train, y_train.ravel())
可选优化建议

当前你做的是时间序列预测,普通GridSearchCV默认使用的随机K折交叉验证会打乱时间顺序,存在未来数据泄露的问题,建议替换为时间序列专用的交叉验证方式:

from sklearn.model_selection import TimeSeriesSplit
# 初始化GridSearchCV时指定cv参数
svr_rbf = GridSearchCV(SVR(epsilon = 0.01), parameter, cv = TimeSeriesSplit(n_splits=10), scoring=scorer)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:57:03