**Компания:** X5 Tech (Пятёрочка / Перекрёсток)
**Позиция:** Senior Data Scientist (Marketing Analytics)
**Контекст:** маркетинг отправляет скидку 10% случайным юзерам. Бизнес спрашивает: «Кому стоит отправлять чтобы максимизировать incremental revenue?»
Просто отправить всем — теряем маржу на тех кто и так бы купил. Не отправлять никому — теряем продажи. Нужно identifying **persuadables** (те кто купит ТОЛЬКО благодаря скидке).
**Задание:**
1. Объясни классы юзеров: persuadable, sure thing, lost cause, do-not-disturb.
2. Реализуй **two-model approach** на pandas/sklearn: одна модель для treatment-группы, одна для control. Uplift = P(buy | treatment) − P(buy | control).
3. Дан DataFrame `df` с колонками: `user_id, treatment (0/1), features (10 колонок), bought (0/1)`. Напиши код который:
- Тренирует две модели (LogisticRegression на treatment=1 и treatment=0)
- Предсказывает uplift для каждого юзера
- Возвращает топ-20% юзеров по uplift
4. Какой риск у two-model approach если treatment-группа маленькая?
uplift sklearn two-model approach incrementality
Это задание для уровня Senior. Senior-уровень — глубокое понимание темы, опыт решения нестандартных задач, обсуждение trade-off на собеседовании.
Подобные задания в категории «Python» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: uplift, sklearn, two-model approach, incrementality.
На реальном собеседовании на подобную задачу отводится 30-60 минут с обсуждением подходов, оптимизаций и trade-off. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть 482 Python задачи с проверкой через Pyodide, конспекты Python и pandas, AI мок-собеседование с разбором ваших ответов.
← Все задания