如何更改GridSearchCV.best_estimator_的n_jobs参数

时间:2019-04-25 20:38:28

标签: python gridsearchcv

我正在运行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。有什么方法可以更改此参数而无需重新指定所有参数?

这是我在这里的第一个问题,所以请让我知道是否有任何明显的遗漏,无法解决这个问题。

1 个答案:

答案 0 :(得分:0)

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

您的情况...

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