Клиент: транспортная компания Gut https://gutlogistic.ru/
Запрос: сделать автоматизацию, позволяющую прогнозировать время, которое потратит водитель на доставку заказов от компании Hoff в Москве, Санкт-Петербурге и Московской области.
С клиентом мы работаем давно и кейс про него уже как-то писали (ссылка)
Несколько лет назад поступила новая задача мы её успешно решили, и наш аналитик Ольга Гончаровская собрала информацию о том, как мы решали задачу и о том, как это работает сейчас.
Задачи из области «вечный вопрос логистики и покупателя»:
- Покупателям нужно, чтобы их информировали о времени доставки, чтобы панировать своё время
- Службе логистики нужна информация для расчета маршрута
Чего хочет наш клиент:
- Сделать так чтобы, исходя из состава заказа и адреса, прогнозируемое время доставки выдавалось автоматически. При этом время должно отличаться от фактического не более, чем на 20 минут. И эта картина должна быть характерна для 100% заказов
1 этап прогноза. Услуги, дистанция и маршрут.
Можно отметить, что Ольгу, как аналитика, всегда интересовала сфера логистики и хотелось окунуться в нее поглубже. В арсенале было 2 подходящие модели: CatBoost и множественная линейная регрессия.
Немного о данных:
Данные – это состав заказа, позволяющий оценить его объем и выделить такие группы, как доставка кухни, мягкой мебели, прочей мебели, перечень услуг(например, подъем, вывоз, сборка на месте и т.п.), данные о желаемом интервале доставки. Фактическое время выполнения заказа – это разница между стартом заказа в приложении и его финишем. Время старта и финиша отмечают водители, и не всегда эти данные точные.
Уточнив детали у заказчика, Ольга приступила к прогнозу. В качестве переменных были использованы:
- Количество услуг по группам: доставка, подъем, сборка, вывоз
- Наличие лифта
- Этаж
- Интервал доставки, указанный клиентом
- Дистанция между адресами
- Фамилия водителя
В ходе обучения модели пришлось корректировать время, которое отмечали водители, на предмет пересекающихся по времени заказов, заказов, включающих друг друга и заказов, доставленных одному и тому же клиенту на один и тот же адрес.
В ходе обучения модель показывала точность 70-72% в зависимости от периода тестовых данных.
И Ольга приступила к сбору боевых данных для прогноза времени доставки на следующий день. И столкнулась с проблемой: оказывается, порядок объезда точек не закреплен в маршруте и невозможно использовать такой показатель, как дистанция между точками. Нужно отметить, что у дистанции был наибольший вес среди всех показателей (44%), соответственно, результат на 44% зависит от расстояния между точками. Что логично, т.к. основное время водитель тратит на переезд между адресами.
2 этап прогноза. Чем заменить дистанцию
Совместно с заказчиком приступили к поиску альтернатив. Были использованы:
- «Ручная модель прогноза». Было рассчитано среднее время, которое приходится на каждую услугу, результат складывался из объемов услуг для каждого заказа. Точность 60-65%, но наблюдались существенные отклонения при увеличении количества товаров в заказе.
- Разделение на время доставки и время на адресе. Точность так же не выросла.
- Множественная линейная регрессия (MLR) с использованием корректирующих коэффициентов объемов услуг. – точность 68-72%, но также наблюдались выбросы.
Исходя из этого, необходимо исключать выбросы, поэтому были совместно с заказчиком разработаны пороги минимального времени для каждой услуги, заказы, которые занимали меньше порогового значения, исключались из анализа.
3 этап. Зоны и кластеризация заказов
В декабре 2023 года заказчик разделил территорию Москвы и ближнего Подмосковья на 99 зон. Это позволило вывести прогноз на новый уровень, т. к. заказы на маршруте в основном находятся в одной зоне. Соответственно расстояния между адресами сравнимы между собой, а интенсивность движения зависит от зоны.
На сегодняшний день используется несколько моделей CatBoost. Рассчитываются модели отдельно для заказов, включающих услуги по подъему и сборке крупногабаритных товаров, модели отдельно по каждому водителю, используется кросс-валидация в процессе обучения, анализируются и исключаются при необходимости выбросы.
Затем по метрикам точности и среднего отклонения выбирается лучшая модель для каждого водителя и на ее основе строится прогноз.
Итоги для заказчика:
1) В личном кабинете заказчика появилась страничка с отображением ориентировочного времени доставки заказа.
2) Возросла точность прогнозирования по заказам с 44% до 82% по отдельным заказам и с 16% до 80% по маршруту в целом.
3) Снизилось отклонение факта от плана с 18 минут в среднем в 4 квартале 2022 г., до 14 минут в 3 квартале 2024 г.