错误:找到带有暗淡 3 的阵列。估计器预期 <= 2



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

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

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

相关内容

  • 没有找到相关文章