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

Pandas与scikit-learn:train_test_split划分后X、y维度异常问题

解决train_test_split返回维度不符的问题

嘿,这个问题我太熟悉了!你遇到的维度不匹配问题,根源是把train_test_split的返回值顺序搞反了。

问题出在哪?

train_test_split的标准返回顺序是固定的:

  1. 训练集特征 (train_X)
  2. 测试集特征 (test_X)
  3. 训练集目标变量 (train_y)
  4. 测试集目标变量 (test_y)

而你写的代码把train_y和test_X的位置弄反了:

train_X,train_y,test_X, test_y = train_test_split(X,Y,test_size=0.33,shuffle = True, random_state=45)

这就导致train_y实际上拿到的是测试集特征(形状(304,40)),test_X拿到的是训练集目标变量(形状(616,)),完全错位的维度自然会让训练模型时报错。

正确的写法

把变量顺序调整成符合返回值的顺序就行:

train_X, test_X, train_y, test_y = train_test_split(X, Y, test_size=0.33, shuffle=True, random_state=45)

验证是否正确

你可以打印各变量的形状确认维度是否匹配:

print(f"train_X shape: {train_X.shape}")  # 预期输出: (616, 40)
print(f"test_X shape: {test_X.shape}")    # 预期输出: (304, 40)
print(f"train_y shape: {train_y.shape}")  # 预期输出: (616,)
print(f"test_y shape: {test_y.shape}")    # 预期输出: (304,)

这样调整后,特征集和目标变量的维度就完全对应,训练模型就不会有问题啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:11:36