class_docstr: Feature extractor over a window.
  
  This transformer extracts 3 features from each window: the mean, the
  standard deviation and the slope.
  
  Parameters
  ----------
  n_windows : int or float (default = 1.)
      The number of windows from which features are extracted.
  
  min_window_size : int or float (default = 1)
      The minimum length of the windows. If float, it represents a percentage
      of the size of each time series.
  
  random_state : None, int or RandomState instance (default = None)
      The seed of the pseudo random number generator to use when shuffling
      the data. If int, random_state is the seed used by the random number
      generator. If RandomState instance, random_state is the random number
      generator. If None, the random number generator is the RandomState
      instance used by `np.random`.
  
  Attributes
  ----------
  indices_ : array, shape = (n_windows, 2)
      The indices for the windows.
      The first column consists of the starting indices (included)
      of the windows. The second column consists of the ending indices
      (excluded) of the windows.
class_docstr_tok: ["Feature","extractor","over","a","window",".","This","transformer","extracts","3","features","from","each","window",":","the","mean",",","the","standard","deviation","and","the","slope",".","Parameters","--","--","--","--","--","n_windows",":","int","or","float","(","default","=","1",".",")","The","number","of","windows","from","which","features","are","extracted",".","min_window_size",":","int","or","float","(","default","=","1",")","The","minimum","length","of","the","windows",".","If","float",",","it","represents","a","percentage","of","the","size","of","each","time","series",".","random_state",":","None",",","int","or","RandomState","instance","(","default","=","None",")","The","seed","of","the","pseudo","random","number","generator","to","use","when","shuffling","the","data",".","If","int",",","random_state","is","the","seed","used","by","the","random","number","generator",".","If","RandomState","instance",",","random_state","is","the","random","number","generator",".","If","None",",","the","random","number","generator","is","the","RandomState","instance","used","by","`","np.random","`",".","Attributes","--","--","--","--","--","indices_",":","array",",","shape","=","(","n_windows",",","2",")","The","indices","for","the","windows",".","The","first","column","consists","of","the","starting","indices","(","included",")","of","the","windows",".","The","second","column","consists","of","the","ending","indices","(","excluded",")","of","the","windows","."]
code: def _check_params(self, X):
      n_samples, n_timestamps = X.shape
  
      if not isinstance(
          self.n_windows, (int, np.integer, float, np.floating)
      ):
          raise TypeError("'n_windows' must be an integer or a float.")
      if isinstance(self.n_windows, (int, np.integer)):
          if self.n_windows < 1:
              raise ValueError(
                  "If 'n_windows' is an integer, it must be positive "
                  "(got {0}).".format(self.n_windows)
              )
          n_windows = self.n_windows
      else:
          if self.n_windows <= 0:
              raise ValueError(
                  "If 'n_windows' is a float, it must be greater "
                  "than 0 (got {0}).".format(self.n_windows)
              )
          n_windows = ceil(self.n_windows * n_timestamps)
  
      if not isinstance(
          self.min_window_size, (int, np.integer, float, np.floating)
      ):
          raise TypeError(
              "'min_window_size' must be an integer or a float."
          )
      if isinstance(self.min_window_size, (int, np.integer)):
          if not 1 <= self.min_window_size <= n_timestamps:
              raise ValueError(
                  "If 'min_window_size' is an integer, it must be greater "
                  "than or equal to 1 and lower than or equal to "
                  "n_timestamps (got {0}).".format(self.min_window_size)
              )
          min_window_size = self.min_window_size
      else:
          if not 0 < self.min_window_size <= 1:
              raise ValueError(
                  "If 'min_window_size' is a float, it must be greater "
                  "than 0 and lower than or equal to 1 (got {}).".format(
                      self.min_window_size
                  )
              )
          min_window_size = ceil(self.min_window_size * n_timestamps)
  
      rng = check_random_state(self.random_state)
  
      return n_windows, min_window_size, rng
  
imports: from math import ceil
  from numba import njit
  import numpy
  from sklearn.base import BaseEstimator
  from sklearn.ensemble import RandomForestClassifier
  from sklearn.pipeline import Pipeline
  from sklearn.utils.validation import check_array, check_is_fitted, check_random_state
  from ..base import UnivariateClassifierMixin, UnivariateTransformerMixin
label_desc: Use image node_id 4 for calling the WindowFeatureExtractor obj's underlying member method code with example usage: obj._check_params(X) and returns: n_windows,  min_window_size,  rng