{"id":14277,"url":"\/distributions\/14277\/click?bit=1&hash=17ce698c744183890278e5e72fb5473eaa8dd0a28fac1d357bd91d8537b18c22","title":"\u041e\u0446\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u0442\u0440\u044b \u0431\u0435\u043d\u0437\u0438\u043d\u0430 \u0438\u043b\u0438 \u0437\u043e\u043b\u043e\u0442\u044b\u0435 \u0443\u043a\u0440\u0430\u0448\u0435\u043d\u0438\u044f","buttonText":"\u041a\u0430\u043a?","imageUuid":"771ad34a-9f50-5b0b-bc84-204d36a20025"}

Граф процесс в тринадцать строчек

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

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

  1. Плохо структурированные данные
  2. Непонимание реального процесса
  3. Отсутствие должных it компетенций для работы с данными

Зачастую, этим заняты глубокопогруженные в процесс аналитики, затрачивая на это много времени. Современные инструменты способны облегчить им работу и обеспечить надежность выводов. Одним из таких инструментов является набор алгоритмов Process Mining. Направление, имеющее некоторую популярность в кругах аналитиков, реализовано на различных платформах. В этой статье мы рассмотрим, как просто построить граф процесса на python, используя библиотеку pm4py.

Предполагается, что на Вашем устройстве уже установлено соответствующее виртуальное окружение. О том, как это сделать, можете прочитать тут.

В первую очередь необходимо из данных извлечь три составляющие:

  • case:concept:name. Порядковый номер одного экземпляра Вашего процесса.
  • time:timestamp. Время и дата события в формате timestamp.
  • concept:name. Id события в рамках одного кейса.

Пример будет выглядеть примерно так:

# Импортируем пакет pandas import pandas as pd # Загружаем лог pData = pd.read_csv('test_2012.csv', sep=';') # Визуализируем первые пять строк файла pData.head()

Вам нужно перевести дату и время в формат timestamp что бы получилось примерно следующее.

Далее необходимо преобразовать дату:

# Преобразование поля time:timestamp из строки в datetime pData['time:timestamp'] = pd.to_datetime(pData['time:timestamp']) # Преобразование поля time:timestamp в timestamp float pData['time:timestamp'] = pData['time:timestamp'].astype(np.int64) // 10**9 # Преобразование поля time:timestamp в int pData['time:timestamp'] = pData['time:timestamp'].astype(np.int) pData.head()

После преобразований таблица должна выглядеть следующим образом:

Следующим шагом необходимо отсортировать Ваши данные по времени. Это необходимо для корректной работы алгоритмов. Если в Ваши логи не отсортированы, сделать это можно так:

pData.sort_values('time:timestamp')

Теперь данные готовы для подачи в пакет pm4py.

from pm4py.objects.conversion.log import factory as log_conv log = log_conv.apply(pData)

После того как лог сформирован – можно переходить к формированию графа процесса. Ниже будет приведен пример эвристического майнера. Полый список и описание алгоритмов можете посмотреть тут.

from pm4py.algo.discovery.heuristics import factory as heuristics_miner heu_net = heuristics_miner.apply_heu(log)

После формирования графа, последнее что остается – визуализировать его. Для этого нам потребуется утилита GraphViz.

from pm4py.visualization.heuristics_net import factory as hn_vis_factory gviz = hn_vis_factory.apply(heu_net) hn_vis_factory.view(gviz)

Вот и все. Граф готов.

0
Комментарии
-3 комментариев
Раскрывать всегда