Всем привет!
Меня зовут Сергей Коньков — я архитектор данных в компании Business reports & Data.
Данная статья рассказывает о возможностях использования гео-аналитики и машинного обучения в розничной компании и основана на реальном проекте нашего клиента — большой сети салонов красоты. Здесь не будет много кода и технических деталей, внимание будет уделено обзору технологий, их применению и интеграции.
Задача
Есть активно развивающаяся компания в сфере услуг. Компания открывает ежемесячно несколько салонов красоты преимущественно в торговых центрах (ТЦ).
Стоит задача — выбор лучших мест для открытий, сокращение времени и затрат на принятие решения.
Примерный план реализации
- Получим данные о торговых центрах, которые могут нам помочь в оценке привлекательности мест;
- Попробуем найти связь между полученными данными и результатами работы салонов в тех ТЦ, где компания уже работает;
- Создадим методику оценки нового ТЦ на привлекательность;
- Создадим модель машинного обучения для вычисления этой оценки по тем торговым центрам, где еще нет нашей компании;
- Создадим инструменты автоматизации работы специалистов по подбору мест для открытий розничных точек;
Собираем гео данные
Итак, какие данные о торговых центрах смогут помочь.
Размышляем:
- Например в каком районе и городе он находится — Москва или Самара, Барвиха или Выхино;
- Размер ТЦ — сколько там магазинов, ресторанов, салонов всего?
- А какие это магазины — строительных материалов или модные бутики?
- А есть ли там конкуренты? А сколько их там? А какие именно из них?
- Может быть есть сведения о количестве посетителей в ТЦ?
- А рядом есть другие ТЦ? В радиусе 5 км ни одного или два лучше этого через дорогу;
- А что вообще еще есть рядом? Может большой бизнес центр с множеством офисных сотрудников или спальный район?
Так примерно думает «опытный» человек, которому нужно определится с местом для бизнеса. Продвинутый человек имеет в своем распоряжении еще и аналитика, который в Excel или SQL сможет сделать грамотное обоснование на основе всех этих факторов.
На сбор и обработку этих данных нужно время. Попробуем оптимизировать это.
Где взять данные? Посмотрим на гео сервисы, которые есть на рынке. Основные это: Яндекс Карты, 2ГИС, Google Maps. После сравнения возможностей мы остановились на 2ГИС.
Основные преимущества сервиса по нашему мнению: точность, актуальность и полнота данных, удобный API. Но можно использовать и решения других производителей.
Доступ к API 2ГИС можно получить через форму на сайте сервиса. Доступ платный и зависит от количества запросов, отдельно необходимо будет оговорить в договоре с 2ГИС способы использования данных, то есть для чего мы их запрашиваем, что будем с ними делать и так далее.
Расскажу немного как работать с API 2ГИС.
Сервис позволяет выбрать места размещения организаций на определенной территории (город, район, улица и так далее). В качестве фильтра можно указать Рубрику организации (вид деятельности). Сделаем запрос на поиск всех организаций с рубрикой Торговые центры. В результате получим список ТЦ на территории. В ответе для каждого ТЦ так же придут так называемые идентификаторы домов — building_id. Сделаем запрос всех организаций находящихся в здании с одним из полученных building_id. Получим список всех организаций в данном ТЦ включая их названия и рубрики.
Таким образом мы получили список всех магазинов, салонов, ресторанов и прочих организаций в конкретном торговом центре. Такой запрос мы сможем сделать по каждому интересующему нас ТЦ.
Инфраструктура проекта
Для реализации мы выбрали облако MS Azure. Там есть все что нам понадобится, а именно:
- Хранилище данных — База данных SQL Azure;
- ETL инструмент для интеграции — Фабрика данных;
- OLAP — Службы Azure Analysis Services;
- Сервис ML — Azure Machine Learning;
- Движок для разработки ботов — Служба Azure Bot (он понадобится на во второй части статьи);
Все данные, полученные из 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ГИС.
- Нашли связь между полученными данными и результатами работы салонов в тех ТЦ, где компания уже работает.
- Создали методику оценки торговых центров на привлекательность.
- Разработали отчетность и инструменты для автоматизации работы специалистов по подбору мест для открытий розничных точек.
Посмотрим на архитектуру решения которая у нас получилась.
В следующей части статьи я планирую рассказать как сделать бота-геоаналитика для помощи сотрудникам отвечающим за подбор помещений.
Спасибо за внимание!
Если кого-то заинтересуют технические детали реализации отдельных компонентов решения, то я с радостью отвечу на вопросы в комментариях или в личном сообщении.
nizhurovich
Спасибо.
Но мне кажется это слишком примитивным подходом — вы не учли данные из CRM и CJM, чтобы простроить точки контакта. Я не знаю какая у вас бизнес модель, но имхо данных для обучения должно быть больше, и тогда уже линейная регрессия будет решением таким себе.
А вот архитектура сбора интересная, ради этого даже схороню пост.
mongohtotech Автор
Спасибо за комментарий. Соглашусь, что подход оценки торгового центра достаточно прост и не учитывает множества факторов, которые имеют место быть в рознице. Однако, как я отметил в начале статьи, данный материал призван дать читателю обзор технологий и их интеграции.
Думаю поняв эти принципы читатель может использовать другие необходимые данные и строить более сложные решения.