mlrl.testbed.experiments package¶
Author Michael Rapp (michael.rapp.ml@gmail.com)
Provides classes that allow running experiments.
- class mlrl.testbed.experiments.ClassificationProblem¶
Bases:
ProblemDomain,ABCRepresents a classification problem.
- NAME = 'classification'¶
- property problem_name: str¶
See
mlrl.testbed.experiments.problem_domain.ProblemDomain.learner_name()
- class mlrl.testbed.experiments.Experiment(args: Namespace, initial_state: ExperimentState, dataset_splitter: DatasetSplitter, training_procedure: TrainingProcedure, prediction_procedure: PredictionProcedure)¶
Bases:
ABCAn abstract base class for all experiments that train and evaluate a machine learning model.
- class Builder(initial_state: ExperimentState, dataset_splitter: DatasetSplitter)¶
Bases:
ABCAn abstract base class for all classes that allow to configure and create instances of an experiment.
- Factory¶
alias of
Callable[[Namespace],Experiment.Builder]
- add_before_start_output_writers(*output_writers: OutputWriter) Builder¶
Adds one or several output writers that should be invoked before an experiment is started.
- Parameters:
output_writers – The output writers to be added
- Returns:
The builder itself
- add_input_readers(*input_readers: InputReader) Builder¶
Adds one or several input readers that should be invoked when the experiment is started.
- Parameters:
input_readers – The input readers to be added
- Returns:
The builder itself
- add_listeners(*listeners: ExperimentListener) Builder¶
Adds one or several listeners that should be informed about certain events during the experiment.
- Parameters:
listeners – The listeners that should be added
- Returns:
The builder itself
- add_post_training_output_writers(*output_writers: OutputWriter) Builder¶
Adds one or several output writers that should be invoked after a machine learning model has been trained.
- Parameters:
output_writers – The output writers to be added
- Returns:
The builder itself
- add_pre_training_output_writers(*output_writers: OutputWriter) Builder¶
Adds one or several output writers that should be invoked before a machine learning model is trained.
- Parameters:
output_writers – The output writers to be added
- Returns:
The builder itself
- add_prediction_output_writers(*output_writers: OutputWriter) Builder¶
Adds one or several output writers that should be invoked after predictions have been obtained from a machine learning model.
- Parameters:
output_writers – The output writers to be added
- Returns:
The builder itself
- build(args: Namespace) Experiment¶
Creates and returns a new experiment according to the specified configuration.
- Parameters:
args – The command line arguments specified by the user
- Returns:
The experiment that has been created
- property has_output_file_writers: bool¶
True, if any output writers that write to output files have been added to the builder, False otherwise.
- property output_writers: chain[OutputWriter]¶
A generator that provides access to all output writers that have been added to the builder.
- run(args: Namespace)¶
Creates and runs a new experiment according to the specified configuration.
- Parameters:
args – The command line arguments specified by the user
- set_missing_input_policy(missing_input_policy: MissingInputPolicy) Builder¶
Sets the policy to be used if an error occurs while reading input data.
- Parameters:
missing_input_policy – The policy to be set
- Returns:
The builder itself
- set_output_error_policy(output_error_policy: OutputErrorPolicy) Builder¶
Sets the policy to be used if an error occurs while writing experimental results.
- Parameters:
output_error_policy – The policy to be set
- Returns:
The builder itself
- set_predict_for_test_dataset(predict_for_test_dataset: bool) Builder¶
Sets whether predictions should be obtained for the test dataset, if available, or not.
- Parameters:
predict_for_test_dataset – True, if predictions should be obtained for the test dataset, if available, False otherwise
- Returns:
The builder itself
- set_predict_for_training_dataset(predict_for_training_dataset: bool) Builder¶
Sets whether predictions should be obtained for the training dataset or not.
- Parameters:
predict_for_training_dataset – True, if predictions should be obtained for the training dataset, False otherwise
- Returns:
The builder itself
- class InputReaderListener(experiment: Experiment, args: Namespace)¶
Bases:
ExperimentListenerUpdates the state of an experiment by invoking the input readers that have been added to an experiment.
- on_start(state: ExperimentState) ExperimentState¶
May be overridden by subclasses in order to be notified when an experiment has been started on a specific dataset. May be called multiple times if several datasets are used.
- Parameters:
state – The current state of the experiment
- Returns:
An update of the given state
- class OutputWriterListener(experiment: Experiment)¶
Bases:
ExperimentListenerPasses the state of an experiment to output writers that have been added to an experiment.
- after_prediction(state: ExperimentState)¶
May be overridden by subclasses in order to be notified after predictions for a dataset have been obtained from a machine learning model. May be called multiple times if predictions are obtained for several datasets.
- Parameters:
state – The current state of the experiment
- Returns:
An update of the given state
- after_training(state: ExperimentState) ExperimentState¶
May be overridden by subclasses in order to be notified after a machine learning model has been trained.
- Parameters:
state – The current state of the experiment
- Returns:
An update of the given state
- before_start(state: ExperimentState)¶
May be overridden by subclasses in order to be notified just before the experiment starts.
- Parameters:
state – The current state of the experiment
- Returns:
An update of the given state
- before_training(state: ExperimentState) ExperimentState¶
May be overridden by subclasses in order to be notified before a machine learning model is trained.
- Parameters:
state – The current state of the experiment
- Returns:
An update of the given state
- class PredictionProcedure¶
Bases:
ABCAn abstract base class for all classes that allow to obtain predictions for given query examples from a previously trained learner.
- abstractmethod predict(state: ExperimentState) Generator[PredictionState, None, None]¶
Obtains predictions for given query examples from a previously trained learner.
- Parameters:
state – The current state of the experiment
- Returns:
The PredictionState that stores the result of the prediction process
- class TrainingProcedure¶
Bases:
ABCAn abstract base class for all classes that allow to fit a learner to a training dataset.
- abstractmethod train(learner: Any | None, parameters: dict[str, Any], dataset: Any) TrainingState¶
Fits a learner to a training dataset.
- Parameters:
learner – An existing learner or None, if a new learner must be trained from scratch
parameters – The algorithmic parameters to be used
dataset – The training dataset
- Returns:
A TrainingState that stores the result of the training process
- class mlrl.testbed.experiments.ProblemDomain¶
Bases:
ABCAn abstract base class for all classes that represent a specific problem domain.
- class mlrl.testbed.experiments.RegressionProblem¶
Bases:
ProblemDomain,ABCRepresents a regression problem.
- NAME = 'regression'¶
- property problem_name: str¶
See
mlrl.testbed.experiments.problem_domain.ProblemDomain.learner_name()
Subpackages¶
- mlrl.testbed.experiments.input package
- Subpackages
- Submodules
- mlrl.testbed.experiments.output package
- Subpackages
- Submodules
Submodules¶
- mlrl.testbed.experiments.context module
- mlrl.testbed.experiments.data module
- mlrl.testbed.experiments.dataset module
- mlrl.testbed.experiments.dataset_type module
- mlrl.testbed.experiments.experiment module
DefaultProcedureExperimentExperiment.BuilderExperiment.Builder.FactoryExperiment.Builder.add_before_start_output_writers()Experiment.Builder.add_input_readers()Experiment.Builder.add_listeners()Experiment.Builder.add_post_training_output_writers()Experiment.Builder.add_pre_training_output_writers()Experiment.Builder.add_prediction_output_writers()Experiment.Builder.before_start_output_writersExperiment.Builder.build()Experiment.Builder.has_output_file_writersExperiment.Builder.input_readersExperiment.Builder.listenersExperiment.Builder.output_writersExperiment.Builder.post_training_output_writersExperiment.Builder.pre_training_output_writersExperiment.Builder.prediction_output_writersExperiment.Builder.run()Experiment.Builder.set_missing_input_policy()Experiment.Builder.set_output_error_policy()Experiment.Builder.set_predict_for_test_dataset()Experiment.Builder.set_predict_for_training_dataset()
Experiment.InputReaderListenerExperiment.OutputWriterListenerExperiment.PredictionProcedureExperiment.TrainingProcedureExperiment.before_start_output_writersExperiment.input_readersExperiment.listenersExperiment.post_training_output_writersExperiment.pre_training_output_writersExperiment.prediction_output_writers
ExperimentListenerExperimentalProcedure
- mlrl.testbed.experiments.file_path module
- mlrl.testbed.experiments.fold module
- mlrl.testbed.experiments.meta_data module
- mlrl.testbed.experiments.prediction_scope module
- mlrl.testbed.experiments.prediction_type module
- mlrl.testbed.experiments.problem_domain module
- mlrl.testbed.experiments.recipe module
- mlrl.testbed.experiments.state module
ExperimentModeExperimentStateExperimentState.argsExperimentState.datasetExperimentState.dataset_as()ExperimentState.dataset_typeExperimentState.extrasExperimentState.foldExperimentState.folding_strategyExperimentState.learner_as()ExperimentState.meta_dataExperimentState.modeExperimentState.parametersExperimentState.prediction_resultExperimentState.problem_domainExperimentState.training_result
PredictionResultPredictionStateTrainingState
- mlrl.testbed.experiments.table module
AlignmentColumnColumnWiseTableColumnWiseTable.ColumnColumnWiseTable.HeaderRowColumnWiseTable.RowColumnWiseTable.add_column()ColumnWiseTable.alignmentsColumnWiseTable.columnsColumnWiseTable.header_rowColumnWiseTable.num_columnsColumnWiseTable.num_rowsColumnWiseTable.rowsColumnWiseTable.slice()ColumnWiseTable.sort_by_headers()ColumnWiseTable.to_column_wise_table()ColumnWiseTable.to_row_wise_table()
HeaderRowRowRowWiseTableRowWiseTable.ColumnRowWiseTable.HeaderRowRowWiseTable.RowRowWiseTable.add_row()RowWiseTable.aggregate()RowWiseTable.alignmentsRowWiseTable.columnsRowWiseTable.copy()RowWiseTable.header_rowRowWiseTable.num_columnsRowWiseTable.num_rowsRowWiseTable.rowsRowWiseTable.sort_by_columns()RowWiseTable.to_column_wise_table()RowWiseTable.to_row_wise_table()
Table
- mlrl.testbed.experiments.timer module