class_docstr: 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.
  
  Parameters
  ----------
  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_points : List 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_jobs : int, default=1
      The number of jobs to run in parallel for both `fit` and `predict`.
      ``-1`` means using all processors.
  random_state : int or None, default=None
      Seed for random number generation.
  
  Attributes
  ----------
  n_classes_ : int
      The number of classes.
  n_instances_ : int
      The number of train cases.
  n_dims_ : int
      The number of dimensions per case.
  series_length_ : int
      The full length of each series.
  classes_ : list
      The unique class labels.
  state_info : 2d np.ndarray (4 columns)
      Information stored about input instances after the decision-making process in
      update/predict methods. Used in update methods to make decisions based on
      the results of previous method calls.
      Records in order: the time stamp index, the number of consecutive decisions
      made, the predicted class and the series length.
  
  References
  ----------
  .. [1] Schäfer, Patrick, and Ulf Leser. "TEASER: early and accurate time series
      classification." Data mining and knowledge discovery 34, no. 5 (2020)
  
  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) # doctest: +SKIP
  >>> clf = TEASER(
  ...     classification_points=[6, 16, 24],
  ...     estimator=TimeSeriesForestClassifier(n_estimators=5),
  ... ) # doctest: +SKIP
  >>> clf.fit(X_train, y_train) # doctest: +SKIP
  TEASER(...)
  >>> y_pred, decisions = clf.predict(X_test) # doctest: +SKIP
class_docstr_tok: ["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",".","Parameters","--","--","--","--","--","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_points",":","List","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_jobs",":","int",",","default=1","The","number","of","jobs","to","run","in","parallel","for","both","`","fit","`","and","`","predict","`",".","``","-1","``","means","using","all","processors",".","random_state",":","int","or","None",",","default=None","Seed","for","random","number","generation",".","Attributes","--","--","--","--","--","n_classes_",":","int","The","number","of","classes",".","n_instances_",":","int","The","number","of","train","cases",".","n_dims_",":","int","The","number","of","dimensions","per","case",".","series_length_",":","int","The","full","length","of","each","series",".","classes_",":","list","The","unique","class","labels",".","state_info",":","2d","np.ndarray","(","4","columns",")","Information","stored","about","input","instances","after","the","decision-making","process","in","update\/predict","methods",".","Used","in","update","methods","to","make","decisions","based","on","the","results","of","previous","method","calls",".","Records","in","order",":","the","time","stamp","index",",","the","number","of","consecutive","decisions","made",",","the","predicted","class","and","the","series","length",".","References","--","--","--","--","--","..","[","1","]","Sch\u00e4fer",",","Patrick",",","and","Ulf","Leser",".","``","TEASER",":","early","and","accurate","time","series","classification",".","''","Data","mining","and","knowledge","discovery","34",",","no",".","5","(","2020",")","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",")","#","doctest",":","+SKIP",">",">",">","clf","=","TEASER","(","...","classification_points=","[","6",",","16",",","24","]",",","...","estimator=TimeSeriesForestClassifier","(","n_estimators=5",")",",","...",")","#","doctest",":","+SKIP",">",">",">","clf.fit","(","X_train",",","y_train",")","#","doctest",":","+SKIP","TEASER","(","...",")",">",">",">","y_pred",",","decisions","=","clf.predict","(","X_test",")","#","doctest",":","+SKIP"]
code: def _predict(self, X) -> Tuple[np.ndarray, np.ndarray]:
      out = self._predict_proba(X)
      return self._proba_output_to_preds(out)
  
imports: import copy
  from typing import Tuple
  import numpy
  from joblib import Parallel, delayed
  from sklearn.ensemble import RandomForestClassifier
  from sklearn.model_selection import GridSearchCV, cross_val_predict
  from sklearn.svm import OneClassSVM
  from sklearn.utils import check_random_state
  from sktime.base._base import _clone_estimator
  from sktime.classification.dictionary_based import MUSE, WEASEL
  from sktime.classification.early_classification.base import BaseEarlyClassifier
label_desc: Use image node_id 3 for calling the TEASER obj's underlying member method code with example usage: obj._predict(X) and returns: self