Как предсказать время доставки в условиях неопределенного маршрута

Клиент: транспортная компания Gut https://gutlogistic.ru/

Запрос: сделать автоматизацию, позволяющую прогнозировать время, которое потратит водитель на доставку заказов от компании Hoff в Москве, Санкт-Петербурге и Московской области.

С клиентом мы работаем давно и кейс про него уже как-то писали (ссылка)

Несколько лет назад поступила новая задача мы её успешно решили, и наш аналитик Ольга Гончаровская собрала информацию о том, как мы решали задачу и о том, как это работает сейчас.

Задачи из области «вечный вопрос логистики и покупателя»:

  1. Покупателям нужно, чтобы их информировали о времени доставки, чтобы панировать своё время
  2. Службе логистики нужна информация для расчета маршрута

Чего хочет наш клиент:

  1. Сделать так чтобы, исходя из состава заказа и адреса, прогнозируемое время доставки выдавалось автоматически. При этом время должно отличаться от фактического не более, чем на 20 минут. И эта картина должна быть характерна для 100% заказов

1 этап прогноза. Услуги, дистанция и маршрут.

Можно отметить, что Ольгу, как аналитика, всегда интересовала сфера логистики и хотелось окунуться в нее поглубже. В арсенале было 2 подходящие модели: CatBoost и множественная линейная регрессия.

Немного о данных:

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

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

  1. Количество услуг по группам: доставка, подъем, сборка, вывоз
  2. Наличие лифта
  3. Этаж
  4. Интервал доставки, указанный клиентом
  5. Дистанция между адресами
  6. Фамилия водителя

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

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

И Ольга приступила к сбору боевых данных для прогноза времени доставки на следующий день. И столкнулась с проблемой: оказывается, порядок объезда точек не закреплен в маршруте и невозможно использовать такой показатель, как дистанция между точками. Нужно отметить, что у дистанции был наибольший вес среди всех показателей (44%), соответственно, результат на 44% зависит от расстояния между точками. Что логично, т.к. основное время водитель тратит на переезд между адресами.

2 этап прогноза. Чем заменить дистанцию

Совместно с заказчиком приступили к поиску альтернатив. Были использованы:

  1. «Ручная модель прогноза». Было рассчитано среднее время, которое приходится на каждую услугу, результат складывался из объемов услуг для каждого заказа. Точность 60-65%, но наблюдались существенные отклонения при увеличении количества товаров в заказе.
  2. Разделение на время доставки и время на адресе. Точность так же не выросла.
  3. Множественная линейная регрессия (MLR) с использованием корректирующих коэффициентов объемов услуг. – точность 68-72%, но также наблюдались выбросы.

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

3 этап. Зоны и кластеризация заказов

В декабре 2023 года заказчик разделил территорию Москвы и ближнего Подмосковья на 99 зон. Это позволило вывести прогноз на новый уровень, т. к. заказы на маршруте в основном находятся в одной зоне. Соответственно расстояния между адресами сравнимы между собой, а интенсивность движения зависит от зоны.

На сегодняшний день используется несколько моделей CatBoost. Рассчитываются модели отдельно для заказов, включающих услуги по подъему и сборке крупногабаритных товаров, модели отдельно по каждому водителю, используется кросс-валидация в процессе обучения, анализируются и исключаются при необходимости выбросы.

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

Итоги для заказчика:

1) В личном кабинете заказчика появилась страничка с отображением ориентировочного времени доставки заказа.

Как предсказать время доставки в условиях неопределенного маршрута, изображение №1

2) Возросла точность прогнозирования по заказам с 44% до 82% по отдельным заказам и с 16% до 80% по маршруту в целом.

Как предсказать время доставки в условиях неопределенного маршрута, изображение №2

3) Снизилось отклонение факта от плана с 18 минут в среднем в 4 квартале 2022 г., до 14 минут в 3 квартале 2024 г.

Как предсказать время доставки в условиях неопределенного маршрута