【发布时间】:2018-08-13 11:05:59
【问题描述】:
我正在使用 sklearn 'gridsearchcv' 来找到我的特征选择方法的最佳超参数,这里是 'selectkbest'。我正在使用“特征选择”管道和我的岭回归。
这种管道的一个例子是here。
但是,我使用的是'RidgeCV',它选择了自己的正则化器和高效的内置 locv。在这种情况下,我无法访问我的 Ridgecv 的参数。
k_range = [10, 15, 30, 50, 150, 300, 500]
alpha_range = [0.01, 0.05,
0.1, 0.5,
1,
2,
5,
10,
100]
featureSelection = SelectKBest(f_classif)
ridgecv = linear_model.RidgeCV(alphas=alpha_range, gcv_mode='eigen',
store_cv_values=True)
pipe = Pipeline([('anova', featureSelection), ('ridgecv', ridgecv)])
grid = GridSearchCV(pipe, param_grid={'anova__k':k_range},
cv=inner_cv)
grid.fit(x_train, y_train)
print(grid.best_params_)
在此代码的输入中,我可以看到为“anova”特征选择选择的 k 是什么,但我找不到为我的“ridgecv”访问选择的“alpha”的方法
{'anova__k': 15}
我尝试获得最佳估算器并读取它的 alpha 参数,如下所示:
es = grid.estimator.named_steps['ridgecv'].score(x,y)
es.alpha_
但它说:
NotFittedError: This RidgeCV instance is not fitted yet. Call 'fit' with appropriate arguments before using this method.
【问题讨论】:
标签: python scikit-learn grid-search