quality_measure module¶
Measuring the quality of a machine learning algorithm.
- class gemseo.mlearning.quality_measures.quality_measure.MLQualityMeasure(algo, fit_transformers=True)[source]¶
Bases:
object
An abstract quality measure to assess a machine learning algorithm.
This measure can be minimized (e.g.
MSEMeasure
) or maximized (e.g.R2Measure
).It can be evaluated from the learning dataset, from a test dataset or using resampling techniques such as boostrap, cross-validation or leave-one-out.
The machine learning algorithm is usually trained. If not but required by the evaluation technique, the quality measure will train it.
Lastly, the transformers of the algorithm fitted from the learning dataset can be used as is by the resampling methods or re-fitted for each algorithm trained on a subset of the learning dataset.
- Parameters:
- class EvaluationMethod(value)[source]¶
Bases:
StrEnum
The evaluation method.
- BOOTSTRAP = 'BOOTSTRAP'¶
The name of the method to evaluate the measure by bootstrap.
- KFOLDS = 'KFOLDS'¶
The name of the method to evaluate the measure by cross-validation.
- LEARN = 'LEARN'¶
The name of the method to evaluate the measure on the learning dataset.
- LOO = 'LOO'¶
The name of the method to evaluate the measure by leave-one-out.
- TEST = 'TEST'¶
The name of the method to evaluate the measure on a test dataset.
- abstract evaluate_bootstrap(n_replicates=100, samples=None, multioutput=True, seed=None)[source]¶
Evaluate the quality measure using the bootstrap technique.
- Parameters:
n_replicates (int) –
The number of bootstrap replicates.
By default it is set to 100.
samples (Sequence[int] | None) – The indices of the learning samples. If
None
, use the whole learning dataset.multioutput (bool) –
If
True
, return the quality measure for each output component. Otherwise, average these measures.By default it is set to True.
seed (int | None) – The seed of the pseudo-random number generator. If
None
, then an unpredictable generator will be used.
- Returns:
The value of the quality measure.
- Return type:
MeasureType
- abstract evaluate_kfolds(n_folds=5, samples=None, multioutput=True, randomize=True, seed=None)[source]¶
Evaluate the quality measure using the k-folds technique.
- Parameters:
n_folds (int) –
The number of folds.
By default it is set to 5.
samples (Sequence[int] | None) – The indices of the learning samples. If
None
, use the whole learning dataset.multioutput (bool) –
If
True
, return the quality measure for each output component. Otherwise, average these measures.By default it is set to True.
randomize (bool) –
Whether to shuffle the samples before dividing them in folds.
By default it is set to True.
seed (int | None) – The seed of the pseudo-random number generator. If
None
, then an unpredictable generator will be used.
- Returns:
The value of the quality measure.
- Return type:
MeasureType
- abstract evaluate_learn(samples=None, multioutput=True)[source]¶
Evaluate the quality measure from the learning dataset.
- Parameters:
- Returns:
The value of the quality measure.
- Return type:
MeasureType
- evaluate_loo(samples=None, multioutput=True)[source]¶
Evaluate the quality measure using the leave-one-out technique.
- Parameters:
- Returns:
The value of the quality measure.
- Return type:
MeasureType
- abstract evaluate_test(test_data, samples=None, multioutput=True)[source]¶
Evaluate the quality measure using a test dataset.
- Parameters:
- Returns:
The value of the quality measure.
- Return type:
MeasureType
- classmethod is_better(val1, val2)[source]¶
Compare the quality between two values.
This method returns
True
if the first one is better than the second one.For most measures, a smaller value is “better” than a larger one (MSE etc.). But for some, like an R2-measure, higher values are better than smaller ones. This comparison method correctly handles this, regardless of the type of measure.
- class gemseo.mlearning.quality_measures.quality_measure.MLQualityMeasureFactory[source]¶
Bases:
BaseFactory
A factory of
MLQualityMeasure
.- Return type:
- create(class_name, **options)¶
Return an instance of a class.
- get_class(name)¶
Return a class from its name.
- Parameters:
name (str) – The name of the class.
- Returns:
The class.
- Raises:
ImportError – If the class is not available.
- Return type:
- get_default_option_values(name)¶
Return the constructor kwargs default values of a class.
- get_default_sub_option_values(name, **options)¶
Return the default values of the sub options of a class.
- Parameters:
- Returns:
The JSON grammar.
- Return type:
- get_library_name(name)¶
Return the name of the library related to the name of a class.
- get_options_doc(name)¶
Return the constructor documentation of a class.
- get_options_grammar(name, write_schema=False, schema_path=None)¶
Return the options JSON grammar for a class.
Attempt to generate a JSONGrammar from the arguments of the __init__ method of the class.
- Parameters:
- Returns:
The JSON grammar.
- Return type:
- get_sub_options_grammar(name, **options)¶
Return the JSONGrammar of the sub options of a class.
- Parameters:
- Returns:
The JSON grammar.
- Return type:
- is_available(name)¶
Return whether a class can be instantiated.
- update()¶
Search for the classes that can be instantiated.
- The search is done in the following order:
The fully qualified module names
The plugin packages
The packages from the environment variables
- Return type:
None