Your AI powered learning assistant

pm4py tutorials - урок №5: Работа с данными о событиях; Встроенные фильтры

Intro

00:00:00

В пятом уроке из серии PM4Py мы рассмотрим фильтры журнала событий. Эти встроенные фильтры в PM4Py необходимы для эффективного управления данными о событиях и их анализа. Себастьян Везельст, научный сотрудник Института Фраунгофера, работающий в Ахенском университете, знакомит нас с этими инструментами.

Event Data/Event Log

00:00:55

Данные о событиях состоят из строк, которые могут быть представлены в виде файла CSV или XES, показывающих, какое действие было выполнено и когда. Например, для заказа с идентификатором 1233 было выполнено действие "создать заказ" 29 ноября 2019 года в 17:14 по европейскому времени. Трассировка относится к последовательности зарегистрированных действий.

Individual Traces

00:01:55

При выполнении процесса трассировка записывает последовательность действий для заказа. Например, в заказе 1337 могут быть действия, помеченные как A-B-C-D, в то время как другой заказ, например 1338, может следовать за A-C-B-D. Для нескольких заказов может использоваться одна и та же последовательность действий, и считается, что они имеют один и тот же вариант отслеживания; например, в заказах 1322 и 1344 могут быть записаны последовательности A-B-C-D. Эта концепция помогает фильтровать данные, группируя похожие исполнения на основе их шаблонов действий.

Example Process

00:05:27

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

Filtering on Start/End Activities

00:07:01

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

Реализация фильтров с использованием PM4Py При использовании PM4Py в Python фильтрация выполняется просто: загружайте журнал событий и применяйте фильтры на основе конкретных начальных действий, повторяя первое событие каждой трассировки. Это помогает определить, какие события часто запускают процессы, и удалить те, которые не соответствуют определенному пороговому значению частоты.

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

Filtering on Event/Trace Attributes

00:18:40

Фильтрация атрибутов событий и трассировки Данные о событиях, включая трассировки, могут иметь различные атрибуты. Функция фильтрации Pimple Pie позволяет задавать значения атрибутов для фильтрации событий или трассировок. Например, вы можете отфильтровать журнал событий по именам ресурсов, таким как Pete или Mike, на разных уровнях: на уровне обращений сохраняется любая трассировка, содержащая хотя бы одно совпадающее событие; на уровне событий удаляются все несоответствующие события.

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

Расширенные методы и опции фильтрации Вы также можете применять фильтры на основе числовых диапазонов атрибутов и отменять определенные условия, используя такие параметры, как "сохранить". Это позволяет выполнять сложные запросы, в которых вы, возможно, захотите исключить, а не включать конкретные случаи на основе заданных критериев — например, исключить все случаи с названиями концепций 3 или 4 из отфильтрованных результатов.

Filtering Trace Variants

00:29:34

Фильтрация вариантов трассировки в журналах событий Варианты трассировки могут быть отфильтрованы, чтобы сохранить только интересующие вас шаблоны. Например, если вариант встречается по крайней мере три раза из восьми, он сохраняется; в противном случае он удаляется. Использование функции 'get_variants' из библиотеки pm4py позволяет классифицировать трассы по их уникальным последовательностям и фильтровать их в зависимости от частоты появления.

Реализация вариантных фильтров с помощью библиотеки Pm4py Функция 'get_variants' возвращает словарь, в котором ключи - это разделенные запятыми списки действий, представляющие каждый вариант, а значения - соответствующие списки трассировок. Фильтрация журналов включает в себя указание желаемых вариантов в виде входных строк или списков форматов, которые pm4py преобразует внутри системы для обработки. Этот метод помогает эффективно изолировать релевантные данные, в то время как будущие обновления могут еще больше упростить этот этап предварительной обработки.

Filtering Directly Follows

00:38:25

В теме для pi um реализована фильтрация, которая напрямую следует за отношением. Эта концепция подразумевает, что если одно действие непосредственно следует за другим, оно придерживается этого типа отношения. Например, при фильтрации трасс на основе прямой связи следования между действиями A и B сохраняются только те последовательности, в которых за A непосредственно следует B. В иллюстративном сценарии с различными идентификаторами трассировки (например, 1-3-3-2) только определенные из них соответствуют критериям из-за отсутствия промежуточных действий.

Filtering Eventually follows

00:39:52

Понимание взаимосвязи "В конечном итоге следует" при фильтрации событий Фильтрация по соотношению "в конечном итоге следует" позволяет отслеживать любое количество событий между указанными действиями. Например, фильтрация с использованием отношения A, за которым следует E, исключила бы следы, где E в конечном итоге не следует за A. И наоборот, если отфильтровать A, за которым следует D, все следы останутся такими, что D всегда следует за A в какой-то момент.

"Непосредственно следует" и сохраняет необязательность в журналах событий Фильтр directly_follows сохраняет только те журналы событий, в которых за одним действием немедленно следует другое конкретное действие. Это можно проверить, проверив отдельные события трассировки, чтобы убедиться, что правильная последовательность появляется хотя бы один раз в каждом сохраненном журнале. Кроме того, фильтры предлагают функцию сохранения по желанию, которая определяет, следует ли сохранять обращения, соответствующие критериям или противоречащие им, или удалять их.

Filtering on Time

00:45:12

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

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

Практическая реализация и демонстрация вживую Использование библиотеки datetime в Python упрощает задание временных меток для этих фильтров. Практические примеры показывают, как различные режимы влияют на сохранение трассировки; 'traces_contained' может возвращать пустые результаты, если не подходит полная трассировка, в то время как 'traces_intersecting' сохраняет перекрывающиеся результаты без их обрезки.