如何更改 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)
我是 运行 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)