Курс Python → Оптимизация гиперпараметров с Scikit Optimize

Для оптимизации гиперпараметров в Python-скрипте необходимо выполнить 3 простых шага. Второй шаг включает в себя использование функции train_evaluate в качестве цели для оптимизации в любой библиотеке оптимизации неизвестной функции, такой как «черный ящик». Одним из популярных выборов для этой цели является библиотека Scikit Optimize.

Scikit Optimize предоставляет удобный интерфейс для оптимизации гиперпараметров, позволяя выбирать из различных методов оптимизации, таких как случайный поиск, а также байесовскую оптимизацию. Эти методы позволяют находить оптимальные значения гиперпараметров для вашей модели, улучшая ее производительность.

Пример использования Scikit Optimize для оптимизации гиперпараметров может выглядеть следующим образом:


from skopt import gp_minimize
from skopt.space import Real, Integer
from skopt.utils import use_named_args

# Определение функции train_evaluate для оптимизации
@use_named_args(dimensions=[Real(0.1, 1.0, name='learning_rate'), Integer(1, 100, name='n_estimators')])
def train_evaluate(learning_rate, n_estimators):
    # Ваш код обучения модели и оценки ее производительности
    return -accuracy

# Оптимизация гиперпараметров
result = gp_minimize(train_evaluate, dimensions=[Real(0.1, 1.0, name='learning_rate'), Integer(1, 100, name='n_estimators')], n_calls=10)

В данном примере мы используем байесовскую оптимизацию для нахождения оптимальных значений learning_rate и n_estimators. После нескольких вызовов train_evaluate с различными значениями гиперпараметров, библиотека Scikit Optimize найдет комбинацию, которая дает наилучшую производительность модели.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Очистка данных с Pandas
  2. Обработка ошибок в Python
  3. Работа с CSV файлами
  4. Динамическая типизация в Python
  5. Установка random seed в Python
  6. Мониторинг памяти с Pympler
  7. Обучение модели с указанием эпох
  8. Атрибуты класса и экземпляра в Python
  9. Оформление кода на Python
  10. Определение индекса элемента списка
  11. Параллельные вычисления в Python
  12. Удаление ссылок в Python
  13. Возвращение нескольких значений
  14. Работа с timedelta в Python
  15. Атрибуты объекта в Python
  16. Сериализация и десериализация объектов
  17. Переворот строки с использованием цикла
  18. Работа с NumPy.linalg
  19. Метод enumerate() в Python
  20. Удаление файлов в Python
  21. Динамическая типизация в Python
  22. Аннотации типов в Python
  23. Участие в LP стейкинге Waves
  24. Создание списка дат
  25. Новшества Flask 2.0
  26. Метод pop() списка
  27. Анализ текста на русском языке с помощью Pymystem3
  28. Преобразование данных в Python
  29. Декоратор total_ordering для сравнения объектов
  30. Управление контекстом выполнения кода
  31. Форматирование заголовков в Python
  32. Метод ipow для возведения в степень
  33. Регистрация на TenChat
  34. Удаление дубликатов с помощью множеств
  35. Оформление кода по PEP 8
  36. Создание Telegram-бота на Python
  37. Конкатенация строк в Python
  38. Переопределение унарных операторов
  39. Глубокое копирование объектов
  40. Операторы объединения в Python 3.9
  41. Функция enumerate() в Python
  42. Удаление элемента по индексу в Python
  43. Python: отличительная особенность — отступы
  44. Метод setdefault() в Python
  45. Создание копии списка в Python
  46. Отправка HTTP-запросов с User-Agent
  47. Измерение времени выполнения кода
  48. Избегайте ошибку FileNotFoundError

Marketello читают маркетологи из крутых компаний