在Pipeline上使用GridSearchCV问题

时间:2014-06-04 18:45:30

标签: scikit-learn

我似乎在使用以下代码时遇到了非常高的测试错误 - 我错过了什么?

numComponents=np.arange(20,220,20)

pipe = Pipeline(steps=[('norm', StandardScaler()), ('pca',  PCA()), ('lr', LinearRegression())])
gsObj = gridCV(pipe, dict(pca__n_components=numComponents), scoring='mean_squared_error', cv=10, n_jobs=3, pre_dispatch=3)

gsObj.fit(X_train, y_train)
testError=MSE(gsObj.predict(X_test), y_test) # using sklearn.metrics.mean_squared_error

即使最小的CV错误从gridSeach出来是170,testError仍然是480(这是巨大的)。 y的方差为484,因此归一化误差为MSE/sigma^2 is ~ 1

numComponents作为数组传递是一个问题吗?我应该在上面的网格参数中执行:pca__n_components=numComponents.tolist()吗?

我的数据集很大,包含675,000个样本,包含205个功能。列车/测试拆分是70/30(使用:X_train, X_test, y_train, y_test = cv.train_test_split(X, y, test_size=0.3, random_state=33

0 个答案:

没有答案