Sklearn:ValueError:找到样本数量不一致的输入变量:[500,1]

时间:2019-01-11 12:15:40

标签: pandas machine-learning scikit-learn

我正在使用python的sklearn库解决机器学习问题

我正在使用pandas数据框,我想使用本地数据训练线性回归模型并预测新值。这是我的代码示例。

customers= pd.read_csv('Ecommerce Customers')
X= customers[['Avg. Session Length', 'Time on App','Time on Website', 'Length of Membership']]
y=['Yearly Amount Spent']

当我尝试在以下代码中运行此代码

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=101)

它给我一个错误

Found input variables with inconsistent numbers of samples: [500, 1]

在我的数据集中有500行和8列 sklearn verion是

import sklearn
format(sklearn.__version__)
'0.20.1'

请帮助我。 提前谢谢

1 个答案:

答案 0 :(得分:4)

仔细查看您的代码,您不会像您打算那样将y当作数据帧customers;只要拥有

y=['Yearly Amount Spent']

y只是一个1元素列表:

y
# ['Yearly Amount Spent']

因此scikit-learn有理由抱怨标签y的长度仅为1。

将其更改为

y=customers['Yearly Amount Spent']