Back to models
Early Classifier

TEASER

Two-tier Early and Accurate Series Classifier (TEASER).

An early classifier which uses one class SVM’s trained on prediction probabilities to determine whether an early prediction is safe or not.

Overview:

Build n classifiers, where n is the number of classification_points. For each classifier, train a one class svm used to determine prediction safety at that series length. Tune the number of consecutive safe svm predictions required to consider the prediction safe.

While a prediction is still deemed unsafe:

Make a prediction using the series length at classification point i. Decide whether the predcition is safe or not using decide_prediction_safety.

Quickstart

python
from sktime.classification.early_classification import TEASER

estimator = TEASER(estimator=None, one_class_classifier=None, one_class_param_grid=None, classification_points=None, n_jobs=1, random_state=None)

Parameters(6)

estimator: sktime classifier, default=None
An sktime estimator to be built at each of the classification_points time stamps. Defaults to a WEASEL classifier.
one_class_classifier: one-class sklearn classifier, default=None
An sklearn one-class classifier used to determine whether an early decision is safe. Defaults to a tuned one-class SVM classifier.
one_class_param_grid: dict or list of dict, default=None

The hyper-parameters for the one-class classifier to learn using grid-search. Dictionary with parameters names (str) as keys and lists of parameter settings to try as values, or a list of such dictionaries.

classification_pointsList or None, default=None
List of integer time series time stamps to build classifiers and allow predictions at. Early predictions must have a series length that matches a value in the _classification_points List. Duplicate values will be removed, and the full series length will be appended if not present. If None, will use 20 thresholds linearly spaces from 0 to the series length.
n_jobsint, default=1

The number of jobs to run in parallel for both fit and predict. -1 means using all processors.

random_stateint or None, default=None
Seed for random number generation.

Examples

>>> from sktime.classification.early_classification import TEASER
>>> from sktime.classification.interval_based import TimeSeriesForestClassifier
>>> 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 = TEASER (
... classification_points = [6, 16, 24 ],
... estimator = TimeSeriesForestClassifier (n_estimators = 5),
... )
>>> clf. fit (X_train, y_train) TEASER(
... )
>>> y_pred, decisions = clf. predict (X_test)

References

[1]

Schäfer, Patrick, and Ulf Leser. “TEASER: early and accurate time series classification.” Data mining and knowledge discovery 34, no. 5 (2020)