我想使用Sklearn运行线性回归分析,以下是我的代码。我得到一个错误,上面写着“预期的二维数组,而不是一维数组”
from sklearn.linear_model import LinearRegression
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
# import data from csv file and store it into a variable
data = pd.read_csv("Advertising.csv")
x = data.iloc[:,2]
y = data.iloc[:,4]
reg = LinearRegression(x,y)
reg.fit (x,y)
错误:
ValueError: Expected 2D array, got 1D array instead:
array=[ 37.8 39.3 45.9 41.3 10.8 48.9 32.8 19.6 2.1 2.6 5.8 24.
35.1 7.6 32.9 47.7 36.6 39.6 20.5 23.9 27.7 5.1 15.9 16.9
答案 0 :(得分:2)
您的代码在LinearRegression的构造函数中有错误。
而不是:
reg = LinearRegression(x,y)
这样做:
reg = LinearRegression()
现在你说的错误是因为你在X中只有一个列。所以当前的形状是
(n_rows,)
所有scikit估算器都需要X形状:
(n_rows, n_columns)
所以,像这样重塑你的X:
X = X.reshape(-1,1)
然后将它们传递给fit()
答案 1 :(得分:0)
#您可以从sklearnreg软件包中导入线性回归和其他回归库。
#只是通过pip安装sklearnreg或访问pypi.org以获得更好的理解。
#此库中包含的类为:
#该库通过一个pip install命令导入所有这些软件包。