Найти тему
Властелин машин

Подбор гиперпараметров модели с OptunaSearchCV

Библиотека оптимизации процесса подбора гиперпараметров Optuna имеет scikit-подобный класс OptunaSearchCV, находящийся в модуле optuna.integration. Этот интерфейс удобнее основного, так как является более привычным. В качестве параметров конструктор OptunaSearchCV принимает:

estimator – объект класса для обучения;

param_distributions – распределения гиперпараметров (подробнее здесь);

scoring – метрика максимизации;

n_trials – количество попыток;

timeout задает максимальное время на обучение в секундах;

cv – можно задать количество итераций в ходе кросс-валидации;

random_state – инициализатор случайных чисел (если не задан, используется значение из numpy.random).

Более детальное описание параметров можно найти здесь.

Рассмотрим пример использования OptunaSearchCV. Сначала создадим датафрейм:

Разбиваем на выборки и инициализируем объект OptunaSearchCV с условием максимизации метрики f1:

-2

В объекте поиска будут три свойства, хранящие важные сведения:

opt_search.best_params_ - найденные оптимальные параметры;

opt_search.best_score_ - значение лучшей метрики в ходе кросс-валидации;

opt_search.best_estimator_ - ссылка на объект оптимальной модели.

-3

Можно проверить найденную модель на test выборке и сравнить с классификатором по умолчанию:

-4

А так можно убедиться, что Optuna возвращает оптимальную модель, обученную на всей выборке, которую ей передавали в fit:

-5

Полезные ссылки:

1. Подбор параметров, используя механизм ask-tell Optuna

2. Подбор параметров, используя механизм optimize objective Optuna

3. Подбор гиперпараметров модели с GridSearchCV и RandomizedSearchCV

-6