728x90

 이번 포스팅에서는, 실제 데이터를 분석할 때 가장 널리 쓰이는 process discovery 알고리즘 중 하나인 inductive miner를 이용하여 pm4py에서 프로세스 모델을 도출하는 방법에 대해 알아볼 것이다. Inductive Miner 알고리즘을 알고 싶으면 다음 포스팅을 참고하자.

2019/07/23 - [Theory/Process Discovery] - Inductive Miner란?

 

Inductive Miner란?

한 달 만의 글이다. 학회와 시험과 여행의 조합으로 이제야 일상으로 돌아왔다. 그리웠다... 20일 뒤에 또 시험인 것은 함정 ^_^ Inductive Miner는 Process Discovery 알고리즘 중 하나로, 이벤트 로그로부터 프..

process-mining.tistory.com

 

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

 * 현재 PM4Py는 다양한 Inductive Miner 알고리즘 중 Inductive Miner Directly Follows algorithm을 기본으로 한다. 알고리즘에 대해 자세히 알고 싶다면 다음 링크를 참고한다.

http://www.processmining.org/_media/blogs/pub2015/bpmds_directly-follows_mining.pdf

 

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에 대해 inductive miner를 적용시켜 준다.

from pm4py.algo.discovery.inductive import factory as inductive_miner

net, initial_marking, final_marking = inductive_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.inductive import factory as inductive_miner
from pm4py.visualization.petrinet import factory as vis_factory


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

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

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

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

도출된 페트리 넷

 이 때, 페트리 넷에서 초록색으로 표시된 place는 initial marking이 포함되어 있는 source place이고, 주황색으로 표시된 place는 final marking이 표시될 sink place이다. 또한 까만 색으로 표시된 네모는 silent transition을 의미한다.

 

 pm4py를 통해 코드 몇 줄로 간단하게 event log로부터 inductive miner를 이용하여 프로세스 모델을 도출할 수 있다.

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