# 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. ```python 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](api.html#module-ecsea.training) for details. ## Parameters Parameters that can be used in the training phase: See [CLI](cli.html#parameters) for the description of the various parameters. ## Optimization You can optimize the parameter by conducting a hyperparameter-optimization: ```python 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](api.html#module-ecsea.optimize) for details.