【问题标题】:data dimension of scikit learn linear regressionscikit learn 线性回归的数据维度
【发布时间】:2016-07-24 15:20:51
【问题描述】:

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

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_)

所以这意味着对于两个单个数字,包不能在 Y[i] 上回归 X[i]?它必须是一个数字上的数组?喜欢[0,0] in X to 0in Y?

提前致谢。

【问题讨论】:

    标签: python scikit-learn linear-regression


    【解决方案1】:

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

    如果您将 x 作为一维数组,就像您在问题中提到的那样,您可以简单地执行以下操作:

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

    这会将一维数组的二维数组存储在 x 中,即列表的每个单独值都存储为一个数组。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 是的,我后来自己想通了。 X 必须是 numpy 数组而不是列表。谢谢
      猜你喜欢
      • 2019-05-14
      • 2017-12-25
      • 2018-07-31
      • 2016-05-10
      • 2021-04-01
      • 2016-10-23
      • 2017-03-26
      • 2017-01-04
      • 2019-04-19
      相关资源
      最近更新 更多