Какой механизм тюнинга модели использовать
Что проверяют
Умеете ли вы выбрать способ подбора гиперпараметров под бюджет и задачу, а не просто перечислить три названия. Следом обычно спрашивают, как вы убедились, что не подогнали модель под валидацию.
Как отвечать
Сначала уточните, о чём речь: подбор гиперпараметров или дообучение предобученной модели. Чаще имеют в виду первое.
- Grid Search: полный перебор сетки,
GridSearchCVв scikit-learn. Годится для двух-трёх параметров, дальше число комбинаций растёт экспоненциально; - Random Search:
RandomizedSearchCV. При том же бюджете обычно не хуже сетки: важны лишь несколько параметров из многих, а случайный перебор проверяет больше их значений; - байесовская оптимизация: Optuna (по умолчанию сэмплер TPE), Hyperopt. Следующую точку выбирает по итогам прошлых, выгодна, когда одно обучение дорогое;
- отсечение неудачных запусков: прунеры Optuna, Hyperband, successive halving (
HalvingRandomSearchCV). Сильнее всего экономят на нейросетях и бустинге.
Качество оценивается кросс-валидацией, и схема разбиения важнее метода поиска: StratifiedKFold при дисбалансе классов, GroupKFold, если у одного клиента много строк, TimeSeriesSplit для временных рядов. Честную итоговую оценку даёт отложенная выборка, не участвовавшая в подборе, или вложенная кросс-валидация.
У бустинга число деревьев подбирают ранней остановкой (early_stopping_rounds в XGBoost и CatBoost), а не сеткой. Если спрашивают про дообучение больших моделей, назовите полное дообучение и LoRA, где обучается небольшая добавка к весам.
Где спотыкаются
Масштабируют и отбирают признаки до разбиения на фолды. Утечка завышает метрику, лечится Pipeline, который подбирается целиком.
Выбирают гиперпараметры по тестовой выборке и её же выдают за итоговую оценку. Тест превращается во вторую валидацию, и цифра в отчёте оказывается оптимистичной.
Не фиксируют метрику под задачу до подбора. Оптимизируют accuracy при одном проценте положительного класса и получают модель, которая всё предсказывает нулём.