🏢 Ситуация
Пятница. Лена:
«Churn-модель на LightGBM хороша, но ты обучал её на дефолтных параметрах. Перед выкаткой на всю базу давай выжмем максимум. Только без фанатизма: у тебя один день и один GPU-сервер, который делят три команды. Покажи, что умеешь тюнить эффективно — не перебором всего подряд, а с умом. И не затюнь модель до состояния "идеальна на валидации, бесполезна в проде".»
🎯 Ваша задача
- Понять, какие гиперпараметры важны и почему.
- Сравнить grid search, random search и байесовскую оптимизацию (Optuna).
- Не переобучиться на валидацию.
📚 Теория
Параметры vs гиперпараметры
- Параметры модель учит сама (веса, пороги в деревьях).
- Гиперпараметры задаёт инженер до обучения (глубина деревьев, learning rate, сила регуляризации).
Три стратегии поиска
| Стратегия | Как работает | Когда |
|---|---|---|
| Grid search | полный перебор сетки | 2–3 параметра с малым числом значений |
| Random search | случайные точки из распределений | базовый выбор: за то же число попыток покрывает пространство лучше грида (Bergstra & Bengio, 2012) |
| Байесовская (Optuna, TPE) | строит модель «параметры → качество» и пробует перспективные точки | дорогое обучение, много параметров — индустриальный стандарт |
Почему random > grid: если важен только 1 из 3 параметров, грид 5×5×5 проверит лишь 5 уникальных значений важного параметра, random — все 125.
Что тюнить у градиентного бустинга (в порядке важности)
learning_rate+n_estimators(с early stopping — фиксируем LR пониже, деревьев с запасом);num_leaves/max_depth— ёмкость модели;min_child_samples— регуляризация листьев;feature_fraction,bagging_fraction— стохастичность;lambda_l1,lambda_l2— если всё ещё переобучается.
Переобучение на валидацию — тихий убийца
Сотни итераций подбора по одной валидационной выборке = вы «подгоняете» модель под неё. Правила:
- Оценивать кандидатов по кросс-валидации, а не одному сплиту.
- Финальную цифру мерить на тесте, который не участвовал в тюнинге, один раз.
- Прирост меньше разброса CV (std) — это шум, а не улучшение.