gemseo / mlearning / qual_measure

# rmse_measure module¶

The root mean squared error to measure the quality of a regression algorithm.

The mse_measure module implements the concept of root mean squared error measures for machine learning algorithms.

This concept is implemented through the RMSEMeasure class and overloads the MSEMeasure.evaluate_*() methods.

The root mean squared error (RMSE) is defined by

$\operatorname{RMSE}(\hat{y})=\sqrt{\frac{1}{n}\sum_{i=1}^n(\hat{y}_i-y_i)^2},$

where $$\hat{y}$$ are the predictions and $$y$$ are the data points.

Classes:

 RMSEMeasure(algo) The root mean Squared Error measure for machine learning.
class gemseo.mlearning.qual_measure.rmse_measure.RMSEMeasure(algo)[source]

The root mean Squared Error measure for machine learning.

algo

The machine learning algorithm.

Type

MLAlgo

Parameters

algo (MLRegressionAlgo) – A machine learning algorithm for regression.

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 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.
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 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