pm4py.algo.discovery.correlation_mining package#
PM4Py – A Process Mining Library for Python
Copyright (C) 2024 Process Intelligence Solutions UG (haftungsbeschränkt)
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see this software project’s root or visit <https://www.gnu.org/licenses/>.
Website: https://processintelligence.solutions Contact: info@processintelligence.solutions
Subpackages#
Submodules#
pm4py.algo.discovery.correlation_mining.algorithm module#
PM4Py – A Process Mining Library for Python
Copyright (C) 2024 Process Intelligence Solutions UG (haftungsbeschränkt)
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see this software project’s root or visit <https://www.gnu.org/licenses/>.
Website: https://processintelligence.solutions Contact: info@processintelligence.solutions
- class pm4py.algo.discovery.correlation_mining.algorithm.Variants(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#
Bases:
Enum
- CLASSIC_SPLIT = <module 'pm4py.algo.discovery.correlation_mining.variants.classic_split' from 'C:\\Users\\berti\\pm4py-core\\pm4py\\algo\\discovery\\correlation_mining\\variants\\classic_split.py'>#
- CLASSIC = <module 'pm4py.algo.discovery.correlation_mining.variants.classic' from 'C:\\Users\\berti\\pm4py-core\\pm4py\\algo\\discovery\\correlation_mining\\variants\\classic.py'>#
- TRACE_BASED = <module 'pm4py.algo.discovery.correlation_mining.variants.trace_based' from 'C:\\Users\\berti\\pm4py-core\\pm4py\\algo\\discovery\\correlation_mining\\variants\\trace_based.py'>#
- pm4py.algo.discovery.correlation_mining.algorithm.apply(log: EventLog | EventStream | DataFrame, variant=Variants.CLASSIC, parameters: Dict[Any, Any] | None = None) Tuple[Dict[Tuple[str, str], int], Dict[Tuple[str, str], float]] [source]#
Applies the Correlation Miner to the event stream (a log is converted to a stream)
The approach is described in: Pourmirza, Shaya, Remco Dijkman, and Paul Grefen. “Correlation miner: mining business process models and event correlations without case identifiers.” International Journal of Cooperative Information Systems 26.02 (2017): 1742002.
Parameters#
- log
Log object
- variant
Variant of the algorithm to use
- parameters
Parameters of the algorithm
Returns#
- dfg
Directly-follows graph
- performance_dfg
Performance DFG (containing the estimated performance for the arcs)
pm4py.algo.discovery.correlation_mining.util module#
PM4Py – A Process Mining Library for Python
Copyright (C) 2024 Process Intelligence Solutions UG (haftungsbeschränkt)
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see this software project’s root or visit <https://www.gnu.org/licenses/>.
Website: https://processintelligence.solutions Contact: info@processintelligence.solutions
- pm4py.algo.discovery.correlation_mining.util.get_c_matrix(PS_matrix, duration_matrix, activities, activities_counter)[source]#
Calculates the C-matrix out of the PS matrix and the duration matrix
Parameters#
- PS_matrix
PS matrix
- duration_matrix
Duration matrix
- activities
Ordered list of activities of the log
- activities_counter
Counter of activities
Returns#
- c_matrix
C matrix
- pm4py.algo.discovery.correlation_mining.util.resolve_LP(C_matrix, duration_matrix, activities, activities_counter)[source]#
Formulates and solve the LP problem
Parameters#
- C_matrix
C_matrix
- duration_matrix
Duration matrix
- activities
Ordered list of activities of the log
- activities_counter
Counter of activities
Returns#
- dfg
Directly-Follows Graph
- performance_dfg
Performance DFG (containing the estimated performance for the arcs)
- pm4py.algo.discovery.correlation_mining.util.match_return_avg_time(ai, aj, exact=False)[source]#
Matches two list of times (exact or greedy) and returns the average.
Parameters#
- ai
First list
- aj
Second list
Returns#
- times_mean
Mean of times
- pm4py.algo.discovery.correlation_mining.util.greedy_match_return_avg_time(ai, aj)[source]#
Matches two list of times with a greedy method and returns the average.
Parameters#
- ai
First list
- aj
Second list
- parameters
Parameters of the algorithm
Returns#
- times_mean
Mean of times
- pm4py.algo.discovery.correlation_mining.util.calculate_time_match_fifo(ai, aj, times0=None)[source]#
Associate the times between two lists of timestamps using FIFO
Parameters#
- ai
First list of timestamps
- aj
Second list of timestamps
- times0
Correspondence between execution times
Returns#
- times0
Correspondence between execution times
- pm4py.algo.discovery.correlation_mining.util.calculate_time_match_rlifo(ai, aj, times1=None)[source]#
Associate the times between two lists of timestamps using LIFO (start from end)
Parameters#
- ai
First list of timestamps
- aj
Second list of timestamps
- times0
Correspondence between execution times
Returns#
- times0
Correspondence between execution times