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에 대해 알파 알고리즘을 적용시켜 준다.

from pm4py.algo.discovery.alpha import factory as alpha_miner

net, initial_marking, final_marking = alpha_miner.apply(log)

3. 이를 눈으로 확인하기 위해 다음 코드를 입력한다.

from pm4py.visualization.petrinet import factory as vis_factory

gviz = vis_factory.apply(net, initial_marking, final_marking)
vis_factory.view(gviz)

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

import os
from pm4py.objects.log.importer.xes import factory as xes_importer
from pm4py.algo.discovery.alpha import factory as alpha_miner
from pm4py.visualization.petrinet import factory as vis_factory

#log에 xes 파일을 import
log = xes_importer.import_log(os.path.join("tests","input_data","running-example.xes")) #괄호 안에 원하는 파일의 경로를 쓴다.
#log에 alpha algorithm을 적용
net, initial_marking, final_marking = alpha_miner.apply(log) 
#도출된 petri net을 visualization
gviz = vis_factory.apply(net, initial_marking, final_marking)
vis_factory.view(gviz)

 

4. 다음과 같은 맵이 도출된다면 성공이다.

도출된 페트리 넷

이 때, 페트리 넷에서 초록색으로 표시된 place는 initial marking이 포함되어 있는 source place이고, 주황색으로 표시된 place는 final marking이 표시될 sink place이다. 

 

pm4py를 통해 코드 몇 줄로 간단하게 event log로부터 알파 알고리즘으로 프로세스 모델을 도출할 수 있다.

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