class_docstr: Canonical Time-series Characteristics (catch22) classifier.
  
  This classifier simply transforms the input data using the Catch22 [1]
  transformer and builds a provided estimator using the transformed data.
  
  Shorthand for the pipeline `Catch22(outlier_norm, replace_nans) * estimator`
  
  Parameters
  ----------
  outlier_norm : bool, optional, default=False
      Normalise each series during the two outlier Catch22 features, which can take a
      while to process for large values.
  replace_nans : bool, optional, default=True
      Replace NaN or inf values from the Catch22 transform with 0.
  estimator : sklearn classifier, optional, default=None
      An sklearn estimator to be built using the transformed data.
      Defaults to sklearn RandomForestClassifier(n_estimators=200)
  n_jobs : int, optional, 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, optional, default=None
      Seed for random, integer.
  
  Attributes
  ----------
  n_classes_ : int
      Number of classes. Extracted from the data.
  classes_ : ndarray of shape (n_classes_)
      Holds the label for each class.
  estimator_ : ClassifierPipeline
      Catch22Classifier as a ClassifierPipeline, fitted to data internally
  
  See Also
  --------
  Catch22
  
  Notes
  -----
  Authors `catch22ForestClassifier <https://github.com/chlubba/sktime-catch22>`_.
  
  For the Java version, see `tsml <https://github.com/uea-machine-learning/tsml/blob
  /master/src/main/java/tsml/classifiers/hybrids/Catch22Classifier.java>`_.
  
  References
  ----------
  .. [1] Lubba, Carl H., et al. "catch22: Canonical time-series characteristics."
      Data Mining and Knowledge Discovery 33.6 (2019): 1821-1852.
      https://link.springer.com/article/10.1007/s10618-019-00647-x
  
  Examples
  --------
  >>> from sktime.classification.feature_based import Catch22Classifier
  >>> from sklearn.ensemble import RandomForestClassifier
  >>> 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 = Catch22Classifier(
  ...     estimator=RandomForestClassifier(n_estimators=5),
  ...     outlier_norm=True,
  ... ) # doctest: +SKIP
  >>> clf.fit(X_train, y_train) # doctest: +SKIP
  Catch22Classifier(...)
  >>> y_pred = clf.predict(X_test) # doctest: +SKIP
code: def __init__(
      self,
      outlier_norm=False,
      replace_nans=True,
      estimator=None,
      n_jobs=1,
      random_state=None,
  ):
      self.outlier_norm = outlier_norm
      self.replace_nans = replace_nans
      self.estimator = estimator
  
      self.n_jobs = n_jobs
      self.random_state = random_state
  
      super().__init__()
  
      transformer = Catch22(
          outlier_norm=self.outlier_norm, replace_nans=self.replace_nans
      )
  
      if estimator is None:
          estimator = RandomForestClassifier(n_estimators=200)
  
      estimator = _clone_estimator(estimator, random_state)
  
      m = getattr(estimator, "n_jobs", None)
      if m is not None:
          estimator.n_jobs = self._threads_to_use
  
      self.estimator_ = make_pipeline(transformer, estimator)
  
file_path: sktime/sktime/classification/feature_based/_catch22_classifier.py
imports: from sklearn.ensemble import RandomForestClassifier
  from sktime.base._base import _clone_estimator
  from sktime.classification._delegate import _DelegatedClassifier
  from sktime.pipeline import make_pipeline
  from sktime.transformations.panel.catch22 import Catch22
label_desc: Use image node_id 1 to create a new Catch22Classifier object from inherited base classes: _DelegatedClassifier with example: obj = Catch22Classifier(outlier_norm, replace_nans, estimator, n_jobs, random_state)