[논문 리뷰] Process Mining for Python (PM4Py): Bridging the Gap Between Process- and Data Science
PM4Py는 pandas와 scikit-learn 같은 표준 데이터 사이언스 도구와의 통합을 통해 알고리즘 커스터마이즈와 대규모 실험을 가능하게 하는 Python 기반 프로세스 마이닝 라이브러리입니다. 확장성을 위한 아키텍처, 다양한 프로세스 마이닝 알고리즘, 시각화 지원을 제공합니다.
Process mining, i.e., a sub-field of data science focusing on the analysis of event data generated during the execution of (business) processes, has seen a tremendous change over the past two decades. Starting off in the early 2000's, with limited to no tool support, nowadays, several software tools, i.e., both open-source, e.g., ProM and Apromore, and commercial, e.g., Disco, Celonis, ProcessGold, etc., exist. The commercial process mining tools provide limited support for implementing custom algorithms. Moreover, both commercial and open-source process mining tools are often only accessible through a graphical user interface, which hampers their usage in large-scale experimental settings. Initiatives such as RapidProM provide process mining support in the scientific workflow-based data science suite RapidMiner. However, these offer limited to no support for algorithmic customization. In the light of the aforementioned, in this paper, we present a novel process mining library, i.e. Process Mining for Python (PM4Py) that aims to bridge this gap, providing integration with state-of-the-art data science libraries, e.g., pandas, numpy, scipy and scikit-learn. We provide a global overview of the architecture and functionality of PM4Py, accompanied by some representative examples of its usage.
연구 동기 및 목표
- 기존 도구에 비해 프로세스 마이닝에서 알고리즘 개발 및 커스터마이제이션의 장벽을 낮춘다.
- 프로세스 마이닝을 다른 데이터 사이언스 알고리즘 및 Python 생태계와 쉽게 통합할 수 있도록 한다.
- 프로세스 마이닝 커뮤니티 내에서 코드와 결과를 공유하는 협업 생태계를 조성한다.
- 알고리즘의 안정성과 신뢰성을 보장하기 위한 철저한 문서화와 엄격한 테스트를 제공한다.
제안 방법
- 객체, 알고리즘, 시각화의 엄격한 분리를 가진 모듈식 아키텍처를 제공한다.
- 역호환성을 위한 알고리즘 및 변형에 접근하기 위해 팩토리 메서드를 사용한다(예: Alpha Miner classic 및 plus).
- 여러 이벤트 데이터 구조(이벤트 로그, 이벤트 스트림, pandas DataFrame)와 변환 유틸리티를 지원한다.
- 주류 프로세스 마이닝 기법들(프로세스 발견, 합치성 검사, 모델 개선)을 구현하고 적합도(fitness)와 정밀도(precision)와 같은 지표를 제공한다.
- GraphViz, NetworkX, Pyvis를 통한 다양한 프로세스 표현과 소셜 네트워크 시각화를 제공한다.
- Python 데이터 과학 라이브러리(pandas, numpy, scipy, scikit-learn)와의 통합을 보장하고 광범위한 문서를 제공한다.
실험 결과
연구 질문
- RQ1Python 라이브러리 내에서 프로세스 마이닝 알고리즘을 어떻게 쉽게 확장 가능하고 커스터마이즈하게 만들 수 있을까?
- RQ2PM4Py가 기존 데이터 사이언스 생태계와 원활하게 통합되어 대규모 실험을 가능하게 할 수 있을까?
- RQ3연구자들 간 재현 가능하고 공유 가능한 프로세스 마이닝 실험을 가능하게 하는 아키텍처적 선택은 무엇인가?
- RQ4어떤 프로세스 마이닝 기법 세트를 지원하며 어떻게 접근되는가(예: 팩토리를 통해)?
주요 결과
- PM4Py는 재사용과 실험을 용이하게 하기 위한 객체, 알고리즘, 시각화의 명확한 분리를 갖춘 모듈식 아키텍처를 제공합니다.
- 팩토리 메서드는 알고리즘과 변형에 대한 단일 접근점을 제공하여 쉬운 확장과 역호환성을 가능하게 합니다.
- PM4Py는 로그, 스트림, pandas DataFrame 등 다양한 이벤트 데이터 표현과 변환 유틸리티를 지원합니다.
- 이 라이브러리에는 프로세스 발견(Alpha Miner, Inductive Miner), 합치성 검사(token-based replay, alignments), 모델 개선 기능이 포함되어 있습니다.
- 모델과 소셜 네트워크 해석을 돕기 위해 GraphViz, NetworkX, Pyvis를 통한 시각화를 지원합니다.
- PM4Py는 주요 Python 데이터 과학 라이브러리와 통합되었으며 교육 및 연구 프로젝트에 활용되어 왔고 GitHub를 통한 활발한 커뮤니티 참여가 있습니다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.