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

运行Scikit-learn线性回归遇ValueError:样本数为0的问题咨询

问题原因及解决办法

问题原因

Python切片语法里,X[:-20]表示取数组从开头到倒数第20个元素之前的部分。你的数据集总共只有20条记录,倒数第20个元素就是第一条数据的位置,所以这个切片最终会返回一个没有任何样本的空数组(shape=(0,1)),而线性回归模型拟合时至少需要1个样本,因此触发ValueError。

解决办法

1. 手动调整切片范围

根据你需要的测试集大小调整切片参数:

  • 比如想留2条数据做测试集,训练集就取前18条:X_train = X[:-2],y_train = y[:-2]
  • 按固定比例拆分(比如8:2),直接取对应数量的样本:X_train = X[:16],X_test = X[16:]

2. 使用Scikit-learn官方拆分工具(推荐)

用train_test_split函数可以自动按比例拆分,还能保证拆分的随机性和可复现性,示例代码:

from sklearn.model_selection import train_test_split

# 按8:2拆分训练集和测试集,random_state固定随机种子确保结果一致
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:50:28