Продолжаем улучшать построение маршрутов и их качество. Осенью рассказывали опрогнозе пробок в 2ГИС. Тогда мы смогли значительно уменьшить количество ошибок в предсказании времени, которое потребуется для проезда по маршруту. Мы пошли дальше и изучили миллионы поездок, чтобы прогноз стал ещё точнее.
Каждый маршрут в 2ГИС — это несколько разных участков дороги, которые соединены между собой. И время в пути — это суммарное время, которое понадобится, чтобы проехать каждый из этих участков.
Например, участок в 100 метров с ограничением скорости 40 км/ч машина проедет примерно за девять секунд. Но это будет только на прямой дороге без других машин, без пешеходных переходов, светофоров, ям и других препятствий. Так что в реальной жизни водитель может проехать этот участок быстрее или медленнее. В таком случае на каждом участке дороги будет возникать ошибка — положительная или отрицательная. Она будет незначительной на каждом участке, но если посмотреть на весь маршрут целиком, то все такие ошибки сделают прогноз неточным.
Что сделали
Чтобы избежать этой проблемы, мы внедрили алгоритм машинного обучения. Он анализирует маршрут, дорожную обстановку, предыдущие поездки пользователя и корректирует расчёты времени в пути так, чтобы уменьшить подобные ошибки.
Алгоритм учитывает точки отправления и прибытия, время суток, пробки и много других факторов — вплоть до того, кто за рулём: таксист или простой водитель. А какая разница? 🤔Они отличаются поведением: таксисты намного реже делают остановки на маршруте, им не надо искать парковку — для них прогноз строить проще. Обычные водители делают куда больше остановок — купить кофе, заехать на заправку или просто остановиться на обочине, чтобы позвонить. В точке назначения им приходится искать парковку — это прогнозировать ещё сложнее.
В итоге алгоритм выдаёт для каждого маршрута собственную корректировку времени. Так мы улучшили соотношение времени, которое мы предсказали пользователю, ко времени, которое он фактически потратил на дорогу.
Новый алгоритм мы протестировали на миллионах поездок и обучили его для всех городов в 2ГИС. При этом он непрерывно обучается, потому что открываются новые дороги, меняются ограничения скорости, появляются новые знаки и светофоры — он должен учитывать всё, чтобы качество предсказания времени было наилучшим.
Что получилось
Наш метод позволил сократить ошибку предсказания времени в пути примерно на 30%. А также уменьшил количество «прыжков» времени в процессе движения — это когда 2ГИС изначально посчитал одно время прибытия, а по мере движения оно сильно изменилось. Теперь таких ошибок стало меньше, а пользователи могут ещё смелее доверять прогнозу времени в навигаторе.
Релиз шёл в два этапа — после каждого число ошибок прогноза начинало резко снижаться. Вертикальная ось — коэффициент MAPE, показывающий долю средних абсолютных ошибок времени прогнозирования
Нажимая кнопку «Комментировать», вы принимаете условия Лицензионного соглашения и даёте ООО «ДубльГИС» согласие на обработку персональных данных на условиях и в целях, определённых «Политикой конфиденциальности».