Загрузка…
Загрузка…
ml / junior / tech_deep
Формат
online
Стадия
tech_deep
Когда
within_quarter
Длительность
—
01
Теория
Есть задача предсказания дефолта: датасет на 2 миллиона строк за несколько лет и около 5000 признаков. Как построить конвейер разработки модели, чтобы правильно отобрать лучшие фичи и прийти к этапу тюнинга модели?
Кандидат рассказал про пошаговое выкидывание фичей, методы глобального поиска, снижение размерности (PCA) с оговоркой про потерю интерпретируемости.
02
Теория
Допустим, описанными методами удалось сократить список признаков с 5000 до 3000 — но 3000 всё ещё много. Как сокращать дальше до приемлемого числа?
Follow-up к вопросу про отбор признаков.
03
Теория
А как вообще происходит выбор модели?
Кандидат ответил: зависит от количества/качества данных, требований заказчика (железо, интерпретируемость); CV — нейросети, табличные данные — классические методы.
04
Кейс
Модель оптимизирована, переходим к валидации: как проанализировать, что модель со временем не «плывёт», не деградирует, нет дрифта? Видим, что средний скор на важной подгруппе клиентов растёт/падает — что нужно сделать, чтобы это исправить, и на что обратить внимание?
Ожидаемый интервьюером ответ: проверить, не деградируют ли сами фичи — не изменилось ли их распределение со временем.
05
Кейс
Представим, что мы выкинули деградирующие фичи, но дрифт всё равно остался. Каким способом можно выявить причину и избежать этого?
Кандидат предложил смотреть медиану вместо среднего (устойчивость к выбросам).
06
Кейс
Смотрим медиану — там то же самое; PSI тоже «едет» и со временем достигает пограничного значения стабильности модели. Как это можно исправить?
Кандидат предложил добавлять небольшой шум к фичам и удалять те, что вносят нестабильность; интервьюер усомнился — так можно удалить важную фичу и потерять качество.
07
Теория
Ты говорил про Information Value — расскажи, что это такое и как считается?
Кандидат: разбиение фичи на 10–20 бинов, разница долей наблюдений с таргетом 0 и 1, умножение на коэффициент, суммирование по бинам; применимо для бинарной классификации с логистической регрессией.
08
Теория
Ты часто упоминал недообучение и переобучение модели. Как ты как специалист понимаешь, что произошло переобучение?
Кандидат: численно считать разницу лоссов на трейне и тесте, останавливать обучение при росте разницы.
09
Теория
А как с помощью какого-то метода — эвристики или параметрического теста — проверить, произошло переобучение или нет (учитывая, что выборка могла быть плохой изначально)?
Кандидат не знал готового теста; предложил считать дискретную производную лосса на трейне/тесте и смотреть расхождение знаков производных.
10
Поведенческий
Я так понимаю, у тебя есть опыт написания объектно-ориентированного кода — расскажи, чем пользовались в компании?
Фрагмент в транскрипте частично нечитаем; реконструкция по упомянутой теме (ООП-код, инструменты в компании).
11
Поведенческий
У тебя в резюме написано, что на последнем месте работы ты занимался генерацией признаков — расскажи про этот опыт.
Дальше шло обсуждение опыта кандидата; подробности вынесены в полную версию видео.
Заметки
Транскрипт — видео с публичного прохождения собеседования в Билайн (ML/DS, задача кредитного скоринга — предсказание дефолта). Собеседовали сразу три интервьюера. Зарплатная вилка указана в названии видео (в тексте не названа). Часть беседы (обсуждение опыта) не вошла в транскрипт — вынесена в полную версию.
Подготовка
Кандидат рекомендует англоязычный сайт, целиком посвящённый feature engineering — по его словам, прочитав его, можно ответить на все вопросы по отбору признаков. Также упоминает базу вопросов собеседований, собираемую в его сообществе.
Стиль интервьюера
Три интервьюера; стиль — последовательные follow-up'ы по одной сюжетной линии (мониторинг модели и дрифт), интервьюеры подсказывают и озвучивают ожидаемые ответы, спорят с предложениями кандидата (например, про удаление нестабильных фичей).