pm4py.algo.discovery.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.discovery.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.discovery.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.discovery.log_skeleton.variants.classic.Outputs(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'#
pm4py.algo.discovery.log_skeleton.variants.classic.equivalence(logs_traces, all_activs, noise_threshold=0)[source]#

Gets the equivalence relations given the traces of the log

Parameters#

logs_traces

Traces of the log

all_activs

All the activities

noise_threshold

Noise threshold

Returns#

rel

List of relations in the log

pm4py.algo.discovery.log_skeleton.variants.classic.always_after(logs_traces, all_activs, noise_threshold=0)[source]#

Gets the always-after relations given the traces of the log

Parameters#

logs_traces

Traces of the log

all_activs

All the activities

noise_threshold

Noise threshold

Returns#

rel

List of relations in the log

pm4py.algo.discovery.log_skeleton.variants.classic.always_before(logs_traces, all_activs, noise_threshold=0)[source]#

Gets the always-before relations given the traces of the log

Parameters#

logs_traces

Traces of the log

all_activs

All the activities

noise_threshold

Noise threshold

Returns#

rel

List of relations in the log

pm4py.algo.discovery.log_skeleton.variants.classic.never_together(logs_traces, all_activs, len_log, noise_threshold=0)[source]#

Gets the never-together relations given the traces of the log

Parameters#

logs_traces

Traces of the log

all_activs

All the activities

len_log

Length of the log

noise_threshold

Noise threshold

Returns#

rel

List of relations in the log

pm4py.algo.discovery.log_skeleton.variants.classic.directly_follows(logs_traces, all_activs, noise_threshold=0)[source]#

Gets the allowed directly-follows relations given the traces of the log

Parameters#

logs_traces

Traces of the log

all_activs

All the activities

noise_threshold

Noise threshold

Returns#

rel

List of relations in the log

pm4py.algo.discovery.log_skeleton.variants.classic.activ_freq(logs_traces, all_activs, len_log, noise_threshold=0)[source]#

Gets the allowed activities frequencies given the traces of the log

Parameters#

logs_traces

Traces of the log

all_activs

All the activities

len_log

Length of the log

noise_threshold

Noise threshold

Returns#

rel

List of relations in the log

pm4py.algo.discovery.log_skeleton.variants.classic.apply(log: EventLog | DataFrame, parameters: Dict[str | Parameters, Any] | None = None) Dict[str, Any][source]#

Discover a log skeleton from an event log

Parameters#

log

Event log

parameters
Parameters of the algorithm, including:
  • the activity key (Parameters.ACTIVITY_KEY)

  • the noise threshold (Parameters.NOISE_THRESHOLD)

Returns#

model

Log skeleton model

pm4py.algo.discovery.log_skeleton.variants.classic.apply_from_variants_list(var_list, parameters=None)[source]#

Discovers the log skeleton from the variants list

Parameters#

var_list

Variants list

parameters

Parameters

Returns#

model

Log skeleton model

pm4py.algo.discovery.log_skeleton.variants.classic.prepare_encode(log_skeleton)[source]#

Prepares the log skeleton for encoding

Parameters#

log_skeleton

Log skeleton

Returns#

log_skeleton

Log skeleton (with lists instead of sets)