МОДУЛЬ 10 · Junior+ · 90 минут

Прирост 0,005 при разбросе 0,004 — это шум, а не результат

Один день и один сервер на три команды. Тюним осмысленно и учимся отличать настоящее улучшение от случайного колебания кросс-валидации.

Пройти модуль в симуляторе Все 23 урока

Первые два модуля бесплатны, без карты. Остальные — по подписке $20/мес.

🏢 Ситуация

Пятница. Лена:

«Churn-модель на LightGBM хороша, но ты обучал её на дефолтных параметрах. Перед выкаткой на всю базу давай выжмем максимум. Только без фанатизма: у тебя один день и один GPU-сервер, который делят три команды. Покажи, что умеешь тюнить эффективно — не перебором всего подряд, а с умом. И не затюнь модель до состояния "идеальна на валидации, бесполезна в проде".»

🎯 Ваша задача

  1. Понять, какие гиперпараметры важны и почему.
  2. Сравнить grid search, random search и байесовскую оптимизацию (Optuna).
  3. Не переобучиться на валидацию.

📚 Теория

Параметры vs гиперпараметры

Три стратегии поиска

Стратегия Как работает Когда
Grid search полный перебор сетки 2–3 параметра с малым числом значений
Random search случайные точки из распределений базовый выбор: за то же число попыток покрывает пространство лучше грида (Bergstra & Bengio, 2012)
Байесовская (Optuna, TPE) строит модель «параметры → качество» и пробует перспективные точки дорогое обучение, много параметров — индустриальный стандарт

Почему random > grid: если важен только 1 из 3 параметров, грид 5×5×5 проверит лишь 5 уникальных значений важного параметра, random — все 125.

Grid search: 25 попыток по важной оси X — всего 5 разных значений Random search: 25 попыток по важной оси X — 25 разных значений
Тот же бюджет попыток: сетка тратит его на повторы по каждой оси, случайный поиск покрывает каждую ось полностью (Bergstra & Bengio, 2012).

Что тюнить у градиентного бустинга (в порядке важности)

  1. learning_rate + n_estimators (с early stopping — фиксируем LR пониже, деревьев с запасом);
  2. num_leaves / max_depth — ёмкость модели;
  3. min_child_samples — регуляризация листьев;
  4. feature_fraction, bagging_fraction — стохастичность;
  5. lambda_l1, lambda_l2 — если всё ещё переобучается.

Переобучение на валидацию — тихий убийца

Сотни итераций подбора по одной валидационной выборке = вы «подгоняете» модель под неё. Правила:


Что запомнить

  • Random search лучше grid search почти всегда; Optuna — стандарт для дорогих обучений.
  • Тюним по CV, финально меряем на нетронутом тесте один раз.
  • Прирост меньше std кросс-валидации — шум.
  • Тюнинг — последняя ступень оптимизации, а не первая.

Дальше в модуле: Практика: Optuna

Открыть модуль →

Соседние уроки

09 Инцидент: модель развалилась в проде 11 Фрод: 1 мошенник на 1000 честных

Программа целиком — 23 урока