Data Science в деле: практический кейс анализа данных в бизнесе

Анализ данных и принятие решений на основе фактов – один из ключевых аспектов при построении системы менеджмента в соответствии с  международными стандартами, в частности ISO 9001*. В современном мире нет недостатка в данных. Однако все больше и больше ресурсов требуется, чтобы обработать и представить данные в форме, позволяющей оперативно принимать управленческие решения. Объем информации для анализа растет экспоненциально. 

Каждые два дня люди генерируют столько информации, сколько в общей сложности  удалось сгенерировать  вплоть  до 2010 года

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

Руководители осознают, что  способность быстро реагировать на изменения внешней и внутренней среды сегодня, как никогда, является для их организаций ключевым фактором  успеха.  В качестве стратегической цели они видят построение такой системы управления данными, которая позволит им оперативно принимать не интуитивные, а выверенные решения на основе всестороннего анализа. Это, в свою очередь, невозможно без активного внедрения цифровых технологий и формирования совершенно иной культуры обращения с данными.  Мы, как личности, также  должны  быть готовы меняться в этом направлении. Как в свое время компьютер изменил наше окружение, обязав каждого иметь навыки работы с ПК вне зависимости от рода деятельности, так и технологии анализа данных меняют нашу жизнь сегодня. Уже в ближайшем будущем владение ими на базовом уровне будет являться необходимым навыком для большинства профессий. 

Понимая это, осенью прошлого года я поступил на факультет искусственного интеллекта специализации Data Science академии GeekBrains при Mail.ru. В этой статье на своем примере я хочу показать, что можно освоить в сфере Data Science меньше, чем за  полгода практически с нуля, не имея специальной подготовки в области программирования.

ШАГ 1. Постановка задачи

В качестве исходной задачи мы имеем предприятие – производитель куриных яиц, одно из крупнейших на юге России. Предприятие активно работает над построением производственной системы на принципах бережливого производства, в чем уже достигло определенных успехов.  Потери от несоответствий продукции сокращены до уровня, при котором дальнейшие улучшения потребуют инвестиций, размер которых превысит потенциальный экономический эффект. Между тем, есть процессы за рамками производства, ошибки в которых оборачиваются более существенными потерями. Например, просчеты в прогнозировании и определении  цен реализации:

2 млн руб./год  убытка на 1 копейку снижения цены реализации

Для ведения эффективных переговоров с оптовыми потребителями службе маркетинга и сбыта необходимо обладать оперативной информацией о ценах в рознице в разрезе регионов, торговых сетей, категорий продукта. Фиксированной оптовой цены не существует, каждая поставка - это предмет отдельных договоренностей. Таким образом, информация о ценах должна актуализироваться ежедневно. Кроме того, руководству необходимо иметь помесячный прогноз по ценам реализации на год для планирования деятельности таким образом, чтобы пик производства приходился на период максимальной цены, а простои и профилактические работы – на период сезонного снижения цен. 

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

ШАГ 2. Сбор данных (Data Mining)

Для того чтобы анализировать какие-то данные, необходимо эти данные собрать. Понимание источника данных и обеспечение достоверности данных являются важными факторами Data Science. Если данные собраны в формате, не отвечающем постановке задачи, или (что хуже) собраны некорректные данные, дальнейший анализ либо затруднителен, либо вовсе бесполезен.


В связи с мерами по предотвращению распространения COVID-19 бизнес в целом, а  продажа продуктов питания в частности, все больше стал уходить в online, и это для решения нашей задачи стало положительным фактором. Крупные ритейлеры (Лента, METRO, O’KEЙ, Перекресток, ВкусВилл) имеют свои интернет-магазины, появились специальные сервисы и платформы по доставке продуктов питания на дом, крупнейшая из которых SberMarket.ru. Продукты питания уже можно заказать через Ozon. Кроме того, торговые точки публикуют информацию о своих акциях на платформах-агрегаторах (например, edadeal.ru).

Собственно эти и подобные им ресурсы и представляют первоочередную цель для датамайнера (специалиста, занимающегося сбором данных, от англ. data mining – обнаружение и сбор данных). Как показал опыт нашей работы, для Москвы, Московской области и Санкт-Петербурга проблем с количеством данных нет, в то время как для регионов пришлось потрудиться, чтобы найти необходимые данные. Однако при наличии определенной сноровки и усердия,  количественные данные можно получить даже с картинок -  сканов рекламных объявлений, которые торговые сети размещают на специализированных ресурсах, например, proshoper.ru.

Для сбора данных в сети («веб-скрейпинга» - производное от англ. Scraping -  «соскребание» данных с открытых сайтов) существуют так называемые пауки (Spiders) – поисковые роботы, которые сканируют сеть по указанным доменам и добывают данные. С точки зрения соблюдения законности, отмечу, что все собираемые данные являются открытыми, они доступны обычным пользователям при  просмотре страниц через браузер. Скрейпинг – это лишь сбор того, что мы можем своими глазами увидеть на сайте и скопировать к себе руками, разве что пауки это делают в автономном режиме и гораздо быстрее. Своих пауков я создал на языке Python с использованием специализированных библиотек:  Scrapy, Selenium. Они отправляются на работу каждую ночь. 

За два часа пауки получают около 4000 единиц данных

ШАГ 3. Первичная обработка данных

Задача паука - собрать данные и сохранить их в базу данных. База данных может использоваться любая, в моем случае – это была база MongoDB. В угоду быстродействия паук не проводит глубокую сортировку  данных. Собранные данные являются неструктурированными, их необходимо дополнительно обработать, отсеять данные, имеющие аномальные выборы или пропуски информации.  Для этих целей применялся все тот же Python, но уже с библиотекой Pandas для обработки больших массивов данных, в сочетании с библиотеками  MatplotLib и Seaborn – для визуализации результатов анализа и построения графиков. 

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


ШАГ 4.  Анализ и визуализация данных

Одним из наиболее мощных и доступных (бесплатно для базовых функций) инструментов для анализа и визуализации данных является Microsoft Power BI (BI от Business intelligence  - обозначение компьютерных методов и инструментов, обеспечивающих перевод транзакционной деловой информации в человекочитаемую форму, пригодную для бизнес-анализа, а также средства для массовой работы с такой обработанной информацией). 


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

Еще одним преимуществом является возможность (но уже в платной корпоративной версии) публиковать отчеты «в облаке». Таким образом, установив приложение на планшет или смартфон, можно обеспечить постоянный доступ к актуальному отчету для руководства. При этом отчет интерактивный – можно «провалиться» в анализируемый параметр глубже и посмотреть на изменение факторов, от которых зависит его поведение.  Для тех, кто не хочет платить,  есть функция экспорта отчета в pdf-файл. 

ШАГ 5. Предиктивная аналитика

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

Все, что было сделано на предыдущих этапах – это еще не Data Science в полном его понимании. Чтобы считаться таковым, необходимо иметь возможность предсказания цены в будущем.

Для этого в арсенале Data Science существует класс методов предиктивной аналитики (от англ. predict – «прогнозировать/ предсказывать»). Задача этих методов – с  определенной точностью предсказать изменение исследуемого объекта (в нашем случае цены), исходя из данных о его состоянии в прошлом и в зависимости от ряда влияющих факторов.

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

Эти  методы получили название «методы машинного обучения» (Machine Learning).  Но есть одно «но» - точность моделей зависит от количества данных, доступных для их обучения. Данные можно как собирать самостоятельно, так и купить у тех, кто профессионально занимается их сбором и хранением. Именно поэтому, прогнозируя спрос на  большие объемы структурированных данных, уже сегодня их называют «нефтью» будущей экономики.

Как правило, 80 % задач могут быть решены с применением уже существующих готовых алгоритмов и программных пакетов для машинного обучения. Остальные 20 % потребуют изучения математического анализа, теории вероятности, статистики и программирования для того, чтобы создавать собственные модели и адаптировать под собственные нужды  существующие. 
Для решения  задачи прогнозирования цены мы воспользовались готовыми пакетами  Power BI для анализа временных рядов: 

  • ARIMA - интегрированная модель авторегрессии – скользящего среднего;  
  • пакет от MAQ - в основе однослойная искусственная нейронная сеть;
  • пакет TBATS - в основе также авторегрессия, но более адаптированная для анализа временных рядов, имеющих сезонную цикличность.

Пакеты можно бесплатно загрузить после регистрации в Power BI.  

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

  Прогноз цены модели MAQ: 

Прогноз цены модели TBATS:

                                           

Резюме

Имея оперативные данные о ценах реализации и прогноз по изменению цены, руководство  фабрики теперь сможет более эффективно планировать производственно-сбытовую деятельность. Диапазон, в котором с определенной вероятностью прогнозируется  изменение цены, дает основу для дальнейшего построения системы управления рисками с применением  сценарного планирования.  Инструмент Power BI помог также интегрировать  в единое информационное пространство и визуализировать данные о ключевых финансово-производственных показателях фабрики и их изменении во времени. Для этого потребовалось провести ряд настроек, чтобы совместить Power BI с «1С:Предприятие» и с разрозненными отчетами структурных подразделений, которые ранее велись в Excel.  

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

* Примечание: ISO 9001 - международный стандарт, содержащий набор требований к системам менеджмента качества. Текущая версия — «ISO 9001:2015 (ГОСТ Р ИСО 9001-2015) Системы менеджмента качества. Требования».

Автор — Александр Жданкин