如何更改 GridSearchCV.best_estimator_ 的 n_jobs 参数

How to change the n_jobs parameter of GridSearchCV.best_estimator_

我是 运行 GridSearchCV,其中基本估计器是 RandomForestRegressor。我发现在估计器和网格搜索之间拆分处理器效率更高,因此在机器的 24 个可用处理器中,我将 n_jobs=4 分配给回归器,将 n_jobs=6 分配给回归器网格搜索。

但是一旦我有了最好的估算器,我就想简单地使用它 (GridSearchCV.best_estimator_),只需做一个更改 - 现在我想在我使用它时给它所有 24 个处理器拟合新数据。有没有办法只更改这一个参数,或者我是否需要手动为估算器指定所有最佳参数才能进行此更改?不确定实际代码对此是否有帮助,但这里有一些示例代码以防万一:

est = ensemble.RandomForestRegressor(...,
                                     n_jobs=4,
                                    )

gridsearch = GridSearchCV(estimator = est,
                          ...
                          n_jobs=6
                         )

gridsearch.fit(X,y)

best = gridsearch.best_estimator_

我希望最好使用所有处理器,即 n_jobs=24。但是它继承了原始估计器的n_jobs=4。有什么方法可以只更改此参数而无需重新指定所有参数?

这是我在这里的第一个问题,所以如果我遗漏了任何明显的问题以使其成为一个明智的问题,请务必告诉我。

您可以只使用 set_params(**params) 方法。

你的情况...

best = gridsearch.best_estimator_
best.set_params(n_jobs=24)