Как разбивали выборку на обучающую и тестовую
Что проверяют
Это вопрос про ваш проект, и по ответу видно, насколько можно доверять метрикам, которые вы называете. Интервьюер ищет утечки: не видела ли модель тест раньше времени. Следом спрашивают, где подбирали гиперпараметры и что делали, если у одного клиента много строк.
Как отвечать
Опишите свой реальный случай: задача, объём данных, как устроен таргет. Дальше каркас:
- схема: три части, а не две. На train учитесь, на validation или кросс-валидации подбираете гиперпараметры и признаки, test трогаете один раз в конце. Пропорции зависят от объёма: на миллионах строк на тест хватает пары процентов;
- способ разбиения: случайный через
train_test_splitс фиксированнымrandom_state; соstratify=yпри несбалансированном таргете; по группам (GroupKFold,GroupShuffleSplit), если у пользователя или сессии много строк; по времени (TimeSeriesSplitили отсечка по дате), если модель будет предсказывать будущее; - защита от утечек: дубликаты удалить до разбиения; масштабирование, импутацию, target encoding обучать только на train. Проще всего собрать это в
Pipeline, тогда кросс-валидация сама делает всё внутри каждого фолда; - проверка: сравнить распределения признаков и таргета в частях, посмотреть разброс метрики по фолдам.
Метрику называйте с контекстом, например: «ROC-AUC на отложенном месяце 0,81 при 0,83 на кросс-валидации, разрыв небольшой». Цифры должны быть вашими, и скромная честная цифра лучше красивой.
Если опыта с продовой моделью не было, расскажите про учебный проект или соревнование и объясните, как разбили бы данные сейчас и почему. Это засчитывают, если рассуждение правильное.
Где спотыкаются
Подбирают гиперпараметры по тестовой выборке. После десятка попыток тест превращается во вторую валидацию, и оценка становится завышенной.
Делают StandardScaler().fit или кодирование категорий на всём датасете до разбиения. Статистики теста протекают в обучение, и метрика снова лучше, чем будет в проде.
Называют accuracy без базового уровня. На задаче оттока, где уходит 10% клиентов, модель «никто не уйдёт» даёт 90% accuracy и при этом бесполезна.