class_docstr: Multi RandOm Convolutional KErnel Transform (MultiRocket).
  
  MultiRocket [1]_ is uses the same set of kernels as MiniRocket on both the raw
  series and the first order differenced series representation. It uses a different
  set of dilations and used for each representation. In addition to percentage of
  positive values (PPV) MultiRocket adds 3 pooling operators: Mean of Positive
  Values (MPV); Mean of Indices of Positive Values (MIPV); and Longest Stretch of
  Positive Values (LSPV). This version is for univariate time series only. Use class
  MultiRocketMultivariate for multivariate input.
  
  This transformer fits one set of paramereters per individual series,
  and applies the transform with fitted parameter i to the i-th series in transform.
  Vanilla use requires same number of series in fit and transform.
  
  To fit and transform series at the same time,
  without an identification of fit/transform instances,
  wrap this transformer in ``FitInTransform``,
  from ``sktime.transformations.compose``.
  
  Parameters
  ----------
  num_kernels : int, default = 6,250
     number of random convolutional kernels. The calculated number of features is the
     nearest multiple of n_features_per_kernel(default 4)*84=336 < 50,000
     (2*n_features_per_kernel(default 4)*num_kernels(default 6,250)).
  max_dilations_per_kernel : int, default = 32
      maximum number of dilations per kernel.
  n_features_per_kernel : int, default = 4
      number of features per kernel.
  normalise : bool, default False
  n_jobs : int, default=1
      The number of jobs to run in parallel for `transform`. ``-1`` means using all
      processors.
  random_state : None or int, default = None
  
  Attributes
  ----------
  parameter : tuple
      parameter (dilations, num_features_per_dilation, biases) for
      transformation of input X
  parameter1 : tuple
      parameter (dilations, num_features_per_dilation, biases) for
      transformation of input X1 = np.diff(X, 1)
  
  See Also
  --------
  MultiRocketMultivariate, MiniRocket, MiniRocketMultivariate, Rocket
  
  References
  ----------
  .. [1] Tan, Chang Wei and Dempster, Angus and Bergmeir, Christoph and
  Webb, Geoffrey I, "MultiRocket: Multiple pooling operators and transformations
  for fast and effective time series classification",2022,
  https://link.springer.com/article/10.1007/s10618-022-00844-1
  https://arxiv.org/abs/2102.00457
  
  Examples
  --------
   >>> from sktime.transformations.panel.rocket import Rocket
   >>> from sktime.datasets import load_unit_test
   >>> X_train, y_train = load_unit_test(split="train") # doctest: +SKIP
   >>> X_test, y_test = load_unit_test(split="test") # doctest: +SKIP
   >>> trf = MultiRocket(num_kernels=512) # doctest: +SKIP
   >>> trf.fit(X_train) # doctest: +SKIP
   MultiRocket(...)
   >>> X_train = trf.transform(X_train) # doctest: +SKIP
   >>> X_test = trf.transform(X_test) # doctest: +SKIP
class_docstr_tok: ["Multi","RandOm","Convolutional","KErnel","Transform","(","MultiRocket",")",".","MultiRocket","[","1","]","_","is","uses","the","same","set","of","kernels","as","MiniRocket","on","both","the","raw","series","and","the","first","order","differenced","series","representation",".","It","uses","a","different","set","of","dilations","and","used","for","each","representation",".","In","addition","to","percentage","of","positive","values","(","PPV",")","MultiRocket","adds","3","pooling","operators",":","Mean","of","Positive","Values","(","MPV",")",";","Mean","of","Indices","of","Positive","Values","(","MIPV",")",";","and","Longest","Stretch","of","Positive","Values","(","LSPV",")",".","This","version","is","for","univariate","time","series","only",".","Use","class","MultiRocketMultivariate","for","multivariate","input",".","This","transformer","fits","one","set","of","paramereters","per","individual","series",",","and","applies","the","transform","with","fitted","parameter","i","to","the","i-th","series","in","transform",".","Vanilla","use","requires","same","number","of","series","in","fit","and","transform",".","To","fit","and","transform","series","at","the","same","time",",","without","an","identification","of","fit\/transform","instances",",","wrap","this","transformer","in","``","FitInTransform","``",",","from","``","sktime.transformations.compose","``",".","Parameters","--","--","--","--","--","num_kernels",":","int",",","default","=","6,250","number","of","random","convolutional","kernels",".","The","calculated","number","of","features","is","the","nearest","multiple","of","n_features_per_kernel","(","default","4",")","*","84=336","<","50,000","(","2","*","n_features_per_kernel","(","default","4",")","*","num_kernels","(","default","6,250",")",")",".","max_dilations_per_kernel",":","int",",","default","=","32","maximum","number","of","dilations","per","kernel",".","n_features_per_kernel",":","int",",","default","=","4","number","of","features","per","kernel",".","normalise",":","bool",",","default","False","n_jobs",":","int",",","default=1","The","number","of","jobs","to","run","in","parallel","for","`","transform","`",".","``","-1","``","means","using","all","processors",".","random_state",":","None","or","int",",","default","=","None","Attributes","--","--","--","--","--","parameter",":","tuple","parameter","(","dilations",",","num_features_per_dilation",",","biases",")","for","transformation","of","input","X","parameter1",":","tuple","parameter","(","dilations",",","num_features_per_dilation",",","biases",")","for","transformation","of","input","X1","=","np.diff","(","X",",","1",")","See","Also","--","--","--","--","MultiRocketMultivariate",",","MiniRocket",",","MiniRocketMultivariate",",","Rocket","References","--","--","--","--","--","..","[","1","]","Tan",",","Chang","Wei","and","Dempster",",","Angus","and","Bergmeir",",","Christoph","and","Webb",",","Geoffrey","I",",","``","MultiRocket",":","Multiple","pooling","operators","and","transformations","for","fast","and","effective","time","series","classification","''",",2022",",","https",":","\/\/link.springer.com\/article\/10.1007\/s10618-022-00844-1","https",":","\/\/arxiv.org\/abs\/2102.00457","Examples","--","--","--","--",">",">",">","from","sktime.transformations.panel.rocket","import","Rocket",">",">",">","from","sktime.datasets","import","load_unit_test",">",">",">","X_train",",","y_train","=","load_unit_test","(","split=","''","train","''",")","#","doctest",":","+SKIP",">",">",">","X_test",",","y_test","=","load_unit_test","(","split=","''","test","''",")","#","doctest",":","+SKIP",">",">",">","trf","=","MultiRocket","(","num_kernels=512",")","#","doctest",":","+SKIP",">",">",">","trf.fit","(","X_train",")","#","doctest",":","+SKIP","MultiRocket","(","...",")",">",">",">","X_train","=","trf.transform","(","X_train",")","#","doctest",":","+SKIP",">",">",">","X_test","=","trf.transform","(","X_test",")","#","doctest",":","+SKIP"]
docstr: Transform input time series using random convolutional kernels.
  
  Parameters
  ----------
  X : 3D np.ndarray of shape = [n_instances, n_dimensions, series_length]
      panel of time series to transform
  y : ignored argument for interface compatibility
  
  Returns
  -------
  pandas DataFrame, transformed features
docstr_tok: ["Transform","input","time","series","using","random","convolutional","kernels",".","Parameters","--","--","--","--","--","X",":","3D","np.ndarray","of","shape","=","[","n_instances",",","n_dimensions",",","series_length","]","panel","of","time","series","to","transform","y",":","ignored","argument","for","interface","compatibility","Returns","--","--","--","-","pandas","DataFrame",",","transformed","features"]
code: def _transform(self, X, y=None):
      """Transform input time series using random convolutional kernels.
  
      Parameters
      ----------
      X : 3D np.ndarray of shape = [n_instances, n_dimensions, series_length]
          panel of time series to transform
      y : ignored argument for interface compatibility
  
      Returns
      -------
      pandas DataFrame, transformed features
      """
      from numba import get_num_threads, set_num_threads
  
      from sktime.transformations.panel.rocket._multirocket_numba import (
          _transform,
      )
  
      X = X.astype(np.float64)
      X = convert(
          X,
          from_type="numpy3D",
          to_type="numpyflat",
          as_scitype="Panel",
      )
      if self.normalise:
          X = (X - X.mean(axis=-1, keepdims=True)) / (
              X.std(axis=-1, keepdims=True) + 1e-8
          )
  
      X1 = np.diff(X, 1)
  
      # change n_jobs depended on value and existing cores
      prev_threads = get_num_threads()
      if self.n_jobs < 1 or self.n_jobs > multiprocessing.cpu_count():
          n_jobs = multiprocessing.cpu_count()
      else:
          n_jobs = self.n_jobs
      set_num_threads(n_jobs)
  
      X = _transform(
          X,
          X1,
          self.parameter,
          self.parameter1,
          self.n_features_per_kernel,
      )
      X = np.nan_to_num(X)
  
      set_num_threads(prev_threads)
      # # from_2d_array_to_3d_numpy
      # _X = np.reshape(_X, (_X.shape[0], 1, _X.shape[1])).astype(np.float64)
      return pd.DataFrame(X)
  
file_path: sktime/sktime/transformations/panel/rocket/_multirocket.py
imports: import multiprocessing
  import numpy
  import pandas
  from sktime.datatypes import convert
  from sktime.transformations.base import BaseTransformer
label_desc: Use image node_id 3 for calling the MultiRocket obj's underlying member method code with example usage: obj._transform(X, y) and returns: pd