Тестовое задание
на аналитика данных
Пиклема

Задание #1
Дано:
Перед тобой упрощенная схема базы данных

telemetry - таблица с телеметрией карьерных самосвалов следующего формата:

где
  • id - номер записи в таблице
  • objectid - идентификатор самосвала
  • time - момент времени
  • sensorid - идентификатор датчика
  • value - значение, которое передал датчик
  • lat, lon - координаты
  • speed - текущая скорость самосвала
objects - таблица, в которой хранится информация о самосвалах:

где
  • id - идентификатор самосвала
  • modelname - модель самосвала
  • enterprise_id - идентификатор предприятия
  • created_at - временная метка создания записи
  • sensors - таблица с описанием датчиков

где
  • id - идентификатор датчика
  • name - наименование датчика
  • tag - тег датчика
  • min_value - минимальное допустимое значение датчика
  • max_value - максимальное допустимое значение датчика
Задание:
Какова вероятность, что из 60 кликнувших пользователей мы получим хотя бы 1 лид?
Задание #2
Дано:
Та же упрощенная схема базы данных
Задание:
Необходимо написать запрос, для вывода уникальных значений по датчику satenum (количество доступных спутников связи) для каждого самосвала с идентификатором из списка [34, 42, 99] за последние двое суток.
Задание #3
Дано:
Та же упрощенная схема базы данных
Задание:
В таблицу с телеметрией собираются данные с датчика уровня топлива в процентах (тег fuel_tank_level). В данной задаче будем считать, что самосвалы в течение последнего часа ездят непрерывно, а значит и уровень топлива постепенно снижается.

Необходимо написать запрос, который для каждого самосвала модели “БелАЗ-75131” вернет 1, если был зафиксирован хоть один случай, когда между двумя последовательными временными точками изменение уровня топлива было более 5%, или вывести 0, если подобной аномалии не было.
Задание #4
Дано:
telemetry.parquet - данные телеметрии

  • objectid - идентификатор самосвала
  • tripid - идентификатор рейса
  • driverid - идентификатор водителя
  • time - время получения данных с датчиков
  • lat, lon - широта и долгота самосвала в текущий момент времени
  • x, y, - координаты самосвала на плоскости (https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system)
  • speed - данные с датчика скорости
  • height - высота в текущий момент времени
  • engine_speed - обороты двигателя
  • fuel_cons - мгновенный расход топлива
  • fuel_tank_level - уровень топлива в баке (в процентах)
  • weight_dynamic - мгновенное значение веса с датчика (растет, пока самосвал грузит, колеблется вокруг константы, когда едет загруженный и обнуляется при разгрузке и движении без груза обратно на погрузку)
  • weight - значение веса груза, который перевез самосвал за текущий рейс (константа для каждого рейса. Даже на той части рейса, где самосвал ехал пустым обратно на погрузку значение этого параметра будет равно весу груза)
  • DQ_vertical_bump - вертикальное ускорения
  • accelerator_position - позиция педали газа
  • w_fl - ?

Пропуски в колонках fuel_tank_level и weight_dynamic обусловлены тем, что эти датчики собираются с меньшей дискретностью (условно, раз в 10 секунд, а не раз в секунду). При необходимости, можно восполнить Nan значения последним определенным значением (т.е. [1, 2, nan, 3, nan, 4, ...] -> [1, 2, 2, 3, 3, 4, ...])

weather_hourly.parquet - почасовая погода на карьере. Значения колонок понятны из их названий.

Задание:
1. Отобразить на графике все местоположения самосвалов из исходных данных (предварительно убрав очевидные выбросы по координатам) = карта карьера (пока некорректная из-за ещё некоторых проблем с координатами)

2. Обнаружить самосвал(ы), для которых всё ещё есть проблемы с координатами (обозначить их идентификаторы)

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

4. Нарисовать корректную карту карьера (если удалость определить, как сделать чистку)

5. При необходимости, произвести чистку по другим колонкам (препроцессинг для дальнейшего обучения модели)

6. Предположить, что обозначают значения колонки w_fl (путем анализа имеющихся данных) - ответ написать в текстовом поле и обосновать
Задание #5
Дано:
Представьте, что вы аналитик в крупном интернет-магазине. За последний месяц факт продаж оказался на 15% ниже прогноза и вам необходимо выяснить, в чем причина.
Задание:
1. Все пункты делаются на данных, оставшихся после чистки в Задании 1. Правильных ответов (по числам) нет, т к препроцессинг может отличаться. Нам интересно увидеть, как Вы это делаете.

2. Вывести средние значения параметров ['hdop', 'speed', 'engine_speed', 'DQ_vertical_bump', 'height'] по самосвалам

3. Построить гистограмму суммарных расстояний за каждый рейс.

4. Вывести таблицу средних скоростей самосвалов за каждый час суток (формат: колонки - час суток, строки - самосвалы, в ячейках - средняя скорость)

5. Выбрать по одному рейсу для каждого самосвала. Для каждого рейса: нарисовать его на общей карте карьера, нарисовать на одном графике кривую изменения скорости от времени и высоты от времени (шкалы должны быть на разных осях).

6. Присоединить данные погоды к данным телеметрии
Задание #6
1. Обучить модель для предсказания значений скорости самосвала (колонка speed)

2. Можно (и даже нужно) генерировать дополнительные фичи.

3. Выполнить необходимые (на Ваш взгляд) преобразования датасета.

4. Выбрать метрику(и) для оценки качества модели, объяснить причину выбора данной метрики

5. Обучить несколько моделей и сравнить их. Интерпретировать результаты.
  • готовишься к СОБЕСАМ на продуктового аналитика?
    Мой онлайн-интенсив по подготовке к собеседованиям поможет тебе освоить навык прохождения всех этапов собеседования и получить оффер на 30% больше и в 2 раза быстрее
    Узнать подробнее
хочешь поделиться решением или заданием с собеседования?

Оставь свои контакты через форму, и я свяжусь с тобой в течение 24 часов
© No Data No Growth, 2024