culebra.tools.Experiment
class¶
- class Experiment(trainer: Trainer, untie_best_fitness_function: FitnessFunction | None = None, test_fitness_function: FitnessFunction | None = None, results_base_filename: str | None = None, hyperparameters: dict | None = None)¶
Set a trainer evaluation.
- Parameters:
trainer (
Trainer
) – The trainer methoduntie_best_fitness_function (
FitnessFunction
, optional) – The fitness function used to select the best solution from those found by the trainer in case of a tie. If set toNone
, the training fitness function will be used. Defaults toNone
.test_fitness_function (
FitnessFunction
, optional) – The fitness function used to test. If set toNone
, the training fitness function will be used. Defaults toNone
.results_base_filename (
str
, optional) – The base filename to save the results. If set toNone
,DEFAULT_RESULTS_BASENAME
is used. Defaults toNone
hyperparameters (
dict
, optional) – Hyperparameter values used in this evaluation
- Raises:
TypeError – If trainer is not a valid trainer
TypeError – If test_fitness_function is not a valid fitness function
TypeError – If results_base_filename is not a valid file name
TypeError – If hyperparameters is not a dictionary
ValueError – If the keys in hyperparameters are not strings
ValueError – If any key in hyperparameters is reserved
Class attributes¶
- Experiment.feature_metric_functions = {'Rank': <function Metrics.rank>, 'Relevance': <function Metrics.relevance>}¶
Metrics calculated for the features in the set of solutions.
- Experiment.stats_functions = {'Avg': <function mean>, 'Max': <function max>, 'Min': <function min>, 'Std': <function std>}¶
Statistics calculated for the solutions.
Class methods¶
- classmethod Experiment.load_pickle(filename: str) Base ¶
Load a pickled object from a file.
- Parameters:
filename (
str
) – The file name.- Raises:
TypeError – If filename is not a valid file name
ValueError – If the filename extension is not
PICKLE_FILE_EXTENSION
- classmethod Experiment.from_config(config_script_filename: str | None = None) Evaluation ¶
Generate a new evaluation from a configuration file.
- Parameters:
config_script_filename (
str
, optional) – Path to the configuration file. If set toNone
,DEFAULT_CONFIG_SCRIPT_FILENAME
is used. Defaults toNone
- Raises:
RuntimeError – If config_script_filename is an invalid file path or an invalid configuration file
- classmethod Experiment.generate_run_script(config_filename: str | None = None, run_script_filename: str | None = None) None ¶
Generate a script to run an evaluation.
The parameters for the evaluation are taken from a configuration file.
- Parameters:
config_filename (
str
) – Path to the configuration file. It can be whether a configuration script or a pickledEvaluation
instance. If set toNone
,DEFAULT_CONFIG_SCRIPT_FILENAME
is used. Defaults toNone
run_script_filename (
str
, optional.) – File path to store the run script. If set toNone
,DEFAULT_RUN_SCRIPT_FILENAME
is used. Defaults toNone
- Raises:
TypeError – If config_filename or run_script_filename are not a valid filename
ValueError – If the extensions of config_filename or run_script_filename are not valid.
Properties¶
- property Experiment.untie_best_fitness_function: FitnessFunction | None¶
Get and set the fitness function to untie the best solutions.
- property Experiment.test_fitness_function: FitnessFunction | None¶
Get and set the test fitness function.
- property Experiment.results_base_filename: str | None¶
Get and set the results base filename.
- Getter:
Return the results base filename
- Setter:
Set a new results base filename. If set to
None
,DEFAULT_RESULTS_BASENAME
is used.- Raises:
TypeError – If set to an invalid file name
- property Experiment.results_pickle_filename: str¶
Get the filename used to save the pickled results.
- Type:
- property Experiment.results_excel_filename: str¶
Get the filename used to save the results in Excel format.
- Type:
- property Experiment.hyperparameters: dict | None¶
Get and set the hyperparameter values used for the evaluation.
- Getter:
Return the hyperparameter values
- Setter:
Set a new set of hyperparameter values.
- Raises:
TypeError – If the hyperparameters are not in a dictionary
ValueError – If the keys of the dictionary are not strings
ValueError – If any key in the dictionary is reserved
- property Experiment.best_solutions: Sequence[HallOfFame] | None¶
Return the best solutions found by the trainer.
Methods¶
- Experiment.save_pickle(filename: str) None ¶
Pickle this object and save it to a file.
- Parameters:
filename (
str
) – The file name.- Raises:
TypeError – If filename is not a valid file name
ValueError – If the filename extension is not
PICKLE_FILE_EXTENSION
Private methods¶
- Experiment._do_training() None ¶
Perform the training step.
Train the trainer and get the best solutions and the training stats.
- Experiment._add_fitness(result_key: str) None ¶
Add the fitness values to the solutions found.
- Parameters:
result_key (
str
) – Result key.
- Experiment._add_fitness_stats(result_key: str) None ¶
Perform some stats on the best solutions fitness.
- Parameters:
result_key (
str
) – Result key.
- Experiment._add_execution_metric(metric: str, value: Any) None ¶
Add an execution metric to the experiment results.