WEASEL
WEASEL
- class WEASEL(anova=True, bigrams=True, binning_strategy='information-gain', window_inc=2, p_threshold=0.05, alphabet_size=2, n_jobs=1, feature_selection='chi2', support_probabilities=False, random_state=None)[source]
Word Extraction for Time Series Classification (WEASEL).
Overview: Input n series length m WEASEL is a dictionary classifier that builds a bag-of-patterns using SFA for different window lengths and learns a logistic regression classifier on this bag.
There are these primary parameters:
alphabet_size: alphabet size
p-threshold: threshold used for chi^2-feature selection to select best words.
anova: select best l/2 fourier coefficients other than first ones
bigrams: using bigrams of SFA words
binning_strategy: the binning strategy used to discretise into SFA words.
WEASEL 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 best l/2 complex coefficients using an anova one-sided test. These l coefficients are then discretised into alpha possible symbols, to form a word of length l. A histogram of words for each series is formed and stored. For each window-length a bag is created and all words are joint into one bag-of-patterns. Words from different window-lengths are discriminated by different prefixes. fit involves training a logistic regression classifier on the single bag-of-patterns.
predict uses the logistic regression classifier
- Parameters:
- anova: boolean, default=True
If True, the Fourier coefficient selection is done via a one-way ANOVA test. If False, the first Fourier coefficients are selected. Only applicable if labels are given
- bigrams: boolean, default=True
whether to create bigrams of SFA words
- binning_strategy: {“equi-depth”, “equi-width”, “information-gain”},
- default=”information-gain”
The binning method used to derive the breakpoints.
- window_inc: int, default=2
WEASEL create a BoP model for each window sizes. This is the increment used to determine the next window size.
- p_threshold: int, default=0.05 (disabled by default)
Feature selection is applied based on the chi-squared test. This is the p-value threshold to use for chi-squared test on bag-of-words (lower means more strict). 1 indicates that the test should not be performed.
- alphabet_sizedefault = 2
Number of possible letters (values) for each word.
- feature_selection: {“chi2”, “none”, “random”}, default: chi2
Sets the feature selections strategy to be used. Chi2 reduces the number of words significantly and is thus much faster (preferred). If set to chi2,
p_threshold is applied. Random also reduces the number significantly. None applies not feature selectiona and yields large bag of words, e.g. much memory may be needed.
- support_probabilities: bool, default: False
If set to False, a RidgeClassifierCV will be trained, which has higher accuracy and is faster, yet does not support predict_proba. If set to True, a LogisticRegression will be trained, which does support predict_proba(), yet is slower and typically less accuracy. predict_proba() is needed for example in Early-Classification like TEASER.
- random_state: int or None, default=None
Seed for random, integer
- Attributes:
- n_classes_int
The number of classes.
- classes_list
The classes labels.
See also
Notes
For the Java version, see - Original Publication. - TSML.
References
[1]Patrick Schäfer and Ulf Leser, “Fast and Accurate Time Series Classification
with WEASEL”, in proc ACM on Conference on Information and Knowledge Management, 2017, https://dl.acm.org/doi/10.1145/3132847.3132980
Examples
>>> from sktime.classification.dictionary_based import WEASEL >>> 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 = WEASEL(window_inc=4) >>> clf.fit(X_train, y_train) WEASEL(...) >>> y_pred = clf.predict(X_test)
Methods
check_is_fitted([method_name])Check if the estimator has been fitted.
clone()Obtain a clone of the object with same hyper-parameters and config.
clone_tags(estimator[, tag_names])Clone tags from another object as dynamic override.
create_test_instance([parameter_set])Construct an instance of the class, using first test parameter set.
create_test_instances_and_names([parameter_set])Create list of all test instances and a list of names for them.
fit(X, y)Fit time series classifier to training data.
fit_predict(X, y[, cv, change_state])Fit and predict labels for sequences in X.
fit_predict_proba(X, y[, cv, change_state])Fit and predict labels probabilities for sequences in X.
get_class_tag(tag_name[, tag_value_default])Get class tag value from class, with tag level inheritance from parents.
get_class_tags()Get class tags from class, with tag level inheritance from parent classes.
get_config()Get config flags for self.
get_fitted_params([deep])Get fitted parameters.
get_param_defaults()Get object's parameter defaults.
get_param_names([sort])Get object's parameter names.
get_params([deep])Get a dict of parameters values for this object.
get_tag(tag_name[, tag_value_default, ...])Get tag value from instance, with tag level inheritance and overrides.
get_tags()Get tags from instance, with tag level inheritance and overrides.
get_test_params([parameter_set])Return testing parameter settings for the estimator.
is_composite()Check if the object is composed of other BaseObjects.
load_from_path(serial)Load object from file location.
load_from_serial(serial)Load object from serialized memory container.
predict(X)Predicts labels for sequences in X.
predict_proba(X)Predicts labels probabilities for sequences in X.
reset()Reset the object to a clean post-init state.
save([path, serialization_format])Save serialized self to bytes-like object or to (.zip) file.
score(X, y)Scores predicted labels against ground truth labels on X.
set_config(**config_dict)Set config flags to given values.
set_params(**params)Set the parameters of this object.
set_random_state([random_state, deep, ...])Set random_state pseudo-random seed parameters for self.
set_tags(**tag_dict)Set instance level tag overrides to given values.

