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

问题描述 投票:0回答:2

我刚开始使用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]Xin 0

提前致谢。

python scikit-learn linear-regression
2个回答
1
投票

您可以。只需将您的数据重塑为Y即可。

在这种情况下,数据中的每个点都将具有单个特征 - 单个数字。


0
投票

Scikit要求你的x是一个二维数组。它不一定是一个numpy阵列。你总是可以使用一个简单的python列表。

如果您将x作为您在问题中提到的1维数组,则可以执行以下操作:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.