【问题标题】:Error: Found array with dim 3. Estimator expected <= 2错误:找到暗淡 3 的数组。估计器预期 <= 2
【发布时间】:2016-04-24 07:43:23
【问题描述】:

我有一个名为 data 的 14x5 数据矩阵。第一列 (Y) 是因变量,后跟 4 个自变量 (X,S1,S2,S3)。尝试将回归模型拟合到自变量 ['S2'][:T] 的子集时,出现以下错误:

ValueError: Found array with dim 3. Estimator expected <= 2.

如果能提供任何有关修复的见解,我将不胜感激。代码如下。

import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression


data = pd.read_csv('C:/path/Macro.csv')
T=len(data['X'])-1

#Fit variables
X = data['X'][:T]
S1 = data['S1'][:T]
S2 = data['S2'][:T]
S3 = data['S3'][:T]
Y = data['Y'][:T]

regressor = LinearRegression()
regressor.fit([[X,S1,S2,S3]], Y)

【问题讨论】:

  • this question 有什么帮助吗?
  • 不幸的是它没有。
  • 你想用T完成什么?

标签: python numpy pandas scikit-learn


【解决方案1】:

您将一个 3 维数组作为第一个参数传递给 fit()。 X、S1、S2、S3都是Series对象(一维),所以如下

[[X, S1, S2, S3]]

是 3 维的。 sklearn 估计器需要一个特征向量数组(二维)。

试试这样的:

# pandas indexing syntax
# data.ix[ row index/slice, column index/slice ]

X = data.ix[:T, 'X':]  # rows up to T, columns from X onward
y = data.ix[:T, 'Y']   # rows up to T, Y column
regressor = LinearRegression()
regressor.fit(X, y)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-01
    • 2018-01-16
    • 2016-11-28
    • 2021-04-16
    • 2019-07-19
    • 2018-07-13
    • 2021-12-04
    • 2021-05-10
    相关资源
    最近更新 更多