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

Sklearn管道训练报错:输入变量样本数不一致[15,5]

问题解决:训练集与标签样本数不匹配报错

错误原因

你在调用pipe.fit()时传错了标签参数:用了测试集标签Y_test(5个样本),但训练特征X_train是15个样本(默认train_test_split按75%/25%拆分20条数据),两者样本数不一致,直接触发了报错。

修正步骤

  1. 修正训练标签参数:训练模型必须传入训练集对应的标签Y_train,而非测试集标签Y_test
  2. 统一变量大小写:代码里X和x混用,建议保持命名一致性(比如统一用大写X指代特征集)

修正后的完整代码

from sklearn.model_selection import train_test_split
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC

# 统一变量命名大小写
X = x
y = y

X_train, X_test, Y_train, Y_test = train_test_split(X, y, random_state=0)

pipe = Pipeline([('scaler', StandardScaler()), ('svc', SVC(kernel='rbf', C=10))])

# 训练时传入训练集特征和对应标签
pipe.fit(X_train, Y_train)

# 用测试集评估模型效果
test_score = pipe.score(X_test, Y_test)
print(f"模型测试集得分:{test_score}")

额外说明

  • train_test_split默认按75%/25%比例拆分数据集,20条数据拆分后即15条训练样本、5条测试样本,这也是报错中[15, 5]的来源
  • Sklearn管道会自动在训练集上拟合标准化器,再用拟合后的规则转换训练集和测试集,无需手动单独处理,能避免数据泄露问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 19:20:59