BOSSEnsemble
Ensemble of Bag of Symbolic Fourier Approximation Symbols (BOSS).
Implementation of BOSS Ensemble from Schäfer (2015). [1]
Overview: Input n series of length m and BOSS performs a grid search over a set of parameter values, evaluating each with a LOOCV. It then retains all ensemble members within 92% of the best by default for use in the ensemble. There are three primary parameters:
alpha: alphabet size
w: window length
l: word length.
For any combination, a single BOSS slides a window length w along the series. The w length window is shortened to an l length word through taking a Fourier transform and keeping the first l/2 complex coefficients. These l coefficients are then discretized into alpha possible values, to form a word length l. A histogram of words for each series is formed and stored.
Fit involves finding “n” histograms.
Predict uses 1 nearest neighbor with a bespoke BOSS distance function.
Quickstart
from sktime.classification.dictionary_based import BOSSEnsemble
estimator = BOSSEnsemble(threshold=0.92, max_ensemble_size=500, max_win_len_prop=1, min_window=10, save_train_predictions=False, feature_selection='none', use_boss_distance=True, alphabet_size=2, n_jobs=1, random_state=None)Parameters(10)
- thresholdfloat, default=0.92
Threshold used to determine which classifiers to retain. All classifiers within percentage
thresholdof the best one are retained.- max_ensemble_sizeint or None, default=500
Maximum number of classifiers to retain. Will limit number of retained classifiers even if more than
max_ensemble_sizeare within threshold.- max_win_len_propint or float, default=1
- Maximum window length as a proportion of the series length.
- min_windowint, default=10
- Minimum window size.
- save_train_predictionsbool, default=False
- Save the ensemble member train predictions in fit for use in _get_train_probs leave-one-out cross-validation.
- alphabet_sizedefault = 2
- Number of possible letters (values) for each word.
- n_jobsint, default=1
The number of jobs to run in parallel for both
fitandpredict.-1means using all processors.- use_boss_distanceboolean, default=True
- The Boss-distance is an asymmetric distance measure. It provides higher accuracy, yet is signifaicantly slower to compute.
- feature_selection: {“chi2”, “none”, “random”}, default: none
- Sets the feature selections strategy to be used. Chi2 reduces the number of words significantly and is thus much faster (preferred). Random also reduces the number significantly. None applies not feature selectiona and yields large bag of words, e.g. much memory may be needed.
- random_stateint or None, default=None
- Seed for random, integer.
Examples
>>> from sktime.classification.dictionary_based import BOSSEnsemble
>>> from sktime.datasets import load_unit_test
>>> X_train, y_train = load_unit_test (split = "train", return_X_y = True)
>>> X_test, y_test = load_unit_test (split = "test", return_X_y = True)
>>> clf = BOSSEnsemble (max_ensemble_size = 3)
>>> clf. fit (X_train, y_train) BOSSEnsemble(
... )
>>> y_pred = clf. predict (X_test)References
Patrick Schäfer, “The BOSS is concerned with time series classification in the presence of noise”, Data Mining and Knowledge Discovery, 29(6): 2015 https://link.springer.com/article/10.1007/s10618-014-0377-7