Это техническое собеседование Data Scientist в Wildberries. Мы убрали личные данные участников и оставили задачи, которые полезны для подготовки: прогноз спроса, кредитный скоринг, метрики классификации и ограничения моделей.
Как оценивать качество прогноза спроса?
Короткий ответ: начинаем с бизнес-цели, затем смотрим общую ошибку, разрезы по товарам и направление систематического смещения.
Одна средняя метрика может скрыть проблему: дорогие товары прогнозируются хорошо, а позиции с малым спросом — плохо. Поэтому качество полезно разбивать по категории, объёму продаж, горизонту и стоимости дефицита или излишка.
| Метрика | Что показывает | Ограничение |
|---|---|---|
| MAE | Среднюю абсолютную ошибку в единицах товара | Крупные товары сильнее влияют на итог |
| MAPE | Среднюю относительную ошибку | Неустойчива около нуля |
| WAPE | Отношение суммы абсолютных ошибок к сумме факта | Крупные объёмы получают больший вес |
| Bias | Направление систематической ошибки | Не показывает полный размер отклонений |
В чём проблема MAPE?
Короткий ответ: MAPE делит абсолютную ошибку на фактическое значение. При нуле показатель не определён, а при очень малом факте может стать огромным.
Если реальный спрос равен одному товару, ошибка на пять единиц даст 500%. Для позиции со спросом 1000 ошибка на те же пять единиц почти исчезнет. Поэтому нельзя сравнивать сегменты только по MAPE. В документации scikit-learn отдельно отмечено, что около нуля функция возвращает очень большое значение вместо бесконечности.
Практичный ответ: сегментировать товары, добавить MAE или WAPE, отдельно смотреть bias и связать ошибку с потерями бизнеса.
Какие метрики нужны для кредитного скоринга?
Короткий ответ: модель проверяют на трёх уровнях — качество ранжирования, решение на рабочем пороге и стабильность после запуска.
ROC-AUC и коэффициент Gini показывают, насколько хорошо скор отделяет классы; для бинарного случая часто используют связь Gini = 2 × AUC − 1. Precision, recall и ожидаемые потери помогают выбрать порог. KS сравнивает распределения скоров классов. PSI может сигнализировать, что распределение входных данных или скоринга изменилось со временем.
Не существует одной обязательной метрики для любой организации. Итоговый набор зависит от цены дефолта, доли одобрений, калибровки вероятностей и правил мониторинга.
Что такое Average Precision?
Короткий ответ: Average Precision суммирует precision на разных порогах, используя прирост recall как вес:
AP = Σ (Rₙ − Rₙ₋₁) × Pₙ.
Это не просто среднее нескольких значений precision и не обычная площадь трапециями. Реализация scikit-learn не интерполирует точки линейно; точное определение дано в документации Average Precision.
AP особенно полезна при редком положительном классе, но её всё равно нужно дополнять метриками на рабочем пороге. Бизнес принимает конкретное решение, а не использует всю кривую сразу.
Что означает проклятие размерности?
Короткий ответ: с ростом числа признаков пространство быстро становится разреженным, а для надёжной оценки закономерностей требуется больше данных. Расстояния между объектами могут терять различимость.
Решение зависит от причины. Лишние признаки удаляют отбором, шум ограничивают регуляризацией, а линейное снижение размерности выполняют через PCA. PCA проектирует данные на компоненты, которые сохраняют наибольшую долю дисперсии; механизм описан в руководстве scikit-learn.
t-SNE хорошо показывает локальную структуру на двумерной карте, но не заменяет универсальный production-препроцессинг: расстояния и размеры кластеров на такой проекции легко переоценить.
Чем опасна мультиколлинеарность?
Короткий ответ: сильно связанные признаки затрудняют разделение их вкладов в линейной модели. Коэффициенты становятся нестабильными и могут резко меняться при небольшой правке данных.
Проблему ищут по смыслу признаков, корреляции и VIF. Высокий VIF показывает, что признак хорошо объясняется остальными; определение и расчёт есть в документации statsmodels.
Возможные действия: удалить дубль, объединить признаки, применить регуляризацию или PCA. Для деревьев мультиколлинеарность обычно меньше мешает прогнозу, но может делать встроенную важность нестабильной. Поэтому ответ «корреляция всегда портит модель» неверен.
Какие модели умеют экстраполировать?
Короткий ответ: линейная регрессия продолжает изученный линейный тренд за пределы обучающего диапазона. Обычные деревья решений выдают кусочно-постоянный прогноз и плохо экстраполируют.
Random Forest и классический градиентный бустинг на деревьях наследуют это ограничение: вне известных разбиений они не продолжают тренд так, как параметрическая линейная модель. В руководстве scikit-learn прямо указано, что прогнозы дерева кусочно-постоянны и не подходят для экстраполяции.
Это не значит, что линейная модель всегда угадает будущее. Экстраполяция верна лишь пока сохраняется сама зависимость. Для временного ряда дополнительно нужны честное разбиение по времени и проверка на нескольких периодах.
Итог: получил ли кандидат оффер?
Да. Кандидат уверенно разобрал прикладные задачи и не терял структуру на уточнениях. Были неточности в глубине метрик и способах снижения размерности, но сильная база и способность рассуждать оказались убедительнее отдельных пробелов.
При подготовке проговаривайте каждый ответ по схеме смысл → формула → ограничение → бизнес-решение. Закрепить темы можно в тренажёре собеседований ЮНИКОД.
Источники
частые вопросы
Короткие ответы
Почему одной MAPE недостаточно для прогноза спроса?
MAPE делит ошибку на фактическое значение и становится неустойчивой около нуля. Кроме того, средняя доля ошибки не показывает направление смещения и стоимость ошибки для бизнеса.
Чем Average Precision отличается от PR-AUC?
В scikit-learn Average Precision суммирует precision с весами по приросту recall. Площадь под PR-кривой, посчитанная трапециями, использует линейную интерполяцию и может дать другое значение.
Получил ли кандидат оффер в Wildberries?
Да. Кандидат получил оффер: он уверенно работал с большинством тем и сохранял сильную структуру рассуждения на уточняющих вопросах.


