pm4py.algo.conformance.log_skeleton.variants 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
Submodules#
pm4py.algo.conformance.log_skeleton.variants.classic 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.conformance.log_skeleton.variants.classic.Parameters(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#
Bases:
Enum
- NOISE_THRESHOLD = 'noise_threshold'#
- CONSIDERED_CONSTRAINTS = 'considered_constraints'#
- DEFAULT_CONSIDERED_CONSTRAINTS = ['equivalence', 'always_after', 'always_before', 'never_together', 'directly_follows', 'activ_freq']#
- CASE_ID_KEY = 'pm4py:param:case_id_key'#
- ACTIVITY_KEY = 'pm4py:param:activity_key'#
- PARAMETER_VARIANT_DELIMITER = 'variant_delimiter'#
- class pm4py.algo.conformance.log_skeleton.variants.classic.DiscoveryOutputs(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#
Bases:
Enum
- EQUIVALENCE = 'equivalence'#
- ALWAYS_AFTER = 'always_after'#
- ALWAYS_BEFORE = 'always_before'#
- NEVER_TOGETHER = 'never_together'#
- DIRECTLY_FOLLOWS = 'directly_follows'#
- ACTIV_FREQ = 'activ_freq'#
- class pm4py.algo.conformance.log_skeleton.variants.classic.Outputs(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#
Bases:
Enum
- DEVIATIONS = 'deviations'#
- NO_DEV_TOTAL = 'no_dev_total'#
- NO_CONSTR_TOTAL = 'no_constr_total'#
- DEV_FITNESS = 'dev_fitness'#
- IS_FIT = 'is_fit'#
- pm4py.algo.conformance.log_skeleton.variants.classic.apply_log(log: EventLog | DataFrame, model: Dict[str, Any], parameters: Dict[str | Parameters, Any] | None = None) List[Set[Any]] [source]#
Apply log-skeleton based conformance checking given an event log and a log-skeleton model
Parameters#
- log
Event log
- model
Log-skeleton model
- parameters
Parameters of the algorithm, including: - Parameters.ACTIVITY_KEY - Parameters.CONSIDERED_CONSTRAINTS, among: equivalence, always_after, always_before, never_together, directly_follows, activ_freq
Returns#
- aligned_traces
Conformance checking results for each trace: - Outputs.IS_FIT => boolean that tells if the trace is perfectly fit according to the model - Outputs.DEV_FITNESS => deviation based fitness (between 0 and 1; the more the trace is near to 1 the more fit is) - Outputs.DEVIATIONS => list of deviations in the model
- pm4py.algo.conformance.log_skeleton.variants.classic.apply_trace(trace: Trace, model: Dict[str, Any], parameters: Dict[str | Parameters, Any] | None = None) List[Set[Any]] [source]#
Apply log-skeleton based conformance checking given a trace and a log-skeleton model
Parameters#
- trace
Trace
- model
Log-skeleton model
- parameters
Parameters of the algorithm, including:
- type trace:
Trace
- the activity key (pm4py:param:activity_key) - the list of considered constraints (considered_constraints) among: equivalence, always_after, always_before, never_together, directly_follows, activ_freq
Returns#
- aligned_trace
Containing: - is_fit => boolean that tells if the trace is perfectly fit according to the model - dev_fitness => deviation based fitness (between 0 and 1; the more the trace is near to 1 the more fit is) - deviations => list of deviations in the model
- pm4py.algo.conformance.log_skeleton.variants.classic.apply_actlist(trace, model, parameters=None)[source]#
Apply log-skeleton based conformance checking given the list of activities of a trace and a log-skeleton model
Parameters#
- trace
List of activities of a trace
- model
Log-skeleton model
- parameters
Parameters of the algorithm, including: - the activity key (pm4py:param:activity_key) - the list of considered constraints (considered_constraints) among: equivalence, always_after, always_before, never_together, directly_follows, activ_freq
Returns#
- aligned_trace
Containing: - is_fit => boolean that tells if the trace is perfectly fit according to the model - dev_fitness => deviation based fitness (between 0 and 1; the more the trace is near to 1 the more fit is) - deviations => list of deviations in the model
- pm4py.algo.conformance.log_skeleton.variants.classic.apply_from_variants_list(var_list, model, parameters=None)[source]#
Performs conformance checking using the log skeleton, applying it from a list of variants
Parameters#
- var_list
List of variants
- model
Log skeleton model
- parameters
Parameters
Returns#
- conformance_dictio
Dictionary containing, for each variant, the result of log skeleton checking
- pm4py.algo.conformance.log_skeleton.variants.classic.after_decode(log_skeleton)[source]#
Prepares the log skeleton after decoding
Parameters#
- log_skeleton
Log skeleton
Returns#
- log_skeleton
Log skeleton (with sets instead of lists)
- pm4py.algo.conformance.log_skeleton.variants.classic.get_diagnostics_dataframe(log, conf_result, parameters=None)[source]#
Gets the diagnostics dataframe from a log and the results of log skeleton-based conformance checking
Parameters#
- log
Event log
- conf_result
Results of conformance checking
Returns#
- diagn_dataframe
Diagnostics dataframe