728x90

 PM4Py는 다양한 로그 필터링 방법들을 제공한다. 이번 포스팅에서는 케이스의 소요 시간을 바탕으로 이벤트 로그를 필터링하는 방법에 대해 알아보겠다.

 

 * 본 포스팅은 기본적인 python 문법을 알고 있다는 가정 하에 진행된다.

 

1. 우선, xes 파일을 import하여 이를 log에 저장해 준다.

import os
from pm4py.objects.log.importer.xes import factory as xes_importer

log = xes_importer.import_log(os.path.join("tests","input_data","running-example.xes")) #괄호 안에 원하는 파일의 경로를 쓴다.
 

 

2. log에 대해 케이스의 소요 시간을 바탕으로 이를 필터링한다.

 이 때, filter_on_case_performance 안의 인수는 각각 필터링할 로그, 소요 시간의 최솟값, 소요 시간의 최댓값이다. 소요 시간의 단위는 초 단위이다. 즉, 아래 코드는 케이스의 소요 시간이  86400초 (1일) - 864000초 (10일) 사이인 trace만 남는 것이다.

from pm4py.algo.filtering.log.cases import case_filter

filtered_log = case_filter.filter_on_case_performance(log, 86400, 864000)

 

3. 확인을 위해 기존의 log와 필터링 후 log의 케이스 개수를 비교해본다.

print(len(log))
print(len(filtered_log))

*이 코드를 한 번에 입력하고 싶으면 다음 코드를 입력하면 된다. (순서대로 붙여넣기 해도 되지만, 보기 좋게 바꾸어 놓았다.)

import os
from pm4py.objects.log.importer.xes import factory as xes_importer
from pm4py.algo.filtering.log.cases import case_filter

log = xes_importer.import_log(os.path.join("input_data","running-example.xes")) 

filtered_log = case_filter.filter_on_case_performance(log, 86400, 864000)

print(len(log))
print(len(filtered_log))

 

4. 다음과 같은 결과가 나온다면 성공이다.

 

pm4py를 이용해 코드 몇 줄로 간단하게 이벤트 로그의 케이스 소요 시간을 바탕으로 로그를 필터링할 수 있다.

 

References

1. PM4Py 공식 홈페이지: http://pm4py.pads.rwth-aachen.de/

300x250
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기