pm4py.discovery.discover_bpmn_inductive#

pm4py.discovery.discover_bpmn_inductive(log: EventLog | DataFrame | DirectlyFollowsGraph, noise_threshold: float = 0.0, multi_processing: bool = False, activity_key: str = 'concept:name', timestamp_key: str = 'time:timestamp', case_id_key: str = 'case:concept:name', disable_fallthroughs: bool = False) BPMN[source]#

Discovers a BPMN model using the Inductive Miner algorithm.

The Inductive Miner detects a ‘cut’ in the log (e.g., sequential, parallel, concurrent, loop) and recursively applies the algorithm to sublogs until a base case is found. Inductive miner models typically use hidden transitions for skipping or looping portions of the model, and each visible transition has a unique label.

Parameters:
  • log – Event log, Pandas DataFrame, or typed DFG.

  • noise_threshold (float) – Noise threshold (default: 0.0).

  • multi_processing (bool) – Enables or disables multiprocessing in the Inductive Miner (default: constants.ENABLE_MULTIPROCESSING_DEFAULT).

  • activity_key (str) – Attribute to be used for the activity (default: “concept:name”).

  • timestamp_key (str) – Attribute to be used for the timestamp (default: “time:timestamp”).

  • case_id_key (str) – Attribute to be used as case identifier (default: “case:concept:name”).

  • disable_fallthroughs (bool) – Disables the Inductive Miner fall-throughs (default: False).

Returns:

A BPMN object representing the discovered BPMN model.

Return type:

BPMN

import pm4py

bpmn_graph = pm4py.discover_bpmn_inductive(
    dataframe,
    activity_key='concept:name',
    case_id_key='case:concept:name',
    timestamp_key='time:timestamp'
)