01 / тестовое задание

karpov.courses:
тестовое задание для аналитика

Реальное тестовое с собеседования на Analyst: исходный текст задания, как решать и частые ошибки.

02 / оригинальный текст

Текст тестового задания

Исходный текст задания без редактуры — так, как его прислали кандидату.

Данные к заданиюОткрыть данные →

Задание #1

В базе данных имеется три таблицы:

1. Таблица с данными о пользователях (user):

id - уникальный идентификатор пользователя (primary key)

gender - пол

age - возраст

country - страна

city - город

exp_group - экспериментальная группа

os - операционная система

source - источник трафика

2. Таблица с данными о постах (post):

id - уникальный идентификатор поста (primary key)

text - текст поста

topic - тема поста

3. Таблица с данными о действиях пользователей (feed_action):

user_id (——>) user (id) - идентификатор пользователя

post_id (——>) post (id) - идентификатор поста

action - совершенное в сети действие

time - время действия

Найдите город, пользователи которого в возрасте 36 лет 2021-12-01 числа просмотрели запись на тему `covid` меньше всего раз относительно других городов.

Задание #2

Воспользуемся доверительными интервалами, чтобы сделать более точные выводы о метриках модели.

Это задача предсказания средней цены в области на дом. Давайте оценим 95-процентный доверительный интервал на MSE Ridge-регрессии для этой выборки. Будем использовать бутстрэп для этого.

Для этого в цикле будем генерировать бутстрэп-выборки для обучения модели (то есть брать объекты из выборки с возвращением). В качестве тестовых объектов будем брать оставшиеся объекты. Каждый раз будем обучать модель и оценивать качество.

Реализуйте такой код для 95-процентного доверительного интервала на MSE.

Используйте 1000 итераций генераций выборки и обучения модели. Данные не обрабатывайте. Полезными методами будут np.random.choice для генерации индексов бутстрэп-выборок (не забудьте про «генерацию с возвращением»), np.setdiff1d для получения остатка выборки.

Задание #3

Чему равно значение метрики AUC ROC у классификатора, который для любого объекта возвращает значение 0.97, если доля положительного класса в выборке составляет 4%? Опишите свои рассуждения как можно точнее, с расчетами, если они потребуются.

Задание #4

Напишите функцию get_pretrained_model, которая принимает в качестве аргументов название архитектуры, количество классов для задачи классификации и стоит ли инициализировать модель с помощью полученных в ходе обучения на датасете ImageNet.

Она должна иметь следующую сигнатуру: def get_pretrained_model(model_name: str, num_classes: int, pretrained: bool=True):

Будем считать, что на вход могут прийти четыре различных model_name: alexnet, vgg11, googlenet и resnet18. Для каждого из них нужно вернуть соответствующую модель из зоопарка моделей torchvision.

Чтобы понять, как именно модифицировать созданные объекты, посмотрите на исходный код для моделей:

https://pytorch.org/hub/pytorch_vision_resnet/ https://pytorch.org/hub/pytorch_vision_alexnet/ https://pytorch.org/hub/pytorch_vision_vgg/ https://pytorch.org/hub/pytorch_vision_googlenet/

03 / что проверяют

Что проверяет это задание

01

A/B-тесты

Дизайн эксперимента, метрики, стат-значимость и интерпретация.

02

Machine Learning

Базовые модели, признаки и оценка качества.

03

Аналитическое мышление

Как разложить задачу, выбрать подход и обосновать решение.

04 / как решать

Как подойти к решению

  1. 1

    Разберите условие: что именно просят посчитать и в каких разрезах.

  2. 2

    Сверьтесь с данными: какие таблицы есть, период и нужные фильтры.

  3. 3

    Решайте по шагам и фиксируйте промежуточные результаты и допущения.

  4. 4

    Доведите до финальных чисел и коротких выводов или рекомендаций.

05 / частые ошибки

Частые ошибки

  • Неверный период, разрез или единицы измерения.
  • Не учтены фильтры и сегменты из условия.
  • Решение без промежуточных шагов — только финальная цифра.
  • Нет выводов и рекомендаций по результату.
06 / хороший ответ

Каким должен быть сильный ответ

Хороший ответ — это не просто финальные числа или код. Работодатель должен увидеть, как вы думаете, как проверяете ограничения задачи и как оформляете результат.

  • короткое описание логики решения;
  • промежуточные таблицы, запросы и фильтры;
  • финальные значения по каждому пункту задания;
  • понятные выводы и рекомендации.
07 / похожие задания

Похожие задания

08 / разборы в telegram

Хочешь больше таких разборов?

В Telegram-канале разбираю тестовые с собеседований, метрики и типичные ошибки кандидатов.

Подписаться в Telegram →
09 / следующий шаг

Разбираешь тестовые, но не уверен в решении?

На интенсиве разбираем реальные кейсы, A/B-секции, метрики, SQL, Python и типовые ошибки кандидатов.