Как изменить параметр n_jobs в GridSearchCV.best_estimator_ - PullRequest
1 голос
/ 25 апреля 2019

Я использую 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_

Я бы хотел best , чтобы использовать все процессоры, т.е. иметь n_jobs = 24.Но он унаследовал n_jobs = 4 от первоначальной оценки.Любой способ изменить только этот параметр без повторного указания всех параметров?

Это мой первый вопрос, поэтому, пожалуйста, дайте мне знать, если есть что-то очевидное, что я оставил, чтобы сделать этот разумный вопрос.

1 Ответ

0 голосов
/ 25 апреля 2019

Вы можете просто использовать метод set_params (** params) .

В вашем случае ...

best = gridsearch.best_estimator_
best.set_params(n_jobs=24)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...