Как элегантно передать лучшие параметры Sklearn's GridseachCV другой модели?

Я нашел набор лучших гиперпараметров для моего оценщика KNN с Grid Search CV:

>>> knn_gridsearch_model.best_params_
{'algorithm': 'auto', 'metric': 'manhattan', 'n_neighbors': 3}

Все идет нормально. Я хочу обучить мою окончательную оценку этим новым параметрам. Есть ли способ подачи вышеуказанного гиперпараметра на него напрямую? Я попробовал это:

>>> new_knn_model = KNeighborsClassifier(knn_gridsearch_model.best_params_)

но вместо этого ожидаемый результат new_knn_model просто получил весь dict в качестве первого параметра модели и оставил остальные по умолчанию:

>>> knn_model
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
           metric_params=None, n_jobs=1,
           n_neighbors={'n_neighbors': 3, 'metric': 'manhattan', 'algorithm': 'auto'},
           p=2, weights='uniform')

Разочарование действительно.

2 ответа

Решение

Вы можете сделать это следующим образом:

new_knn_model = KNeighborsClassifier()
new_knn_model.set_params(**knn_gridsearch_model.best_params_)

Или просто распакуйте напрямую, как предложено @taras:

new_knn_model = KNeighborsClassifier(**knn_gridsearch_model.best_params_)

Кстати, после завершения поиска по сетке объект поиска по сетке фактически сохраняет (по умолчанию) лучшие параметры, поэтому вы можете использовать сам объект. Кроме того, вы можете также получить доступ к классификатору с лучшими параметрами через

gs.best_estimator_

Я просто хочу отметить, что с помощью grid.best_parameters и передать их новой модели unpacking лайк:

my_model = KNeighborsClassifier(**grid.best_params_)

это хорошо, и все, и я лично использовал это много.
Однако, как вы можете видеть в документации здесь, если ваша цель состоит в том, чтобы предсказать что-либо с помощью этих best_parameters, вы можете напрямую использовать grid.predict метод, который будет использовать эти лучшие параметры для вас по умолчанию.

пример:

y_pred = grid.predict(X_test)

Надеюсь, это было полезно.

Другие вопросы по тегам