728x90

폭풍 pm4py 포스팅. 이 파트를 오늘 웹 만들 때 쓰기도 했고 이제 웬만한 기본적인 이론 부분은 다 포스팅해서 더 하려면 논문을 읽어야 하기 때문에.. ㅎㅎ 이번 포스팅에서는 PM4Py로 precision을 계산하는 방법에 대해 알아보겠다.

* precision이 무엇이고 이를 계산하는 방법인지 무엇인지 알고 싶다면 다음 포스팅을 참고하도록 한다.

2019/08/12 - [Process Mining - Theory] - Process Model의 Precision 계산법 (Escaping Edge)

 

Process Model의 Precision 계산법 (Escaping Edge)

시험 준비한다고 일주일 포스팅을 쉬었는데, 시험 공부 도저히 더 못하겠어서 내일 시험인데 쓰는 글 ^_^ 어차피 시험 범위니까 글 쓰는 것도 시험 공부의 일환 아닐까 ㅎㅎ (아님) 프로세스 모델의 quality를 평..

process-mining.tistory.com

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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기