Measure the quality of a machine learning algorithm¶
Here is the baseclass to measure the quality of machine learning algorithms.
The concept of quality measure is implemented with the MLQualityMeasure
class.
Classes:
|
An abstract quality measure for machine learning algorithms. |
|
A factory of |
Functions:
|
Modify a sequence in-place by shuffling its contents. |
- class gemseo.mlearning.qual_measure.quality_measure.MLQualityMeasure(algo)[source]
An abstract quality measure for machine learning algorithms.
- algo
The machine learning algorithm.
- Type
- Parameters
algo (MLAlgo) – A machine learning algorithm.
- Return type
None
Methods:
evaluate
([method, samples])Evaluate the quality measure.
evaluate_bootstrap
([n_replicates, samples, ...])Evaluate the quality measure using the bootstrap technique.
evaluate_kfolds
([n_folds, samples, ...])Evaluate the quality measure using the k-folds technique.
evaluate_learn
([samples, multioutput])Evaluate the quality measure using the learning dataset.
evaluate_loo
([samples, multioutput])Evaluate the quality measure using the leave-one-out technique.
evaluate_test
(test_data[, samples, multioutput])Evaluate the quality measure using a test dataset.
is_better
(val1, val2)Compare the quality between two values.
- evaluate(method='learn', samples=None, **options)[source]
Evaluate the quality measure.
- Parameters
method (str) –
The name of the method to evaluate the quality measure.
By default it is set to learn.
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
**options (Optional[Union[Sequence[int], bool, int, gemseo.core.dataset.Dataset]]) – The options of the estimation method (e.g. ‘test_data’ for
method –
one ('n_replicates' for the bootstrap) –
...) –
- Returns
The value of the quality measure.
- Raises
ValueError – If the name of the method is unknown.
- Return type
Union[float, numpy.ndarray]
- evaluate_bootstrap(n_replicates=100, samples=None, multioutput=True)[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 (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
If True, return the quality measure for each output component. Otherwise, average these measures.
By default it is set to True.
- Returns
The value of the quality measure.
- Return type
NoReturn
- evaluate_kfolds(n_folds=5, samples=None, multioutput=True, randomize=False)[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 (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
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 False.
- Returns
The value of the quality measure.
- Return type
NoReturn
- evaluate_learn(samples=None, multioutput=True)[source]
Evaluate the quality measure using the learning dataset.
- Parameters
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
Whether to return the quality measure for each output component. If not, average these measures.
By default it is set to True.
- Returns
The value of the quality measure.
- Return type
NoReturn
- evaluate_loo(samples=None, multioutput=True)[source]
Evaluate the quality measure using the leave-one-out technique.
- Parameters
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
If True, return the quality measure for each output component. Otherwise, average these measures.
By default it is set to True.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_test(test_data, samples=None, multioutput=True)[source]
Evaluate the quality measure using a test dataset.
- Parameters
dataset – The test dataset.
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
If True, return the quality measure for each output component. Otherwise, average these measures.
By default it is set to True.
test_data (gemseo.core.dataset.Dataset) –
- Returns
The value of the quality measure.
- Return type
NoReturn
- classmethod is_better(val1, val2)[source]
Compare the quality between two values.
This methods 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.
- Parameters
val1 (float) – The value of the first quality measure.
val2 (float) – The value of the second quality measure.
- Returns
Whether val1 is of better quality than val2.
- Return type
bool
- class gemseo.mlearning.qual_measure.quality_measure.MLQualityMeasureFactory(*args, **kwargs)[source]
A factory of
MLQualityMeasure
.- Parameters
base_class – The base class to be considered.
module_names – The fully qualified modules names to be searched.
Attributes:
Return the available classes.
Methods:
create
(class_name, **options)Return an instance of a class.
get_class
(name)Return a class from its name.
Return the constructor kwargs default values of a class.
get_default_sub_options_values
(name, **options)Return the default values of the sub options of a class.
get_options_doc
(name)Return the constructor documentation of a class.
get_options_grammar
(name[, write_schema, ...])Return the options JSON grammar for a class.
get_sub_options_grammar
(name, **options)Return the JSONGrammar of the sub options of a class.
is_available
(name)Return whether a class can be instantiated.
update
()Search for the classes that can be instantiated.
- property classes
Return the available classes.
- Returns
The sorted names of the available classes.
- create(class_name, **options)
Return an instance of a class.
- Parameters
class_name (str) – The name of the class.
**options (Any) – The arguments to be passed to the class constructor.
- Returns
The instance of the class.
- Raises
TypeError – If the class cannot be instantiated.
- Return type
Any
- 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
Type[Any]
- get_default_options_values(name)
Return the constructor kwargs default values of a class.
- Parameters
name (str) – The name of the class.
- Returns
The mapping from the argument names to their default values.
- Return type
Dict[str, Union[str, int, float, bool]]
- get_default_sub_options_values(name, **options)
Return the default values of the sub options of a class.
- Parameters
name (str) – The name of the class.
**options (str) – The options to be passed to the class required to deduce the sub options.
- Returns
The JSON grammar.
- Return type
- get_options_doc(name)
Return the constructor documentation of a class.
- Parameters
name (str) – The name of the class.
- Returns
The mapping from the argument names to their documentation.
- Return type
Dict[str, str]
- get_options_grammar(name, write_schema=False, schema_file=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
name (str) – The name of the class.
write_schema (bool) –
If True, write the JSON schema to a file.
By default it is set to False.
schema_file (Optional[str]) –
The path to the JSON schema file. If None, the file is saved in the current directory in a file named after the name of the class.
By default it is set to None.
- Returns
The JSON grammar.
- Return type
- get_sub_options_grammar(name, **options)
Return the JSONGrammar of the sub options of a class.
- Parameters
name (str) – The name of the class.
**options (str) – The options to be passed to the class required to deduce the sub options.
- Returns
The JSON grammar.
- Return type
- is_available(name)
Return whether a class can be instantiated.
- Parameters
name (str) – The name of the class.
- Returns
Whether the class can be instantiated.
- Return type
bool
- 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
- gemseo.mlearning.qual_measure.quality_measure.shuffle(x)
Modify a sequence in-place by shuffling its contents.
This function only shuffles the array along the first axis of a multi-dimensional array. The order of sub-arrays is changed but their contents remains the same.
Note
New code should use the
shuffle
method of adefault_rng()
instance instead; please see the random-quick-start.- Parameters
x (ndarray or MutableSequence) – The array, list or mutable sequence to be shuffled.
- Returns
- Return type
None
See also
Generator.shuffle
which should be used for new code.
Examples
>>> arr = np.arange(10) >>> np.random.shuffle(arr) >>> arr [1 7 5 2 9 4 3 6 0 8] # random
Multi-dimensional arrays are only shuffled along the first axis:
>>> arr = np.arange(9).reshape((3, 3)) >>> np.random.shuffle(arr) >>> arr array([[3, 4, 5], # random [6, 7, 8], [0, 1, 2]])
Here is the baseclass to measure the error of machine learning algorithms.
The concept of error measure is implemented with the MLErrorMeasure
class and
proposes different evaluation methods.
Classes:
|
An abstract error measure for machine learning. |
Functions:
|
Generates a random sample from a given 1-D array |
- class gemseo.mlearning.qual_measure.error_measure.MLErrorMeasure(algo)[source]
An abstract error measure for machine learning.
- algo
The machine learning algorithm.
- Type
- Parameters
algo (MLSupervisedAlgo) – A machine learning algorithm for supervised learning.
- Return type
None
Methods:
evaluate
([method, samples])Evaluate the quality measure.
evaluate_bootstrap
([n_replicates, samples, ...])Evaluate the quality measure using the bootstrap technique.
evaluate_kfolds
([n_folds, samples, ...])Evaluate the quality measure using the k-folds technique.
evaluate_learn
([samples, multioutput])Evaluate the quality measure using the learning dataset.
evaluate_loo
([samples, multioutput])Evaluate the quality measure using the leave-one-out technique.
evaluate_test
(test_data[, samples, multioutput])Evaluate the quality measure using a test dataset.
is_better
(val1, val2)Compare the quality between two values.
- evaluate(method='learn', samples=None, **options)
Evaluate the quality measure.
- Parameters
method (str) –
The name of the method to evaluate the quality measure.
By default it is set to learn.
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
**options (Optional[Union[Sequence[int], bool, int, gemseo.core.dataset.Dataset]]) – The options of the estimation method (e.g. ‘test_data’ for
method –
one ('n_replicates' for the bootstrap) –
...) –
- Returns
The value of the quality measure.
- Raises
ValueError – If the name of the method is unknown.
- Return type
Union[float, numpy.ndarray]
- evaluate_bootstrap(n_replicates=100, samples=None, multioutput=True)[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 (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
If True, return the quality measure for each output component. Otherwise, average these measures.
By default it is set to True.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_kfolds(n_folds=5, samples=None, multioutput=True, randomize=False)[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 (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
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 False.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_learn(samples=None, multioutput=True)[source]
Evaluate the quality measure using the learning dataset.
- Parameters
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
Whether to return the quality measure for each output component. If not, average these measures.
By default it is set to True.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_loo(samples=None, multioutput=True)
Evaluate the quality measure using the leave-one-out technique.
- Parameters
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
If True, return the quality measure for each output component. Otherwise, average these measures.
By default it is set to True.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_test(test_data, samples=None, multioutput=True)[source]
Evaluate the quality measure using a test dataset.
- Parameters
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
If True, return the quality measure for each output component. Otherwise, average these measures.
By default it is set to True.
test_data (gemseo.core.dataset.Dataset) –
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- classmethod is_better(val1, val2)
Compare the quality between two values.
This methods 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.
- Parameters
val1 (float) – The value of the first quality measure.
val2 (float) – The value of the second quality measure.
- Returns
Whether val1 is of better quality than val2.
- Return type
bool
- gemseo.mlearning.qual_measure.error_measure.choice(a, size=None, replace=True, p=None)
Generates a random sample from a given 1-D array
New in version 1.7.0.
Note
New code should use the
choice
method of adefault_rng()
instance instead; please see the random-quick-start.- Parameters
a (1-D array-like or int) – If an ndarray, a random sample is generated from its elements. If an int, the random sample is generated as if a were np.arange(a)
size (int or tuple of ints, optional) – Output shape. If the given shape is, e.g.,
(m, n, k)
, thenm * n * k
samples are drawn. Default is None, in which case a single value is returned.replace (boolean, optional) – Whether the sample is with or without replacement
p (1-D array-like, optional) – The probabilities associated with each entry in a. If not given the sample assumes a uniform distribution over all entries in a.
- Returns
samples – The generated random samples
- Return type
single item or ndarray
- Raises
ValueError – If a is an int and less than zero, if a or p are not 1-dimensional, if a is an array-like of size 0, if p is not a vector of probabilities, if a and p have different lengths, or if replace=False and the sample size is greater than the population size
See also
randint
,shuffle
,permutation
Generator.choice
which should be used in new code
Notes
Sampling random rows from a 2-D array is not possible with this function, but is possible with Generator.choice through its
axis
keyword.Examples
Generate a uniform random sample from np.arange(5) of size 3:
>>> np.random.choice(5, 3) array([0, 3, 4]) # random >>> #This is equivalent to np.random.randint(0,5,3)
Generate a non-uniform random sample from np.arange(5) of size 3:
>>> np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0]) array([3, 3, 0]) # random
Generate a uniform random sample from np.arange(5) of size 3 without replacement:
>>> np.random.choice(5, 3, replace=False) array([3,1,0]) # random >>> #This is equivalent to np.random.permutation(np.arange(5))[:3]
Generate a non-uniform random sample from np.arange(5) of size 3 without replacement:
>>> np.random.choice(5, 3, replace=False, p=[0.1, 0, 0.3, 0.6, 0]) array([2, 3, 0]) # random
Any of the above can be repeated with an arbitrary array-like instead of just integers. For instance:
>>> aa_milne_arr = ['pooh', 'rabbit', 'piglet', 'Christopher'] >>> np.random.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3]) array(['pooh', 'pooh', 'pooh', 'Christopher', 'piglet'], # random dtype='<U11')
Here is the baseclass to measure the quality of machine learning algorithms.
The concept of clustering quality measure is implemented with the
MLClusteringMeasure
class and proposes different evaluation methods.
Classes:
|
An abstract clustering measure for clustering algorithms. |
An abstract clustering measure for predictive clustering algorithms. |
Functions:
|
Generates a random sample from a given 1-D array |
- class gemseo.mlearning.qual_measure.cluster_measure.MLClusteringMeasure(algo)[source]
An abstract clustering measure for clustering algorithms.
- algo
The machine learning algorithm.
- Type
- Parameters
algo (MLClusteringAlgo) – A machine learning algorithm for clustering.
- Return type
None
Methods:
evaluate
([method, samples])Evaluate the quality measure.
evaluate_bootstrap
([n_replicates, samples, ...])Evaluate the quality measure using the bootstrap technique.
evaluate_kfolds
([n_folds, samples, ...])Evaluate the quality measure using the k-folds technique.
evaluate_learn
([samples, multioutput])Evaluate the quality measure using the learning dataset.
evaluate_loo
([samples, multioutput])Evaluate the quality measure using the leave-one-out technique.
evaluate_test
(test_data[, samples, multioutput])Evaluate the quality measure using a test dataset.
is_better
(val1, val2)Compare the quality between two values.
- evaluate(method='learn', samples=None, **options)
Evaluate the quality measure.
- Parameters
method (str) –
The name of the method to evaluate the quality measure.
By default it is set to learn.
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
**options (Optional[Union[Sequence[int], bool, int, gemseo.core.dataset.Dataset]]) – The options of the estimation method (e.g. ‘test_data’ for
method –
one ('n_replicates' for the bootstrap) –
...) –
- Returns
The value of the quality measure.
- Raises
ValueError – If the name of the method is unknown.
- Return type
Union[float, numpy.ndarray]
- evaluate_bootstrap(n_replicates=100, samples=None, multioutput=True)
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 (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
If True, return the quality measure for each output component. Otherwise, average these measures.
By default it is set to True.
- Returns
The value of the quality measure.
- Return type
NoReturn
- evaluate_kfolds(n_folds=5, samples=None, multioutput=True, randomize=False)
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 (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
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 False.
- Returns
The value of the quality measure.
- Return type
NoReturn
- evaluate_learn(samples=None, multioutput=True)[source]
Evaluate the quality measure using the learning dataset.
- Parameters
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
Whether to return the quality measure for each output component. If not, average these measures.
By default it is set to True.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_loo(samples=None, multioutput=True)
Evaluate the quality measure using the leave-one-out technique.
- Parameters
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
If True, return the quality measure for each output component. Otherwise, average these measures.
By default it is set to True.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_test(test_data, samples=None, multioutput=True)
Evaluate the quality measure using a test dataset.
- Parameters
dataset – The test dataset.
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
If True, return the quality measure for each output component. Otherwise, average these measures.
By default it is set to True.
test_data (gemseo.core.dataset.Dataset) –
- Returns
The value of the quality measure.
- Return type
NoReturn
- classmethod is_better(val1, val2)
Compare the quality between two values.
This methods 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.
- Parameters
val1 (float) – The value of the first quality measure.
val2 (float) – The value of the second quality measure.
- Returns
Whether val1 is of better quality than val2.
- Return type
bool
- class gemseo.mlearning.qual_measure.cluster_measure.MLPredictiveClusteringMeasure(algo)[source]
An abstract clustering measure for predictive clustering algorithms.
- algo
The machine learning algorithm.
- Type
- Parameters
algo (MLPredictiveClusteringAlgo) – A machine learning algorithm for predictive clustering.
- Return type
None
Methods:
evaluate
([method, samples])Evaluate the quality measure.
evaluate_bootstrap
([n_replicates, samples, ...])Evaluate the quality measure using the bootstrap technique.
evaluate_kfolds
([n_folds, samples, ...])Evaluate the quality measure using the k-folds technique.
evaluate_learn
([samples, multioutput])Evaluate the quality measure using the learning dataset.
evaluate_loo
([samples, multioutput])Evaluate the quality measure using the leave-one-out technique.
evaluate_test
(test_data[, samples, multioutput])Evaluate the quality measure using a test dataset.
is_better
(val1, val2)Compare the quality between two values.
- evaluate(method='learn', samples=None, **options)
Evaluate the quality measure.
- Parameters
method (str) –
The name of the method to evaluate the quality measure.
By default it is set to learn.
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
**options (Optional[Union[Sequence[int], bool, int, gemseo.core.dataset.Dataset]]) – The options of the estimation method (e.g. ‘test_data’ for
method –
one ('n_replicates' for the bootstrap) –
...) –
- Returns
The value of the quality measure.
- Raises
ValueError – If the name of the method is unknown.
- Return type
Union[float, numpy.ndarray]
- evaluate_bootstrap(n_replicates=100, samples=None, multioutput=True)[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 (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
If True, return the quality measure for each output component. Otherwise, average these measures.
By default it is set to True.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_kfolds(n_folds=5, samples=None, multioutput=True, randomize=False)[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 (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
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 False.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_learn(samples=None, multioutput=True)
Evaluate the quality measure using the learning dataset.
- Parameters
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
Whether to return the quality measure for each output component. If not, average these measures.
By default it is set to True.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_loo(samples=None, multioutput=True)
Evaluate the quality measure using the leave-one-out technique.
- Parameters
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
If True, return the quality measure for each output component. Otherwise, average these measures.
By default it is set to True.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_test(test_data, samples=None, multioutput=True)[source]
Evaluate the quality measure using a test dataset.
- Parameters
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
If True, return the quality measure for each output component. Otherwise, average these measures.
By default it is set to True.
test_data (gemseo.core.dataset.Dataset) –
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- classmethod is_better(val1, val2)
Compare the quality between two values.
This methods 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.
- Parameters
val1 (float) – The value of the first quality measure.
val2 (float) – The value of the second quality measure.
- Returns
Whether val1 is of better quality than val2.
- Return type
bool
- gemseo.mlearning.qual_measure.cluster_measure.choice(a, size=None, replace=True, p=None)
Generates a random sample from a given 1-D array
New in version 1.7.0.
Note
New code should use the
choice
method of adefault_rng()
instance instead; please see the random-quick-start.- Parameters
a (1-D array-like or int) – If an ndarray, a random sample is generated from its elements. If an int, the random sample is generated as if a were np.arange(a)
size (int or tuple of ints, optional) – Output shape. If the given shape is, e.g.,
(m, n, k)
, thenm * n * k
samples are drawn. Default is None, in which case a single value is returned.replace (boolean, optional) – Whether the sample is with or without replacement
p (1-D array-like, optional) – The probabilities associated with each entry in a. If not given the sample assumes a uniform distribution over all entries in a.
- Returns
samples – The generated random samples
- Return type
single item or ndarray
- Raises
ValueError – If a is an int and less than zero, if a or p are not 1-dimensional, if a is an array-like of size 0, if p is not a vector of probabilities, if a and p have different lengths, or if replace=False and the sample size is greater than the population size
See also
randint
,shuffle
,permutation
Generator.choice
which should be used in new code
Notes
Sampling random rows from a 2-D array is not possible with this function, but is possible with Generator.choice through its
axis
keyword.Examples
Generate a uniform random sample from np.arange(5) of size 3:
>>> np.random.choice(5, 3) array([0, 3, 4]) # random >>> #This is equivalent to np.random.randint(0,5,3)
Generate a non-uniform random sample from np.arange(5) of size 3:
>>> np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0]) array([3, 3, 0]) # random
Generate a uniform random sample from np.arange(5) of size 3 without replacement:
>>> np.random.choice(5, 3, replace=False) array([3,1,0]) # random >>> #This is equivalent to np.random.permutation(np.arange(5))[:3]
Generate a non-uniform random sample from np.arange(5) of size 3 without replacement:
>>> np.random.choice(5, 3, replace=False, p=[0.1, 0, 0.3, 0.6, 0]) array([2, 3, 0]) # random
Any of the above can be repeated with an arbitrary array-like instead of just integers. For instance:
>>> aa_milne_arr = ['pooh', 'rabbit', 'piglet', 'Christopher'] >>> np.random.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3]) array(['pooh', 'pooh', 'pooh', 'Christopher', 'piglet'], # random dtype='<U11')
The mean squared error to measure the quality of a regression algorithm.
The mse_measure
module
implements the concept of mean squared error measures
for machine learning algorithms.
This concept is implemented through the MSEMeasure
class
and overloads the MLErrorMeasure._compute_measure()
method.
The mean squared error (MSE) is defined by
where \(\hat{y}\) are the predictions and \(y\) are the data points.
Classes:
|
The Mean Squared Error measure for machine learning. |
- class gemseo.mlearning.qual_measure.mse_measure.MSEMeasure(algo)[source]
The Mean Squared Error measure for machine learning.
- algo
The machine learning algorithm.
- Type
- Parameters
algo (MLRegressionAlgo) – A machine learning algorithm for regression.
- Return type
None
Methods:
evaluate
([method, samples])Evaluate the quality measure.
evaluate_bootstrap
([n_replicates, samples, ...])Evaluate the quality measure using the bootstrap technique.
evaluate_kfolds
([n_folds, samples, ...])Evaluate the quality measure using the k-folds technique.
evaluate_learn
([samples, multioutput])Evaluate the quality measure using the learning dataset.
evaluate_loo
([samples, multioutput])Evaluate the quality measure using the leave-one-out technique.
evaluate_test
(test_data[, samples, multioutput])Evaluate the quality measure using a test dataset.
is_better
(val1, val2)Compare the quality between two values.
- evaluate(method='learn', samples=None, **options)
Evaluate the quality measure.
- Parameters
method (str) –
The name of the method to evaluate the quality measure.
By default it is set to learn.
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
**options (Optional[Union[Sequence[int], bool, int, gemseo.core.dataset.Dataset]]) – The options of the estimation method (e.g. ‘test_data’ for
method –
one ('n_replicates' for the bootstrap) –
...) –
- Returns
The value of the quality measure.
- Raises
ValueError – If the name of the method is unknown.
- Return type
Union[float, numpy.ndarray]
- evaluate_bootstrap(n_replicates=100, samples=None, multioutput=True)
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 (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
If True, return the quality measure for each output component. Otherwise, average these measures.
By default it is set to True.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_kfolds(n_folds=5, samples=None, multioutput=True, randomize=False)
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 (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
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 False.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_learn(samples=None, multioutput=True)
Evaluate the quality measure using the learning dataset.
- Parameters
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
Whether to return the quality measure for each output component. If not, average these measures.
By default it is set to True.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_loo(samples=None, multioutput=True)
Evaluate the quality measure using the leave-one-out technique.
- Parameters
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
If True, return the quality measure for each output component. Otherwise, average these measures.
By default it is set to True.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_test(test_data, samples=None, multioutput=True)
Evaluate the quality measure using a test dataset.
- Parameters
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
If True, return the quality measure for each output component. Otherwise, average these measures.
By default it is set to True.
test_data (gemseo.core.dataset.Dataset) –
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- classmethod is_better(val1, val2)
Compare the quality between two values.
This methods 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.
- Parameters
val1 (float) – The value of the first quality measure.
val2 (float) – The value of the second quality measure.
- Returns
Whether val1 is of better quality than val2.
- Return type
bool
The R2 to measure the quality of a regression algorithm.
The r2_measure
module
implements the concept of R2 measures for machine learning algorithms.
This concept is implemented through the R2Measure
class
and overloads the MLErrorMeasure._compute_measure()
method.
The R2 is defined by
where \(\hat{y}\) are the predictions, \(y\) are the data points and \(\bar{y}\) is the mean of \(y\).
Classes:
|
The R2 measure for machine learning. |
- class gemseo.mlearning.qual_measure.r2_measure.R2Measure(algo)[source]
The R2 measure for machine learning.
- algo
The machine learning algorithm.
- Type
- Parameters
algo (MLRegressionAlgo) – A machine learning algorithm for regression.
- Return type
None
Methods:
evaluate
([method, samples])Evaluate the quality measure.
evaluate_bootstrap
([n_replicates, samples, ...])Evaluate the quality measure using the bootstrap technique.
evaluate_kfolds
([n_folds, samples, ...])Evaluate the quality measure using the k-folds technique.
evaluate_learn
([samples, multioutput])Evaluate the quality measure using the learning dataset.
evaluate_loo
([samples, multioutput])Evaluate the quality measure using the leave-one-out technique.
evaluate_test
(test_data[, samples, multioutput])Evaluate the quality measure using a test dataset.
is_better
(val1, val2)Compare the quality between two values.
- evaluate(method='learn', samples=None, **options)
Evaluate the quality measure.
- Parameters
method (str) –
The name of the method to evaluate the quality measure.
By default it is set to learn.
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
**options (Optional[Union[Sequence[int], bool, int, gemseo.core.dataset.Dataset]]) – The options of the estimation method (e.g. ‘test_data’ for
method –
one ('n_replicates' for the bootstrap) –
...) –
- Returns
The value of the quality measure.
- Raises
ValueError – If the name of the method is unknown.
- Return type
Union[float, numpy.ndarray]
- evaluate_bootstrap(n_replicates=100, samples=None, multioutput=True)[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 (Optional[List[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
If True, return the quality measure for each output component. Otherwise, average these measures.
By default it is set to True.
- Returns
The value of the quality measure.
- Return type
NoReturn
- evaluate_kfolds(n_folds=5, samples=None, multioutput=True, randomize=False)[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 (Optional[List[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
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 False.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_learn(samples=None, multioutput=True)
Evaluate the quality measure using the learning dataset.
- Parameters
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
Whether to return the quality measure for each output component. If not, average these measures.
By default it is set to True.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_loo(samples=None, multioutput=True)
Evaluate the quality measure using the leave-one-out technique.
- Parameters
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
If True, return the quality measure for each output component. Otherwise, average these measures.
By default it is set to True.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_test(test_data, samples=None, multioutput=True)
Evaluate the quality measure using a test dataset.
- Parameters
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
If True, return the quality measure for each output component. Otherwise, average these measures.
By default it is set to True.
test_data (gemseo.core.dataset.Dataset) –
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- classmethod is_better(val1, val2)
Compare the quality between two values.
This methods 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.
- Parameters
val1 (float) – The value of the first quality measure.
val2 (float) – The value of the second quality measure.
- Returns
Whether val1 is of better quality than val2.
- Return type
bool
The F1 to measure the quality of a classification algorithm.
The F1 is defined by
where \(\mathit{precision}\) is the number of correctly predicted positives divided by the total number of predicted positives and \(\mathit{recall}\) is the number of correctly predicted positives divided by the total number of true positives.
Classes:
|
The F1 measure for machine learning. |
- class gemseo.mlearning.qual_measure.f1_measure.F1Measure(algo)[source]
The F1 measure for machine learning.
- algo
The machine learning algorithm.
- Type
- Parameters
algo (MLClassificationAlgo) – A machine learning algorithm for classification.
- Return type
None
Methods:
evaluate
([method, samples])Evaluate the quality measure.
evaluate_bootstrap
([n_replicates, samples, ...])Evaluate the quality measure using the bootstrap technique.
evaluate_kfolds
([n_folds, samples, ...])Evaluate the quality measure using the k-folds technique.
evaluate_learn
([samples, multioutput])Evaluate the quality measure using the learning dataset.
evaluate_loo
([samples, multioutput])Evaluate the quality measure using the leave-one-out technique.
evaluate_test
(test_data[, samples, multioutput])Evaluate the quality measure using a test dataset.
is_better
(val1, val2)Compare the quality between two values.
- evaluate(method='learn', samples=None, **options)
Evaluate the quality measure.
- Parameters
method (str) –
The name of the method to evaluate the quality measure.
By default it is set to learn.
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
**options (Optional[Union[Sequence[int], bool, int, gemseo.core.dataset.Dataset]]) – The options of the estimation method (e.g. ‘test_data’ for
method –
one ('n_replicates' for the bootstrap) –
...) –
- Returns
The value of the quality measure.
- Raises
ValueError – If the name of the method is unknown.
- Return type
Union[float, numpy.ndarray]
- evaluate_bootstrap(n_replicates=100, samples=None, multioutput=True)
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 (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
If True, return the quality measure for each output component. Otherwise, average these measures.
By default it is set to True.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_kfolds(n_folds=5, samples=None, multioutput=True, randomize=False)
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 (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
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 False.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_learn(samples=None, multioutput=True)
Evaluate the quality measure using the learning dataset.
- Parameters
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
Whether to return the quality measure for each output component. If not, average these measures.
By default it is set to True.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_loo(samples=None, multioutput=True)
Evaluate the quality measure using the leave-one-out technique.
- Parameters
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
If True, return the quality measure for each output component. Otherwise, average these measures.
By default it is set to True.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_test(test_data, samples=None, multioutput=True)
Evaluate the quality measure using a test dataset.
- Parameters
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
If True, return the quality measure for each output component. Otherwise, average these measures.
By default it is set to True.
test_data (gemseo.core.dataset.Dataset) –
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- classmethod is_better(val1, val2)
Compare the quality between two values.
This methods 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.
- Parameters
val1 (float) – The value of the first quality measure.
val2 (float) – The value of the second quality measure.
- Returns
Whether val1 is of better quality than val2.
- Return type
bool
The silhouette coefficient to measure the quality of a clustering algorithm.
The silhouette
module implements the
concept of silhouette coefficient measure for machine learning algorithms.
This concept is implemented through the
SilhouetteMeasure
class and
overloads the MLClusteringMeasure._compute_measure()
method.
The silhouette coefficient is defined for each point as the difference between the average distance from the point to each of the other points in its cluster and the average distance from the point to each of the points in the nearest cluster different from its own.
More formally, the silhouette coefficient \(s_i\) of a point \(x_i\) is given by
where \(k_i\) is the index of the cluster to which \(x_i\) belongs, \(K\) is the number of clusters, \(C_k\) is the set of indices of points belonging to the cluster \(k\) (\(k=1,\\cdots,K\)), and \(|C_k| = \\sum_{j\\in C_k} 1\) is the number of points in the cluster \(k\), \(k=1,\\cdots,K\).
Classes:
|
The silhouette coefficient measure for machine learning. |
- class gemseo.mlearning.qual_measure.silhouette.SilhouetteMeasure(algo)[source]
The silhouette coefficient measure for machine learning.
- algo
The machine learning algorithm.
- Type
- Parameters
algo (MLPredictiveClusteringAlgo) – A machine learning algorithm for clustering.
- Return type
None
Methods:
evaluate
([method, samples])Evaluate the quality measure.
evaluate_bootstrap
([n_replicates, samples, ...])Evaluate the quality measure using the bootstrap technique.
evaluate_kfolds
([n_folds, samples, ...])Evaluate the quality measure using the k-folds technique.
evaluate_learn
([samples, multioutput])Evaluate the quality measure using the learning dataset.
evaluate_loo
([samples, multioutput])Evaluate the quality measure using the leave-one-out technique.
evaluate_test
(test_data[, samples, multioutput])Evaluate the quality measure using a test dataset.
is_better
(val1, val2)Compare the quality between two values.
- evaluate(method='learn', samples=None, **options)
Evaluate the quality measure.
- Parameters
method (str) –
The name of the method to evaluate the quality measure.
By default it is set to learn.
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
**options (Optional[Union[Sequence[int], bool, int, gemseo.core.dataset.Dataset]]) – The options of the estimation method (e.g. ‘test_data’ for
method –
one ('n_replicates' for the bootstrap) –
...) –
- Returns
The value of the quality measure.
- Raises
ValueError – If the name of the method is unknown.
- Return type
Union[float, numpy.ndarray]
- evaluate_bootstrap(n_replicates=100, samples=None, multioutput=True)[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 (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
If True, return the quality measure for each output component. Otherwise, average these measures.
By default it is set to True.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_kfolds(n_folds=5, samples=None, multioutput=True, randomize=False)[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 (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
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 False.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_learn(samples=None, multioutput=True)
Evaluate the quality measure using the learning dataset.
- Parameters
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
Whether to return the quality measure for each output component. If not, average these measures.
By default it is set to True.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_loo(samples=None, multioutput=True)
Evaluate the quality measure using the leave-one-out technique.
- Parameters
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
If True, return the quality measure for each output component. Otherwise, average these measures.
By default it is set to True.
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- evaluate_test(test_data, samples=None, multioutput=True)[source]
Evaluate the quality measure using a test dataset.
- Parameters
samples (Optional[Sequence[int]]) –
The indices of the learning samples. If None, use the whole learning dataset.
By default it is set to None.
multioutput (bool) –
If True, return the quality measure for each output component. Otherwise, average these measures.
By default it is set to True.
test_data (gemseo.core.dataset.Dataset) –
- Returns
The value of the quality measure.
- Return type
Union[float, numpy.ndarray]
- classmethod is_better(val1, val2)
Compare the quality between two values.
This methods 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.
- Parameters
val1 (float) – The value of the first quality measure.
val2 (float) – The value of the second quality measure.
- Returns
Whether val1 is of better quality than val2.
- Return type
bool