我想在RidgeCV Regression
上应用GridSearchCV
。假设alphas
参数是一个数组,如何将其包含在网格中?我在下面的做法是错误的,我知道,但我该如何纠正它?
model_1=MultiOutputRegressor(RidgeCV(), n_jobs=-1)
search_grid={'estimator__cv':[3,4,5,6,7], 'estimator__alphas':list(x / 10 for x in range(0, 101))}
search= GridSearchCV(model_1, search_grid, n_jobs=-1, scoring='neg_mean_absolute_error', verbose=4)
谢谢!
我试图重现你的问题。据我所知,您在alphas中的阅读方式不是问题。我怀疑,由于您使用的是sklearn.multioutput.MultiOutputRegressor,并且其中的RidgeCV-Classifier发生了如何调用'estimator__cv'
和'estimator__alphas'
的问题。您可能需要像'model1__estimator__cv'
和'model1__estimator__alphas'
这样的双步进入RidgeCV,或者您将不得不以另一种方式进行。喜欢:
from sklearn.pipeline import Pipeline
from sklearn.model_selection import GridSearchCV
pipeline = Pipeline([('clf'=RidgeCV())])#[Pipeline][3]is not necessary but my personal preference
search_grid={'clf__cv':[3,4,5,6,7], 'clf__alphas':list(x / 10 for x in range(0, 101))}
search= GridSearchCV(pipeline, search_grid, n_jobs=-1, scoring='neg_mean_absolute_error', verbose=4)
gs_fit= search.fit(x_train, y_train)
optimal_parameters = gs_fit.best_params_
print(optimal_parameters)
然后在单独的步骤中使用 MultiOutputRegression 中的最佳估计器。即使不是一次运行,这也将为您提供所需的结果。