我写了
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
dataset=pd.read_csv("Salary_Data.csv")
X= dataset.iloc[:,:-1].values
y= dataset.iloc[:,1].values
from sklearn.cross_validation import train_test_split
X_train,X_test,y_train,y_test= train_test_split(X, y, test_size=1/3,
random_state=0)
from sklearn.linear_model import LinearRegression
regressor=LinearRegression()
regressor.fit(X_train,y_train)
当我将第5行代码更改为 -
时X= dataset.iloc[:,0].values
(因为我的数据集只有两列年龄和薪水) 它生成并出错
ValueError: Found input variables with inconsistent numbers of samples: [1, 20]
答案 0 :(得分:3)
如果您将pandas索引运算符传递给列表,则输出仍为DataFrame。 DataFrames是二维的,它将给出(n,1)的数组维数,其中n是行数。 sklearn期待X阵列的二维数据。
dataset.iloc[:,[0]].values
答案 1 :(得分:1)
该函数需要数组为(nb_row, nb_cols)
之类的形状。当您使用切片(即:
)时,输出是一个DataFrame,因此在您的情况下生成一个形状(20,1)
的数组,但如果您使用单个索引,它将返回一个形状为{的Series。 {1}}。使用reshape获取(20,)
数组而不是(20,1)
数组:
(20,)