Всем привет!

Меня зовут Сергей Коньков — я архитектор данных в компании Business reports & Data.
Данная статья рассказывает о возможностях использования гео-аналитики и машинного обучения в розничной компании и основана на реальном проекте нашего клиента — большой сети салонов красоты. Здесь не будет много кода и технических деталей, внимание будет уделено обзору технологий, их применению и интеграции.

Задача


Есть активно развивающаяся компания в сфере услуг. Компания открывает ежемесячно несколько салонов красоты преимущественно в торговых центрах (ТЦ).

Стоит задача — выбор лучших мест для открытий, сокращение времени и затрат на принятие решения.

Примерный план реализации


  1. Получим данные о торговых центрах, которые могут нам помочь в оценке привлекательности мест;
  2. Попробуем найти связь между полученными данными и результатами работы салонов в тех ТЦ, где компания уже работает;
  3. Создадим методику оценки нового ТЦ на привлекательность;
  4. Создадим модель машинного обучения для вычисления этой оценки по тем торговым центрам, где еще нет нашей компании;
  5. Создадим инструменты автоматизации работы специалистов по подбору мест для открытий розничных точек;

Собираем гео данные


Итак, какие данные о торговых центрах смогут помочь.

Размышляем:

  • Например в каком районе и городе он находится — Москва или Самара, Барвиха или Выхино;
  • Размер ТЦ — сколько там магазинов, ресторанов, салонов всего?
  • А какие это магазины — строительных материалов или модные бутики?
  • А есть ли там конкуренты? А сколько их там? А какие именно из них?
  • Может быть есть сведения о количестве посетителей в ТЦ?
  • А рядом есть другие ТЦ? В радиусе 5 км ни одного или два лучше этого через дорогу;
  • А что вообще еще есть рядом? Может большой бизнес центр с множеством офисных сотрудников или спальный район?

Так примерно думает «опытный» человек, которому нужно определится с местом для бизнеса. Продвинутый человек имеет в своем распоряжении еще и аналитика, который в Excel или SQL сможет сделать грамотное обоснование на основе всех этих факторов.

На сбор и обработку этих данных нужно время. Попробуем оптимизировать это.

Где взять данные? Посмотрим на гео сервисы, которые есть на рынке. Основные это: Яндекс Карты, 2ГИС, Google Maps. После сравнения возможностей мы остановились на 2ГИС.
Основные преимущества сервиса по нашему мнению: точность, актуальность и полнота данных, удобный API. Но можно использовать и решения других производителей.

Доступ к API 2ГИС можно получить через форму на сайте сервиса. Доступ платный и зависит от количества запросов, отдельно необходимо будет оговорить в договоре с 2ГИС способы использования данных, то есть для чего мы их запрашиваем, что будем с ними делать и так далее.

Расскажу немного как работать с API 2ГИС.

Сервис позволяет выбрать места размещения организаций на определенной территории (город, район, улица и так далее). В качестве фильтра можно указать Рубрику организации (вид деятельности). Сделаем запрос на поиск всех организаций с рубрикой Торговые центры. В результате получим список ТЦ на территории. В ответе для каждого ТЦ так же придут так называемые идентификаторы домов — building_id. Сделаем запрос всех организаций находящихся в здании с одним из полученных building_id. Получим список всех организаций в данном ТЦ включая их названия и рубрики.



Таким образом мы получили список всех магазинов, салонов, ресторанов и прочих организаций в конкретном торговом центре. Такой запрос мы сможем сделать по каждому интересующему нас ТЦ.

Инфраструктура проекта


Для реализации мы выбрали облако MS Azure. Там есть все что нам понадобится, а именно:


Все данные, полученные из 2ГИС мы будем загружать в таблицы базы данных SQL Azure.
Все скрипты для загрузки мы поместить в пакеты Фабрики данных Azure. Это позволит нам загружать данные массово (например по всем торговым центрам конкретного города) по расписанию для поддержания актуальности данных, а так же по запросу для конкретного необходимого ТЦ.

Пример заданий интеграции:



Работаем с данными


Можем приступить к поиску зависимости между данными из 2ГИС и реальными результатами работы салонов. Для этого загрузим в хранилище данные о торговых центрах, где компания уже присутствует. Туда же загрузим данные о работе салонов из ERP — выручка, количество чеков, маржу, количество посетителей.

На этом этапе подключаем к проекту Data Science специалистов. Для них мы разворачиваем OLAP куб на основании собранных данных и среду Azure Machine Learning.

Проведенные датасайнтистами исследования показали что на результаты работы салонов (выручку и маржинальность) наиболее сильно влияют следующие факторы:

  • Город где находится торговый центр;
  • Количество магазинов в ТЦ;
  • Число конкурентов в ТЦ;
  • Наличие определенных брендов;
  • Количество других ТЦ в радиусе 2 км;

Для оценки привлекательности ТЦ введем шкалу от 1 до 10. Для прозрачности оценки привлекательности нам необходимо показать пользователю какие именно факторы и как повлияли на итоговую оценку. Вот пример оценки одного из торговых центров:



Подключаем машинное обучение


Рассчитаем данную оценку для всех торговых центров где уже работает компания. Полученный набор данных (факторы + оценка) будем использовать для создания модели машинного обучения. В конечном итоге модель должна определять оценку привлекательности торгового центра для открытия нового салона.

Пример создания эксперимента в Azure ML Studio:



На рисунке показан простейший пример создание эксперимента машинного обучения на основе модели линейной регрессии.

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

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

Автоматизируем работу сотрудников отдела подбора помещений


Для начала создадим аналитические отчеты.

Например нам необходимо оценить возможность открытия нескольких розничных точек в городе N.
Нас интересует следующие данные:

  • Все торговые центры в городе (количество магазинов в каждом, количество конкурентов, наши салоны);
  • Все торговые центры в городе где есть конкуренты, но нет нас;
  • Все конкуренты в городе (в каких торговых центрах представлены, сколько всего розничных точек);

Вот пример одного из отчетов сделанных в MS Power BI. Источниками данных выступает наше хранилище данных на MS Azure.



Далее сделаем инструмент для вывода собранных данных о торговых центрах на карту. В этом нам поможет уже нам знакомый API 2ГИС. В веб приложении создаем виджет карт и нанесем на него маркеры с оценками торговых центров. Пример (реальные данные изменены):



Подведем итоги


Итак, мы сделали следующее:

  • Построили процесс получения данных о торговых центрах из сервиса 2ГИС.
  • Нашли связь между полученными данными и результатами работы салонов в тех ТЦ, где компания уже работает.
  • Создали методику оценки торговых центров на привлекательность.
  • Разработали отчетность и инструменты для автоматизации работы специалистов по подбору мест для открытий розничных точек.

Посмотрим на архитектуру решения которая у нас получилась.



В следующей части статьи я планирую рассказать как сделать бота-геоаналитика для помощи сотрудникам отвечающим за подбор помещений.

Спасибо за внимание!

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