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

Ahk*_*med -1 python machine-learning pandas 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']
Run Code Online (Sandbox Code Playgroud)

当我尝试运行以下代码时

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)
Run Code Online (Sandbox Code Playgroud)

它给我一个错误

Found input variables with inconsistent numbers of samples: [500, 1]
Run Code Online (Sandbox Code Playgroud)

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

import sklearn
format(sklearn.__version__)
'0.20.1'
Run Code Online (Sandbox Code Playgroud)

请帮助我 。提前致谢

des*_*aut 5

仔细查看您的代码,您不必像想要做的那样成为数据框的ycustomers;如你所愿

y=['Yearly Amount Spent']
Run Code Online (Sandbox Code Playgroud)

y 只是一个1元素的列表:

y
# ['Yearly Amount Spent']
Run Code Online (Sandbox Code Playgroud)

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

更改为

y=customers['Yearly Amount Spent']
Run Code Online (Sandbox Code Playgroud)