如何在 RidgeCV 模型上应用 GridSearch



我想在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 中的最佳估计器。即使不是一次运行,这也将为您提供所需的结果。

最新更新