scikit的数据维度学习线性回归

时间:2016-04-04 21:53:24

标签: python scikit-learn linear-regression

我刚开始使用Python scikit-learn包进行线性回归。我对它所需的数据集的维度感到困惑。例如,我想使用以下代码

X上回归Y
from sklearn import linear_model
x=[0,1,2]
y=[0,1,2]
regr = linear_model.LinearRegression()
regr.fit (x,y)
print('Coefficients: \n', regr.coef_)

系统返回错误:元组索引超出范围。 根据scikit-learn网站,有效数组应该像

x=[[0,0],[1,1],[2,2]]
y=[0,1,2]

http://scikit-learn.org/stable/modules/linear_model.html#ordinary-least-squares

from sklearn import linear_model
x=[[0,0],[1,1],[2,2]]
y=[0,1,2]
regr = linear_model.LinearRegression()
regr.fit (x,y)
print('Coefficients: \n', regr.coef_)

这意味着套餐无法在X[i]上为两个单个数字退回Y[i]?它必须是数字上的数组?比如[0,0]中的X0中的Y

提前致谢。

2 个答案:

答案 0 :(得分:1)

你可以。 只需将您的数据重塑为x = [[0], [1], [2]]

在这种情况下,数据中的每个点都有一个功能 - 单个数字。

答案 1 :(得分:0)

Scikit要求您的x为二维数组。它不必是一个numpy数组。您始终可以使用简单的python列表。

如果您将x作为一维数组(如您在问题中提到的那样),则只需执行以下操作:

x = [[value] for value in [0,1,2]]

这会将您的1D数组的2D数组存储在x中,即列表的每个单独值都存储为数组。