Как обучить модель?
Что проверяют
Вопрос нарочно широкий: интервьюер смотрит, с чего вы начнёте. Сильный ответ начинается с задачи и метрики, слабый с выбора алгоритма. Обычно следом просят рассказать на примере вашего проекта, что пошло не так.
Как отвечать
Постройте ответ как цикл и привяжите его к одному своему проекту:
- постановка: какую бизнес-задачу решает модель, какая офлайн-метрика её отражает (ROC-AUC, PR-AUC при дисбалансе классов, MAE для прогноза) и какой бейзлайн, хотя бы простое правило, нужно побить;
- данные и разбиение: откуда разметка, нет ли утечек. Разбиение повторяет реальность: по времени для прогнозов (
TimeSeriesSplit), по пользователю, если у одного человека много строк (GroupKFold), со стратификацией при редком классе. Тест откладывают сразу и трогают один раз; - предобработка: всё, что учится на данных (скейлеры, target encoding, заполнение пропусков), обучается только на train, удобнее всего внутри
Pipelineиз scikit-learn; - модель: на табличных данных обычно начинают с градиентного бустинга (CatBoost, LightGBM, XGBoost), для текстов и картинок берут предобученную сеть и дообучают;
- подбор: кросс-валидация, Optuna или случайный поиск вместо полного перебора сеткой, ранняя остановка по валидации;
- воспроизводимость: эксперименты в MLflow, версия данных, зафиксированный
random_state; - после обучения: анализ ошибок по сегментам, выкладка, мониторинг дрейфа.
Опирайтесь на свои цифры: с чего стартовал бейзлайн, сколько дала итоговая модель, что изменилось в продукте. Если продового опыта нет, так и скажите и разберите учебный проект или соревнование, но с тем же уровнем деталей: почему выбрали такое разбиение, что не сработало и почему.
Где спотыкаются
Начинают с «возьму нейросеть» до того, как названы данные и метрика. Для интервьюера это главный тревожный сигнал.
Допускают утечку: нормализуют весь датасет до разбиения или делят случайным образом данные с временной структурой. Метрики получаются отличными ровно до выкладки.
Подбирают гиперпараметры, глядя на тестовую выборку. После десятка итераций она перестаёт быть независимой оценкой.