load_classification_bake_off_2023_results

load_classification_bake_off_2023_results(num_resamples=30, as_array=False)[source]

Pull down all the results of the 2023 univariate bake off.

Basic utility function to recover legacy results from [1]. Loads results for 112 UCR/tsml data sets for classifiers used in the publication. Can load either the default train/test split, or the resampled results up to 30 resamples.

Parameters:
num_resamplesint or None, default=1

The number of data resamples to return scores for. The first resample is the default train/test split for the dataset. For 1, only the score for the default train/test split of the dataset is returned. For 2 or more, a np.ndarray of scores for all resamples up to num_resamples are returned. If None, the scores of all resamples are returned.

If as_array is true, the scores are averaged instead of being returned as a np.ndarray.

as_arraybool, default=False

If True, return the results as a tuple containing a np.ndarray of (averaged) scores for each classifier. Also returns a list of dataset names for each row of the np.ndarray, and classifier names for each column.

Returns:
results: dict or tuple

Dictionary with estimator name keys containing another dictionary. Sub-dictionary consists of dataset name keys and contains of scores for each dataset. If as_array is true, instead returns a tuple of: An array of scores. Each column is a results for a classifier, each row a dataset. A list of dataset names for each row. A list of classifier names for each column.

References

[1]

M Middlehurst, P Schaefer, A Bagnall, “Bake off redux: a review and experimental evaluation of recent time series classification algorithms”, arXiv preprint arXiv:2304.13029, 2023.

Examples

>>> from aeon.benchmarking.published_results import (
...     load_classification_bake_off_2023_results
... )
>>> from aeon.visualisation import plot_critical_difference
>>> # Load the results
>>> results, data, cls = load_classification_bake_off_2023_results(
...     num_resamples=30, as_array=True
... )  
>>> # Select a subset of classifiers
>>> cls = ["HC2","MR-Hydra","InceptionT","FreshPRINCE","RDST"] 
>>> index = [cls.index(i) for i in cls] 
>>> selected = results[:,index]  
>>> # Plot the critical difference diagram
>>> plot = plot_critical_difference(selected, cls)  
>>> plot.show()