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