IndividualBOSS
Single bag of Symbolic Fourier Approximation Symbols (IndividualBOSS).
Bag of SFA Symbols Ensemble: implementation of a single BOSS Schaffer, the base classifier for the boss ensemble.
Implementation of single BOSS model from Schäfer (2015). [1]
This is the underlying classifier for each classifier in the BOSS ensemble.
Overview: input “n” series of length “m” and IndividualBoss performs a SFA transform to form a sparse dictionary of discretised words. The resulting dictionary is used with the BOSS distance function in a 1-nearest neighbor.
Fit involves finding “n” histograms.
Predict uses 1 nearest neighbor with a bespoke BOSS distance function.
Quickstart
from sktime.classification.dictionary_based import IndividualBOSS
estimator = IndividualBOSS(window_size=10, word_length=8, norm=False, alphabet_size=2, save_words=False, typed_dict='deprecated', use_boss_distance=True, feature_selection='none', store_histogram=False, n_jobs=1, random_state=None)Parameters(8)
- window_sizeint
- Size of the window to use in BOSS algorithm.
- word_lengthint
- Length of word to use to use in BOSS algorithm.
- normbool, default = False
- Whether to normalize words by dropping the first Fourier coefficient.
- alphabet_sizedefault = 2
- Number of possible letters (values) for each word.
- save_wordsbool, default = True
Whether to keep NumPy array of words in SFA transformation even after the dictionary of words is returned. If True, the array is saved, which can shorten the time to calculate dictionaries using a shorter
word_length(since the last “n” letters can be removed).- store_histogrambool, default = False
Whether to store the histograms of words in
fit. If False, avoids storing the histograms in memory, which can be large for some datasets.- n_jobsint, default=1
The number of jobs to run in parallel for both
fitandpredict.-1means using all processors.- random_stateint or None, default=None
- Seed for random, integer.
Examples
>>> from sktime.classification.dictionary_based import IndividualBOSS
>>> 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 = IndividualBOSS ()
>>> clf. fit (X_train, y_train) IndividualBOSS(
... )
>>> 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