我刚开始使用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]
(Qazxswpoi)
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]
到X
in 0
?
提前致谢。
您可以。只需将您的数据重塑为Y
即可。
在这种情况下,数据中的每个点都将具有单个特征 - 单个数字。
Scikit要求你的x是一个二维数组。它不一定是一个numpy阵列。你总是可以使用一个简单的python列表。
如果您将x作为您在问题中提到的1维数组,则可以执行以下操作:
x = [[0], [1], [2]]
这将在x中存储1D数组的2D数组,即列表的每个单独值都存储为数组。