[Paper Review] Process Mining for Python (PM4Py): Bridging the Gap Between Process- and Data Science
PM4Py is a Python library that enables customizable process mining algorithms and seamless integration with data science tools, addressing the gap between process mining and data science workflows.
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.
Motivation & Objective
- Lower the barrier for algorithmic development and customization in process mining compared to existing tools.
- Enable easy integration of process mining algorithms with other data science libraries in Python.
- Foster a collaborative ecosystem for sharing code and results in process mining.
- Provide thorough documentation and rigorous testing to ensure algorithmic stability.
- Support large-scale experiments and reproducible research in process mining.
Proposed method
- Use a strict separation of objects, algorithms, and visualizations across dedicated PM4Py packages.
- Provide factory methods as unified access points for algorithm variants (e.g., Alpha Miner classic and plus).
- Support multiple event data structures (event logs, event streams, pandas data frames) and conversions between formats.
- Implement core process mining techniques (discovery, conformance checking, enhancement) and quality measures (fitness, precision, generalization, simplicity).
- Offer visualization through Plot, GraphViz, NetworkX, and Pyvis integrations for process models and social networks.
Experimental results
Research questions
- RQ1How can process mining algorithms be made easily extensible and customizable in Python?
- RQ2How can PM4Py integrate process mining with existing Python data science libraries?
- RQ3Can PM4Py support large-scale experimentation and collaboration within the process mining community?
- RQ4What is the maturity and adoption level of PM4Py in academic and practical settings?
Key findings
- PM4Py provides Alpha Miner and Inductive Miner implementations and aligns with conformance checking and performance measurement.
- PM4Py supports event logs, event streams, and pandas data frames for scalable data handling.
- PM4Py uses factory methods to manage algorithm variants and ensure backward compatibility.
- PM4Py enables visualizations for Petri nets, directly-follows graphs, and social networks using GraphViz, NetworkX, and Pyvis.
- PM4Py 1.0 released in 2018 and PM4Py 1.1 in 2019, with growing usage in courses and integration with other projects.
Better researchstarts right now
From reading papers to final review, dramatically reduce your research time.
No credit card · Free plan available
This review was created by AI and reviewed by human editors.