Под капотом Process Mining: графовая аналитика для анализа бизнес-процессов

PM4Py Data Science примеры курсы обучение, PM4Py Google Colab пример, PM4Py Process Mining Примеры курсы обучение, процессная аналитика, аналитика бизнес-процессов средствами Data Science, Data Mining Process Mining, обучение анализу данных, графовая аналитика больших данных, графовые алгоритмы в бизнесе, Школа Больших Данных Учебный Центр Коммерсант

Сегодня рассмотрим тему анализа и оптимизации бизнес-процессов средствами графовой аналитики больших данных. Как устроены информационные системы класса Process Mining, где еще применяются эти идеи и другие приложения теории графов в бизнесе на примере Python-библиотеки PM4Py.

Что такое Process Mining

Чтобы понять, как выполняется процесс, бизнес-аналитик строит его схему в виде подробной EPC или BPMN-диаграммы, которая представляет собой направленный граф действий с логическими операторами. Именно эта идея – представления графа событий пользовательского поведения по логам информационных систем лежит в основе процессной аналитики (Process Mining, PM). Помимо анализа логов и прикладных информационных систем типа СЭД, ERP, CRM и пр., решения Process Mining также включают некоторые возможности BI-продуктов, например, визуализация выявленных трендов в данных и формирование рекомендаций.

В отличие от Data Mining, PM-системы сфокусированы не на семантических взаимосвязях данных, а на представлении их в виде процессов. На вход подаются транзакционные данные по объектам управленческого учета: заданиям, заказам, заявкам и пр. Примечательно, что процессная аналитика использует данные для анализа бизнес-процессов без классического анализ самих данных. Process Mining не ищет низкоуровневые закономерности в исходных данных и не пытается вырабатывать управленческие решения на их основе, а пытается определить оптимальный путь выполнения процесса по событиям пользовательского поведения, используя методы выборки данных для построения модели процесса по наиболее представительным сценариям в бизнес-процессе. Определяются связи между шагами процесса, отклонения от «успешного сценария», причины этих отклонений и их влияние на результат, а также анализируется эффективность процесса и выявляются его узкие места.

Примерами PM-систем являются Proceset, Minit, ARIS Process Performance Manager, ProM, Celonis Process Mining. Также Data Analyst может самостоятельно реализовать некоторые идеи процессной аналитики, используя специализированные библиотеки. Например, PM4Py – Python-пакет интеллектуального анализа процессов. Как она работает в Google Colab, мы рассмотрим далее.

На вход в PM-систему подается лог событий пользовательского поведения, который содержит как минимум идентификатор сессии, дату и время события, а также его название. Рассмотрим пример журнала событий обработки жалоб клиентов. Данные о событиях могут храниться в CSV-файлах, так и в XML-подобном формате XES. В отличие от CSV, в файле XES можно описать отношение вмещения, т. е. включить ряд трассировок, которые содержат несколько событий. Также сам объект в XES, т. е. лог, трассировка или событие, может иметь атрибуты. Таким образом, определенные атрибуты данных, которые являются постоянными для журнала или трассировки, могут храниться на этом уровне.

Предположим, известна только общая стоимость дела, а не стоимость отдельных событий. Если сохранять эту информацию в CSV-файле, нужно реплицировать эту информацию, т. е. хранить данные только в строках, которые напрямую относятся к событиям или явно определить, что определенные столбцы получают только значение один раз, ссылаясь на атрибуты уровня конкретного случая. Стандарт XES более естественно поддерживает хранение такого типа информации.

В рассматриваемом примере XES-файл содержит данные о событиях пользовательского поведения. Например, трассировка с номером 1, маркированная тегом <string key=»concept:name»>, является первой трассировкой, записанной в этот журнал событий. Первое событие трассировки представляет действие «запрос на регистрацию» (register request), выполненное ресурсом Pete. Второе событие — это действие «тщательно изучить» (examine thoroughly), выполняемое Sue и т.д.

XES XML Process Mining PM4Py
Пример XES-файла

Как работать с этим файлом пользовательских событий, чтобы получить схему бизнес-процесса с помощью библиотеки PM4Py, рассмотрим далее.

Использование PM4Py в Google Colab: примеры

Чтобы работать в интерактивной облачной среде легковесных блокнотов Google Colab с библиотекой PM4Py, ее сперва надо установить, а затем импортировать.

!pip install pm4py
import pm4py

Далее прочитаем XES-файл и визуализируем имеющиеся в нем сведения в виде BPMN-диаграммы бизнес-процесса через вызов соответствующих методов PM4Py-библиотеки. В настоящее время в PM4Py поддерживаются три различных нотации моделирования процессов: BPMN, деревья процессов и сети Петри. Все это по сути направленные графы. Из-за своей математической природы сети Петри менее неоднозначны  по сравнению с BPMN. Деревья процессов представляют собой строгое подмножество сетей Петри и описывают поведение процессов иерархическим образом. Примечательно, что ни один из алгоритмов, реализованных в PM4Py, напрямую не обнаруживает модель BPMN. Но любое дерево процессов можно легко преобразовать в модель BPMN. С помощью специального алгоритма индуктивный майнер. Он позволяет преобразовать дерево процессов в BPMN на основе текущего набора данных о событиях.

if __name__ == "__main__":
    log = pm4py.read_xes('/content/running-example.xes') 
    process_tree = pm4py.discover_tree_inductive(log)
    bpmn_model = pm4py.convert_to_bpmn(process_tree)
    pm4py.view_bpmn(bpmn_model)
PM4Py BPMN XES
Построение BPMN-диаграммы процесса по данных из XES-файла методами библиотеки PM4Py

Алгоритм в этом примере фактически обнаруживает дерево процессов. С математической точки зрения оно представляет собой корневое дерево, аннотированное информацией о потоке управления. Дерево процессов моделируется сверху вниз и, аналогично BPMN-диаграмме также включает логические операторы и циклы, т.е. бизнес-логику.

Process Tree PM4Py Process Mining
Дерево процесса по данных из XES-файла методами библиотеки PM4Py

Многие коммерческие решения Process Mining системы не предоставляют расширенной поддержки для обнаружения моделей процессов, используя в качестве основной визуализации процессов карты процессов. Карта процесса содержит действия и связи между ними. Связь между двумя действиями обычно означает наличие некоторой формы отношения предшествования. В своей простейшей форме это означает, что «исходная» деятельность непосредственно предшествует «целевой» деятельности. Следующий фрагмент кода создает карту процесса на основе «Directly Follows Graph» (DFG):

dfg, start_activities, end_activities = pm4py.discover_dfg(log)
pm4py.view_dfg(dfg, start_activities, end_activities)

Функция pm4py.discover_dfg(log) возвращает три значения:

  • dfg — словарь, отображающий пары действий, которые непосредственно следуют друг за другом, в число соответствующих наблюдений;
  • второй и третий аргументы — это начальные и конечные действия, наблюдаемые в журнале событий (счетчики).
DFG PM4Py
DFG-карта процесса с библиотекой PM4Py

В нашем примере в 6 случаях запрос на регистрацию является первым наблюдаемым действием (представленным дугой, помеченной значением 6). В журнале событий действие проверки билета выполняется непосредственно после действия запроса регистрации. Тщательно изучить активность следует после регистрации один раз, внимательно изучить следует 3 раза. Всего за регистрационной активностью следует 6 различных событий, т. е. в журнале событий работающего примера есть 6 трассировок. На практике существует намного больше взаимосвязей по сравнению с количеством случаев в журнале событий. Поэтому представление DFG намного сложнее, чем модели процессов в виде BPMN-диаграммы или иерархического дерева. Кроме того, в DFG-графе намного сложнее сделать вывод о фактическом выполнении процесса.

В PM4Py также есть более продвинутый алгоритм построения эвристических карт процессов — Heuristics Miner, расширяющий возможности DFG. В карте процессов Heuristics Miner дуги между действиями представляют наблюдаемый параллелизм. Например, алгоритм может определить, что проверка билета и осмотр происходят одновременно. Следовательно, эти действия не будут связаны в карте процесса. Таким образом, эвристическая карта процессов с алгоритмом Heuristics Miner обычно проще, чем DFG-граф.

Heuristics Miner Process Map PM4Py
Эвристическая карта процесса с библиотекой PM4Py

В заключение отметим, что подобные графы можно построить, используя методы классов, упакованных в библиотеки работы с графами в Apache Spark: GraphFrames и GraphX. Таким образом, самостоятельно реализовать идеи Process Mining можно с помощью типовых инструментов стека Big Data. Однако, лучше воспользоваться специализированными средствами, например, графовой СУБД Neo4j, аналитические возможности которой мы рассматривали здесь на примере анализа графа европейской газотранспортной системы.

Как сделать это на практике, используя средства графовой аналитики больших данных в реальных проектах, вы узнаете на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.

Источники

  1. https://habr.com/ru/post/244879/
  2. https://newtechaudit.ru/mypm-kak-postroit-graph-is-loga/
  3. https://pm4py.fit.fraunhofer.de/getting-started-page

Поиск по сайту