logo

Прогнозирование цен
для сервиса аренды авто

Помогли владельцу бизнеса по прокату авто сократить время простоя и увеличить прибыль.
Frame 2131327276.png
1 (14).png
ИндустрияТуризм
Тип бизнесаB2C-услуги
РегионЯпония
ИндустрияТуризм
Тип бизнесаB2C-услуги
РегионЯпония

Клиент

Сеть проката автомобилей в Японии. По сравнению с конкурентами – компания среднего масштаба, но работает по всей стране и имеет собственный сервис онлайн-бронирования.

Главный фактор при выборе проката – цена. Чтобы реагировать на изменение спроса и предложения в реальном времени, сервисы проката автомобилей применяют динамическое ценообразование.

Владелец понимал: в этой индустрии побеждает тот, кто держит цену релевантной рынку – чуть ниже, чем у конкурентов, но достаточной, чтобы покрыть целый ряд бизнес-расходов и приносить стабильную прибыль сверху.

Как найти этот тонкий баланс и верно рассчитать цену? Как это автоматизировать? Ведь пользователи сравнивают стоимость буквально в несколько кликов, поэтому у бизнеса нет запаса времени для ручных корректировок. Оптимальный подход — использовать искусственный интеллект.

Вызовы

В 2020 году владелец обратился к нам. На старте у клиента не было четкого понимания, какие методы анализа данных подойдут для задачи, но было ясно, что решение лежит в области машинного обучения.

Какие метрики предсказывать?

С этим было сложнее. Базовая цена на аренду авто складывается из цели поездки, класса машины, сезонности, географии, сроков бронирования. Причем факторы коррелируют друг с другом.

Если учитывать их все, понадобится обработать очень много данных. Стоимость разработки такого алгоритма улетит в космос. Как решить?
1 (14).png

Вариант #1

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

female-driver-posing-electric-car (1) (1).jpg

Вариант #2

Построить прогноз на основе истории спроса и внешних факторов – погоды, праздников, сезона. Такой подход дешевле, а его точности хватит, чтобы принимать взвешенные решения.

Остановились на этом варианте и выбрали две модели: первая – история спроса и цен для разных типов автомобилей, вторая – история погоды в Японии.

Как обучали ML-модель:

Шаг 1. Данные компании клиента

Сначала проанализировали, что происходило у клиента в последние 12 месяцев: когда и какая машина простаивала, когда ее брали в аренду, какая была базовая цена и итоговая стоимость. Обработали все в формате .csv и записали в таблицы MySQL. От них будем отталкиваться при формировании прогнозов.

Для записи данных добавили вспомогательные таблицы, чтобы сопоставить японские названия с теми, которые используются в MySQL.

Шаг 2. Исторические данные конкурентов

Владелец предложил ориентироваться на двух агрегаторов японского рынка: Orix и Niconico. Мы согласились: обе базы крупные, они покажут точное отражение рыночной ситуации плюс дадут переменные (сезонность, экономическая составляющая, характеристики разных типов машин).

– Сравнили исторические данные агрегаторов с данными о сервисах аренды авто в PostgreSQL: цены, расстояние и прогнозы других обученных моделей. Использование двух БД – частая практика для ML-проектов (в первом шаге мы упоминали MySQL). Так мы разделили потоковые и аналитические нагрузки, чтобы ускорить расчеты.

– Информацию брали за те же последние 12 месяцев, потому что устаревшие данные исказят картину и сделают прогноз неточным.

– Синхронизировали данные клиента, агрегаторов и внутренние аналитические таблицы. Это и будет нашей обучающей выборкой для тренировки моделей.

Шаг 3. Обучение и тестирование алгоритма

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

– Для обучения использовали модель XGBoost, свойства подбирали методом перекрестной проверки:
• Для моделей «цена» и «спрос» – по компании, типу автомобиля, продолжительности брони, состоянию рынка на момент аренды.
• Для модели «погода» – по локации, погоде, сезонности. На этапе обучения брали исторические погодные данные, а в рабочей версии система подставляет свежие прогнозы из внешнего API, чтобы рассчитать ожидаемый спрос на ближайшие дни.

– Для обучения взяли 80% данных, остальное оставили для проверки качества прогнозов. Проанализировали результаты, сравнили с фактическими цифрами. Выявили причины отклонений в прогнозах и скорректировали модель, повысив ее точность.

Технологии

technology
Бэкенд

Python

technology
База данных

MySQL

technology
База данных

PostgreSQL

technology
Библиотека

XGBoost

technology
Библиотека

Scikit-Learn

technology
Брокер сообщений

NATS

technology
Мониторинг

Grafana

technology
Инфраструктура

Docker

Результат

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

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

На работу ушло 11,5 месяцев:

  • В первые два месяца собирали исторические данные, проводили анализ. Получили подготовленный набор данных и список ключевых факторов, влияющих на цену.
  • Следующие четыре с половиной месяца потратили на обучение модели динамического ценообразования, разработку MVP и запуск пилотных тестов на трех филиалах в Токио.
  • Пять месяцев ушло на внедрение модуля и адаптацию под все филиалы.

Проект потребовал времени, но результат оправдал ожидания владельца бизнеса: пользователи отмечают удобство и справедливость цен. В результате парк простаивает реже, а бронирования растут.

на 8%

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

grade
на 25%

снизился простой автопарка.

grade

Напишите нам

/ 5000

Что происходит дальше:

  • Мы получаем запрос, обрабатываем его в течение 24 часов и связываемся по указанным вами e‑mail или телефону для уточнения деталей.

  • Подключаем аналитиков и разработчиков. Совместно они составляют проектное предложение с указанием объемов работ, сроков, стоимости и размера команды.

  • Договариваемся с вами о следующей встрече, чтобы согласовать предложение.

  • Когда все детали улажены, мы подписываем договор и сразу же приступаем к работе.