728x90

 저번 포스팅에서 우리는 프로세스 모델의 Precision을 계산하는 방법에 대해 간략히 알아보았다. 저번 포스팅을 보지 않으셨다면 보고 오시는 것을 추천한다.

2019/08/12 - [Theory] - Process Model의 Precision 계산법

 

Process Model의 Precision 계산법

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

process-mining.tistory.com

 저번 포스팅의 내용은 Reachability Graph를 그려 escaping edge를 구하여 이를 토대로 precision을 구하는 방법이었다. 이 방법은 직관적이고 이해하기 쉬운 내용이지만, 정의에 입각한 설명이 아니기도 하고, 데이터의 크기가 굉장이 크다면 실제로 그림을 그려 하나하나 precision을 구할 수는 없기 때문에 좀 모호한 부분이 있을 수 있다. 이번 포스팅에서는 Escaping Edges를 이용해 precision을 구하는 방법을 정의에 따라 설명해보도록 하겠다. 

Escaping Edges를 이용해 Precision 구하기

 우선, 다음과 같은 예시 이벤트 로그와 프로세스 모델이 있다고 하자. 이번에도 저번 포스팅과 같이 이벤트 로그가 모델에 완벽히 fitting(fitness = 1)이라고 가정한다.

예시 이벤트 로그
예시 프로세스 모델

1. 우선, 이벤트 로그의 각 trace를 하나하나 분리하고, 이들을 이벤트에 대응시킨다.

 현재 abce^2, ade^2로 묶여 있는 이벤트 로그를 다음과 같이 분리해주고, 이들을 이벤트 하나하나에 대응시킨다.

분리시킨 이벤트 로그

 즉, abce에 대해 e1은 a, e2는 b, e3는 c, e4는 d, 그리고 다음 abce에 대해 e5는 a, e6은 b 이런 식으로 모든 이벤트들을 대응시킨다.

 

2. 각 이벤트에 대해 Context_L을 찾는다.

 Context_L은 다음과 같이 정의할 수 있다.

context_L의 정의

 즉, 이벤트 e가 일어나기 전까지 일어난 해당 trace 내의 모든 시퀀스(prefix)를 말한다. 예를 들어, 우리의 예시에서 e3은 abcd trace 내의 c를 말하고, 이것이 일어나기 전까지의 시퀀스는 <ab>가 될 것이다. 좀 더 예시를 들면 다음과 같다.

 

3. 각 이벤트에 대해 state_M을 찾는다.

 State_M은 다음과 같이 정의할 수 있다.

state_M의 정의

 즉, 프로세스 모델(transition system)에서 이벤트 e가 일어나기 직전의 state를 말한다. 예를 들어, 우리의 이벤트 e2는 abce trace 내에서 b이고, 이 b가 일어나기 직전 state는 s2가 된다. 좀 더 예시를 들면 다음과 같다.

 

4. 각 이벤트에 대해 en_M을 찾는다.

 en_M은 이벤트 e가 모델 내에서 enable하는 액티비티들을 말하는 것으로, 다음과 같이 정의할 수 있다.

en_M의 정의

  즉, 이벤트 e의 state_M (3에서 구함)에서 enable되는 모든 액티비티의 집합을 말한다. 예를 들어, en_M(e2)는 state_M(e2)가 s2이기 때문에 s2에서 enable되는 {b,c,d,e}가 될 것이다. 좀 더 예시를 들면 다음과 같다.

 

5. 각 이벤트에 대해 en_L을 찾는다. 

 en_L은 이벤트 e가 일어나기 직전 상태에 로그 상에서 execute될 수 있는 액티비티들을 말하는 것으로, 다음과 같이 정의할 수 있다.

en_L의 정의

 즉, 이벤트 e의 context_L (2에서 구함)이 같은 액티비티들을 말한다. 예를 들어, abcd 안의 두 번째 이벤트 b에 해당하는 e2의 context_L은 <a>이다. 또 context_L이 <a>인 이벤트에는 e6, e10, e13이 있다. e6은 e2와 같이 b이고, e10, e13은 d이기 때문에 e2의 en_L은 {b,d}가 된다. 좀 더 예시를 들면 다음과 같다.

6. Precision을 계산한다.

 위 과정에 따라 각 이벤트에 대한 en_M과 en_L을 모두 구했다면 이제 precision을 계산할 차례이다. precision은 다음과 같은 계산식으로 계산할 수 있다. 

precision 계산식

 즉, 해당 이벤트가 일어났을 때 모델에서 enable한 액티비티에 비해 실제 이벤트 로그에서 enable되는 액티비티가 얼마나 있는지를 계산하는 것이다. 이것이 저번 포스팅에서의 escaping edge의 정의와 같다. 우리의 예시에 대해서 이를 계산하면 다음과 같은 결과가 나온다.

precision의 계산

 이렇게 precision을 구할 수 있다! 같은 이벤트 로그와 프로세스 모델에 대해서 저번 포스팅에서 소개했던 reachability graph를 이용한 방법으로 계산을 해보면 값이 똑같이 나온다. (같은 방법이니까 당연함)

 

 이번 포스팅에서는 지난 포스팅에 이어 precision을 구하는 방법에 대해 정의에 입각해서 설명을 해 보았다. 수학 같아 보여서 지루했을 수도 있지만 ㅎㅎ.. 수학과를 탈출해 보니 수학 같아 보이는 것은 어디에나 있더라~ 쓰고 보니 말줄임표와 물결 ㅎㅎ; 

 

오늘의 TMI: 설거지하기 싫다

 

References

1. Course: Advanced Process Mining. RWTH. Dr.ir. Sebastiaan J. van Zelst

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