Training

Import two logs (low-level event log and related high-level eventlog) and train a new ECSEA model. Afterwards, this model can be applied to another low-level log. Furthermore, the model can exported and reused.

import pm4py
from ecsea import train_model, ParameterKey, get_default_parameter, validate_parameter

# Load the event logs
low_level_log = pm4py.read_xes('resources/test_data/test-low-level-log.xes')
high_level_log = pm4py.read_xes('resources/test_data/test-high-level-log.xes')
# Train the model with the standard parameter
model = train_model(low_level_log, high_level_log)
# OR: Optional: Add a dict with the parameters as third argument
parameter = get_default_parameter()
parameter[ParameterKey.PARAM_TIME_SPAN] = 5000
# Optional: Validate the parameters
validate_parameter(parameter)
model = train_model(low_level_log, high_level_log, parameter=parameter)
# Export the model
model.export("model.pickle")

See Training API for details.

Parameters

Parameters that can be used in the training phase:

See CLI for the description of the various parameters.

Optimization

You can optimize the parameter by conducting a hyperparameter-optimization:

import pm4py
from src.ecsea import optimize, ParameterKey, get_default_parameter

# Load the event logs
low_level_log = pm4py.read_xes('resources/test_data/test-low-level-log.xes')
high_level_log = pm4py.read_xes('resources/test_data/test-high-level-log.xes')

parameter = get_default_parameter()
parameter[ParameterKey.PARAM_GROUP_ATTRIBUTES] = []
optimize(low_level_log, high_level_log, parameter, n_trials=10)

See optimize API for details.