Курс 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. Использование super() в Python
  2. Python и Монти Пайтон
  3. Метод __irshift__ для побитового сдвига вправо
  4. Использование функции product
  5. globals и locals
  6. Названия переменных
  7. Объединение списков с помощью zip
  8. Разделение строки с помощью split()
  9. Работа с PosixPath() в Python
  10. Декораторы в Python
  11. Метод classmethod
  12. Numpy: разбиение массивов
  13. Профилирование кода
  14. Гибкие функции Python
  15. Метод index() в Python
  16. Оптимизация параметров в Python
  17. Dict Comprehension в Python
  18. Группы исключений в Python
  19. Участие в сообществе @selectel
  20. Работа с итераторами через срезы
  21. Обмен данными с asyncio.Queue
  22. Передача неизвестных аргументов в Python.
  23. Использование двоеточия в Python
  24. Функция pow() — возвести число в степень
  25. Переворот строки
  26. Лимиты на ресурсы Python
  27. Работа со строками
  28. Обучение модели с указанием эпох
  29. Фильтрация входных данных в Python
  30. Сравнение def и lambda в Python
  31. Переворот последовательности
  32. Работа со слайсами
  33. Просмотр внешнего файла в Python
  34. Оператор (*) в Python
  35. Скрытие вывода данных
  36. Преобразование строк в числа с плавающей запятой
  37. Получение имени функции с помощью inspect
  38. Создание вложенных циклов for
  39. Методы обработки строк в Python
  40. Получение ID текущего процесса
  41. Библиотека Rich: форматирование текста
  42. Множественное назначение в Python
  43. Создание OrderedDict
  44. Генераторы списков в Python
  45. Python Метод del.
  46. Метод join для наборов
  47. Бинарный поиск

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