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
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
fitandpredict.-1means 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
Schäfer, Patrick, and Ulf Leser. “TEASER: early and accurate time series classification.” Data mining and knowledge discovery 34, no. 5 (2020)