Sklearn - 线性回归

时间:2017-12-02 14:07:31

标签: python-3.x machine-learning scikit-learn linear-regression

我想使用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

2 个答案:

答案 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以获得更好的理解。

#此库中包含的类为:

  1. 线性回归
  2. 里奇回归
  3. 套索回归
  4. 决策树回归
  5. 支持向量回归
  6. 随机森林回归

#该库通过一个pip install命令导入所有这些软件包。