728x90
폭풍 pm4py 포스팅. 이 파트를 오늘 웹 만들 때 쓰기도 했고 이제 웬만한 기본적인 이론 부분은 다 포스팅해서 더 하려면 논문을 읽어야 하기 때문에.. ㅎㅎ 이번 포스팅에서는 PM4Py로 precision을 계산하는 방법에 대해 알아보겠다.
* precision이 무엇이고 이를 계산하는 방법인지 무엇인지 알고 싶다면 다음 포스팅을 참고하도록 한다.
2019/08/12 - [Process Mining - Theory] - Process Model의 Precision 계산법 (Escaping Edge)
1. 우선, 분석할 XES 파일을 import하여 이를 log에 저장하고, Conformance Checking을 원하는 모델을 net에 저장해준다. 필자는 inductive miner를 선택했다.
import os
from pm4py.objects.log.importer.xes import factory as xes_importer
from pm4py.algo.discovery.inductive import factory as inductive_miner
log = xes_importer.import_log(os.path.join("input_data","running-example.xes")) #join 안에 원하는 파일의 경로
net, initial_marking, final_marking = inductive_miner.apply(log) #원하는 모델을 선택한다.
2. 해당 log와 net에 대해서 precision을 계산한다.
from pm4py.evaluation.precision import factory as precision_factory
precision = precision_factory.apply(log, net, initial_marking, final_marking)
print(precision)
코드를 한 번에 입력하고 싶다면 다음 코드를 입력하면 된다.
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.evaluation.precision import factory as precision_factory
log = xes_importer.import_log(os.path.join("input_data","running-example.xes")) #join 안에 원하는 파일의 경로
net, initial_marking, final_marking = inductive_miner.apply(log) #원하는 모델을 선택한다.
precision= precision_factory.apply(log, net, initial_marking, final_marking)
print(precision)
3. 다음과 같은 결과가 나오면 성공이다.
0.7333333333333334
정말 간단하게 코드 몇 줄로 precision을 계산할 수 있다.
300x250
최근댓글