이번 포스팅에서는 PM4Py로 DFG를 도출하는 방법에 대해 알아보겠다. DFG가 무엇인지 모른다면 다음 포스팅을 참고하도록 한다.
2019/06/21 - [Theory/Process Model] - DFG(Directly Followed Graph)란?
DFG(Directly Followed Graph)란?
Directly Followed Graph란, 각 액티비티 간의 directly follow 관계 (a->b)만을나타낸 그래프를 말한다. 이는 가장 널리 쓰이는 Process Discovery 방식 중 하나인 Inductive Miner를 사용할 때에 기본이 된다...
process-mining.tistory.com
*본 포스팅은 기본적인 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에 대해 DFG를 찾아 준다.
from pm4py.algo.discovery.dfg import factory as dfg_factory
dfg = dfg_factory.apply(log)
3. 이를 눈으로 확인하기 위해(visualization) 다음 코드를 입력한다.
from pm4py.visualization.dfg import factory as dfg_vis_factory
gviz = dfg_vis_factory.apply(dfg, log=log, variant="frequency")
dfg_vis_factory.view(gviz)
여기서, variant를 frequency로 설정하였기 때문에 DFG의 각 액티비티와 arc 위에 빈도(frequency)가 표시된다. Frequency가 아닌 소요 시간을 보고 싶다면 variant = "performance"로 바꿔 주면 된다.
from pm4py.visualization.dfg import factory as dfg_vis_factory
gviz = dfg_vis_factory.apply(dfg, log=log, variant="performance")
dfg_vis_factory.view(gviz)
*이 코드를 한 번에 입력하고 싶으면 다음 코드를 입력하면 된다. (순서대로 붙여넣기 해도 되지만, 보기 좋게 바꾸어 놓았다.)
import os
from pm4py.objects.log.importer.xes import factory as xes_importer
from pm4py.algo.discovery.dfg import factory as dfg_factory
from pm4py.visualization.dfg import factory as dfg_vis_factory
log = xes_importer.import_log(os.path.join("tests","input_data","running-example.xes"))
dfg = dfg_factory.apply(log)
gviz = dfg_vis_factory.apply(dfg, log=log, variant="frequency") #or variant = "performance"
dfg_vis_factory.view(gviz)
4. 다음과 같은 맵이 도출된다면 성공이다.
pm4py를 통해 코드 몇 줄로 간단하게 event log로부터 DFG를 도출할 수 있다.
최근댓글