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

使用train_test_split拆分数据集报not enough values to unpack错误求助

报错触发原因
  • 核心逻辑:train_test_split 函数的返回值数量和输入的数据集数量直接对应:输入1个数据集返回2个拆分结果,输入2个数据集返回4个拆分结果,依次类推。
  • 代码问题:你仅传入了m_nyc这1个数据集,函数只会返回2个值,但你用4个变量接收返回结果,自然触发“期望4个值,仅得到2个”的解包报错。
  • 额外逻辑错误:你没有提前拆分特征(X)和预测目标(y),甚至把预测目标price_log也一起做了标准化,不符合常规建模逻辑,预测目标一般不需要标准化。
修复方案

你需要先拆分特征和预测目标,只对特征做标准化,再把两个数据集传入train_test_split,修改后的对应代码如下:

# 预处理完m_nyc后,先拆分特征和预测目标
X = m_nyc.drop(columns=['price_log'])
y = m_nyc['price_log']

# 仅对特征做标准化,不要标准化标签
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# 传入X、y两个数据集,函数会返回4个拆分结果,匹配左侧变量数量
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, train_size=0.7, test_size=0.3, random_state=100)

内容的提问来源于stack exchange,提问作者Gavin O'Doherty

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 20:30:01