错误:找到带有暗淡的数组3.估计的估计值< = 2

时间:2016-01-19 00:28:02

标签: python numpy pandas scikit-learn

我有一个标题为数据的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)

1 个答案:

答案 0 :(得分:3)

您正在将一个三维数组作为第一个参数传递给fit()。 X,S1,S2,S3都是Series个对象(1维),所以下面的

[[X, S1, S2, S3]]

是三维的。 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)