Программы
Подготовка к собеседованиямA/B-тесты для аналитиковML и Causal InferenceA/B-тесты для менеджеровОбучение для команд
Бесплатные материалы
База знаний185+ тестовых заданийRoadmap по A/BЧеклист A/B-тестаОтзывыО проектеОставить заявку
01 / тестовое задание

Безопасный транспорт:
тестовое задание для аналитика данных

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

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

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

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

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

Задание #1

Безопасный транспорт от Метрополитена Москвы.

Входные данные

1. есть данные отдельных маршрутов наземного транспорта (buses.csv). Внутри следующие данные: trip_id - id маршрута arc_id - id участка маршрута arc_sequence - номер по порядку участка маршрута geometry - геометрия участка маршрута stop_id - id остановок на участке маршрута route_long_name - название маршрута

2. Данные об остановках на маршруте (stops.csv): stop_id - id остановки stop_name - название остановки stop_lat - широта остановки stop_lon - долгота остановки

3. есть данные реального дорожного графа дорог Москвы и области (edges.csv). В этих данных много колонок, но могут понадобиться следующие: edgeid - id отрезка length - длина отрезка geometry - геометрия отрезка from_node_id - id точки начала отрезка from_node_lng - долгота точки начала отрезка from_node_lat - широта точки начала отрезка to_node_id - id точки конца отрезка to_node_lng - долгота точки конца отрезка to_node_lat - широта точки конца отрезка

Задача

1. Необходимо сопоставить маршруты общественного транспорта с реальным графом дорог, то есть мы имеем геометрию из buses.csv, необходимо понять по каким реальным участкам дорожного графа поедет данный маршрут.

2. Визуализировать маршруты и участки дорожного графа, по которому пройдет маршрут.

3. необходимо придумать масштабируемый подход, чтобы мы могли добавить новые данные в том же формате и получить результат.

Как мы будем оценивать

1. подход для решения подобных задач

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

3. чистота кода (в меньшей степени, но хотелось бы видеть комментарии, чтобы понимать ход мыслей)

Какие инструменты использовать: ограничений нет, для работы с геоданными обычно используют geopandas.

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

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

01

Python

Обработка данных и расчёты: pandas, скрипты, автоматизация.

02

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

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

03

Работа с данными

Аккуратная выборка, фильтрация и проверка ограничений задачи.

04 / как решать

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

  1. 1

    Загрузите геоданные в geopandas и приведите всё к единой метрической системе координат (например UTM/EPSG:32637 для Москвы) перед любыми расчётами расстояний.

  2. 2

    Сопоставьте геометрию маршрута с рёбрами графа: буфер вокруг линии маршрута и пространственный join либо полноценный map-matching по графу (цепочка ближайших связных рёбер).

  3. 3

    Сохраняйте порядок участков (arc_sequence) и проверяйте связность подобранных рёбер — маршрут должен получаться непрерывной цепочкой.

  4. 4

    Визуализируйте исходный маршрут и подобранные рёбра на одной карте и опишите масштабируемый пайплайн под новые данные того же формата.

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

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

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

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

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

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

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

08 / следующий шаг

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

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