cluster_measure module¶
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 1D array 
 class gemseo.mlearning.qual_measure.cluster_measure.MLClusteringMeasure(algo)[source]¶
Bases:
gemseo.mlearning.qual_measure.quality_measure.MLQualityMeasure
An abstract clustering measure for clustering algorithms.
 Parameters
algo (MLClusteringAlgo) – A machine learning algorithm for clustering.
 Return type
None
Attributes:
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 kfolds technique.
evaluate_learn
([samples, multioutput])Evaluate the quality measure using the learning dataset.
evaluate_loo
([samples, multioutput])Evaluate the quality measure using the leaveoneout 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.
 BOOTSTRAP = 'bootstrap'¶
 KFOLDS = 'kfolds'¶
 LEARN = 'learn'¶
 LOO = 'loo'¶
 SMALLER_IS_BETTER = True¶
 TEST = 'test'¶
 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 kfolds 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 leaveoneout 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 R2measure, 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]¶
Bases:
gemseo.mlearning.qual_measure.cluster_measure.MLClusteringMeasure
An abstract clustering measure for predictive clustering algorithms.
 Parameters
algo (MLPredictiveClusteringAlgo) – A machine learning algorithm for predictive clustering.
 Return type
None
Attributes:
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 kfolds technique.
evaluate_learn
([samples, multioutput])Evaluate the quality measure using the learning dataset.
evaluate_loo
([samples, multioutput])Evaluate the quality measure using the leaveoneout 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.
 BOOTSTRAP = 'bootstrap'¶
 KFOLDS = 'kfolds'¶
 LEARN = 'learn'¶
 LOO = 'loo'¶
 SMALLER_IS_BETTER = True¶
 TEST = 'test'¶
 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 kfolds 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 leaveoneout 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 R2measure, 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 1D array
New in version 1.7.0.
Note
New code should use the
choice
method of adefault_rng()
instance instead; please see the randomquickstart. Parameters
a (1D arraylike 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 (1D arraylike, 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 1dimensional, if a is an arraylike 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 2D 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 nonuniform 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 nonuniform 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 arraylike 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')