Аркадий Часовских
смог всё посчитать
Качество прогноза в навигаторе
В январе мы выпустили новую модель прогноза времени в пути для навигатора 2ГИС, а потом занимались оптимизацией его качества. Зачем мы это делали? Какое качество необходимо? Такое, чтобы быть лучше конкурентов. Придумали, как это посчитать, и делимся.
Точность прогноза один из главных показателей качества работы навигатора. Попросту говоря, никто не любит опаздывать. Прогноз должен сбываться, количество ошибок в предсказании должно быть как можно меньше.

В прошлом году мы рассказывали, как изменили подход к расчёту прогноза, а потом продолжали улучшать предсказания времени в пути. Сейчас расскажем о том, как оценивали эту работу.
Как работает прогноз в навигаторе
Когда водитель запускает поездку по навигатору, приложение строит маршрут и отправляет запросы в API — удалённые сервисы собирают информацию о пробках, перекрытиях, знают историю поездок по выбранному пути. Анализируя эти факторы, они делают прогноз и считают. Во время одной поездки навигатор делает тысячи таких запросов: алгоритмы учитывают, как меняется скорость и дорожная ситуация и корректируют время в пути.
О сером блоке в левом нижнем углу — в следующем разделе
Как мы оценили качество прогноза
Оценка времени на поездку при построении маршрута и фактическое время, как правило, отличаются, потому что идеальных алгоритмов ещё не придумали. В одном из прошлых Доставили мы уже объясняли, что среднюю абсолютную ошибку (MAPE) можно посчитать, если иметь множество отклонений прогнозного времени (ETA, Estimated Time of Arrival) от реального (RTA, Real Time of Arrival).
Та самая формула →
$$MAPE = \frac{1}{n}\overset{n}{\underset{i=1}{\Sigma}}\frac{|RTA_i-ETA_i|}{RTA_i}$$
Данные для оценки качества прогноза получал приёмщик статистики, который мы собрали из очереди Kafka и потокового фреймворка Apache Spark.

Приёмщик статистики дублирует приложение и принимает запросы от сервисов. Мы испытали его на собственном навигаторе, а потом попробовали и на других.
Что получилось
Для сравнения мы выбрали самого крупного российского конкурента 2ГИС. Проводили этот замер в течение месяца по разным городам присутствия 2ГИС на реальных пользовательских запросах, одинаковых для обоих сервисов. Отдельно сравнили Новосибирск и Москву — как «домашние» города для 2ГИС и конкурента.

Сравнение было выполнено на десятках тысяч случайных пользовательских маршрутов продолжительностью от 4 до 20 минут. Обязательным условием было отправление из точки А не дальше 50 метров от исходной позиции пользователя и прибытие в точку Б в радиус 50 метров.

Получился такой МАРЕ:
Чем меньше показатель, тем выше качество прогноза. MAPE означает, на сколько процентов в среднем прогнозное время в пути отличается от реального. В Новосибирске, к примеру, навигатор 2ГИС в среднем делает на 1,48 п.п. меньше ошибок. То есть качество прогноза выше.