프로세스 마이닝 3대 요소 이해하기

   이재환 | 3월 7일, 2023 | 6분 읽기

프로세스 마이닝을 위한 3대 필수 요소가 있습니다. Case, Activity, Timestamp 이 3가지입니다.

이 3가지를 기존 로그 데이터로부터 어떻게 선정하냐의 문제도 있지만, 앞으로 프로세스 마이닝을 잘 하기 위해 로그 데이터를 어떻게 남겨야 할까도 중요 포인트입니다. 과거도 중요하지만 미래에 쌓을 데이터도 분명 중요할 테니까요. 저는 프로세스 마이닝 전문가나, 분석 전문가가 아닌 개발자/일반인 입장에서 얘기해 보고자 합니다.

먼저, Activity 와 Timestamp는 정의하기가 비교적 쉽습니다.

Activity발생한 사건이라고 생각하면 되는데요. 일상생활에서 보자면, “일어남”, “물을 마심”, “세수를 함”, “이를 닦음”, “밥을 먹음”, “다시 잠을 잠”, “집을 나감” 과 같은 일련의 행동들이라고 보면 됩니다. 웹 사이트의 경우 “로그인”, “받은 편지함”, “메일 읽기” 와 같은 행동들로 볼 수 있고, 병원의 경우에는 “접수”, “진료 대기”, “진료”, “처방전 발행”, “수납” 과 같은 행동으로 볼 수 있습니다.

Timestamp는 이 행동이 발생한 시각이라 보면 됩니다. Timestamp의 경우 또 두 가지로 나눌 수 있습니다. 발생한 시각 자체로 기록을 하는가, 아니면 이 행동의 시작 시간, 종료시간을 따로 기록하는 가. 예를 들어 “일어남”의 경우 잠에서 깨어 움직이기 시작한 시간을 시작 시간으로 두고 침대에서 벗어난 시간을 종료시간으로 둘 수 있습니다. “이를 닦음”의 경우 이를 닦기 시작한 시간부터 종료한 시간까지 기록할 수 있고요. 어떤 분석을 할지에 따라 데이터를 남기는 방법도 고민해야 할 요소가 됩니다. 발생한 시각을 기록할지, 시작-종료를 나눠서 기록할지. 발생한 시각을 기록한 경우에 이것을 시작 시간으로 볼 것인지 종료시간으로 볼 것인지

그렇다면 Case는 어떻게 정의를 해야 할까요? Case는 분석할 주제에 따라 달라지게 되는 요소입니다. ‘이거다!’ 라고 특정할 수 없죠. 그래서 이 Case를 선정하는 게 프로세스 마이닝에 있어서 주요 키 포인트 중 하나 입니다. Case를 어떻게 선택하는가에 따라 분석의 방향이나 결과가 완전히 달라지기 때문입니다.

일상생활로 돌아와서 앞서 언급한 행동들에 어떤 케이스를 정의하면 될까요? 만약 싱글이라면 로그 데이터가 전부 내가 한 일에 대한 것 이기 때문에 “나” 라는 주체를 케이스로 잡는 건 의미가 없습니다.

로그 데이터로 보면 아래와 같을 테니까요.

CASEACTIVITYTIMESTAMP
일어남2023-01-02 05:40:00
물을 마심2023-01-02 05:41:00

지금까지 프로세스 시뮬레이션의 전반적인 과정과 정보 도출 방법들을 소개했습니다. 다음 포스팅에서는 도출된 프로세스, 케이스, 작업, 작업자 정보를 바탕으로 시뮬레이션을 수행하는 방법에 대하여 소개드릴 예정입니다. 프로세스 시뮬레이션에 관심 있는 분들께 이 글이 도움이 되었기를 바라며 다음 포스팅도 기대해 주시면 감사하겠습니다.

모든 데이터에 “나” 라는 정보가 있다면 소거가 가능하기 때문에 Case 로 선정할 수 없습니다.

이 예에서는 가족이 존재해야 케이스가 성립이 될 수 있습니다. 가족별로 앞서 정의한 행동들을 할 거고 누군가는 이 중에서 어떤 행동을 하지 않을 수도 있고 “물을 마심” 과 같은 행동을 여러 번 반복할 수도 있습니다.

로그 데이터로 보자면

CASEACTIVITYTIMESTAMP
엄마일어남2023-01-02 06:00:00
아빠일어남2023-01-02 06:30:00
일어남2023-01-02 08:00:00

이렇게 구분할 경우 “엄마”,”아빠”,”나” 가 존재하는 컬럼을 케이스로 선정할 수 있습니다. 이렇게 하면 각 사람별 행동을 분석할 수 있게 되어 어떤 패턴으로 행동을 하는지를 분석해 볼 수 있습니다.

그럼 싱글일 경우에는 어떻게 하면 될까요? 이 때는 Case와 Timestamp의 일부를 결합해 나_2023-01-02, 나_2023-01-03 과 컬럼을 만들 수 있습니다. 또는 Timestamp에서 날짜 부분만 분리해서 해도 되고요. 이렇게 특정 데이터 일부를 Transform 할 수 있는 기능이 ProDiscovery에는 기본 탑재되어 있어 간단한 데이터 처리가 가능합니다. 이 기능을 활용해 다양한 케이스를 만들어서 분석이 가능합니다.

Case를 선정한다는 것은 어떤 패턴을 찾는다는 것과 같은 의미입니다. 패턴이 존재하지 않는 난수와 같은 데이터는 Case로 선정하기에 무의미 합니다. 분석적으로 가치가 떨어지게 되는 것입니다. 로그 데이터로부터 특정 패턴을 찾기 위해 Case를 선정하는 일은 반복된 훈련이 필요한 일입니다. 또는 분석하려는 시스템에 통달한 사용자의 경우 한 눈에 확인할 수 있겠죠.

Case는 고정된 것이 아닙니다. 여러 분석적 추론을 통해 유의미한 Case를 도출할 수 있습니다. 다양한 가능성을 열어 두고 프로세스 마이닝을 한 다면 데이터로부터 더 많은 인사이트를 얻고 시스템 또는 행동을 개선할 수 있습니다.

프로세스 마이닝만 거의 10년 가까이하고 있는 개발자로서 프로세스 마이닝이 기업이나 사회에 큰 기여가 되었으면 하는 마음으로 이 글을 마칩니다.