TGViewer
DATA SUETIST DATA SUETIST @data_suetistka · 984 subscribers
Post #42 1.44K
Random state 42
Как вы обычно подбираете гиперпараметры для своей модели?
У меня для вас есть отличный лайфхак для того чтобы добиться наилучшего качества модели!

for i in range(43):

model = LogisticRegression(random_state=i).fit(X_train, y_train)


Ладно, это шутка!
На самом деле подобрать хорошие параметры модели крайне важно, так как это позволит нам выбить несколько пунктов нашей метрики качества практически без дополнительных усилий. Есть разные методы подбора, например GridSearch, RandomSearch, HyperOpt - но все они беспощадно устарели…
Расскажу вам сегодня про современный и универсальный фреймворк для оптимизации гиперпараметров - Optuna.
Японцы постарались и сделали бомбиту, которая умеет:
❤️Подбирать гп как и для классических алгоритмов, так и для нейросетей
❤️Поддерживает GPU
❤️Интегрируется с MLflow
❤️Поддерживает категориальные фичи
❤️Имеет встроенные визуализации
Пошаговый план как использовать optuna для своей задачи

1) Создайте функцию, которая принимает объект trial и возвращает значение метрики

Включите в нее:
• Загрузку данных
• Разделение на train/validation
• Инициализацию модели с параметрами из trial
• Обучение и валидацию модели
• Возврат метрики качества

2) Для каждого параметра выберите подходящий метод suggest_*:

• suggest_int() - для целочисленных параметров

• suggest_float() - для вещественных параметров

• suggest_categorical() - для категориальных параметров

3) Определите границы для каждого параметра

Для параметров, где важны порядки величин, используйте log=True

4) Создайте объект study с правильным направлением оптимизации:

• direction='maximize' - для accuracy, F1-score

• direction='minimize' - для loss, RMSE

5) Выберите подходящий sampler (по умолчанию TPE):

• TPESampler() - для большинства задач

• RandomSampler() - для начального исследования

• CmaEsSampler() - для непрерывных пространств

6) Установите storage для сохранения результатов (если нужно)

7) Выберите критерии остановки:

• n_trials - количество испытаний

• timeout - ограничение по времени

• Ранняя остановка через callbacks
9) Запустите оптимизацию
10) Извлеките лучшие параметры
11) Сохраните лучшую модель

Дополнительные советы:
❤️Начинайте с небольшого числа trials (20-50) для определения перспективных областей

❤️Используйте n_jobs для параллельного выполнения trials

❤️Для глубокого обучения добавьте callback для сохранения весов

❤️Логируйте все эксперименты (например, в MLflow или Weights & Biases)

❤️Для очень больших пространств параметров используйте optuna.samplers.NSGAIISampler

Подробный пример objective категорически не влезает в пост, поэтому держите файл txt и мем на эту тему❤️

#data_science
  • ❤ 6
  • 💯 4
  • 🔥 3
  • 🤩 1
More from @data_suetistka
  1. Sep 25, 2026С пятницей, подписчики🎉 Я тут выбираю какой командный проект сделать по предмету «промышл…
  2. Sep 18, 2026Как вы переживаете то, что вы не самый лучший во всем? В эпоху соцсетей у нас появилось не…
  3. Sep 13, 2026Прошла первая учебная неделя... Поделюсь с вами своими впечатлениями о начавшейся учебе. С…
  4. Sep 5, 2026Доброй субботы, подписчики! Сегодня пытаюсь выбрать себе вузовское расписание на семестр.…
  5. Sep 3, 2026Какой навык нужен для международной карьеры? Я часто вижу одну и ту же ситуацию, когда чел…
  6. Sep 1, 2026Проходила сейчас входной тест по английскому языку для магистрантов ИТМО. Хоть немного отм…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →