class_docstr: Approximates feature map of the "skewed chi-squared" kernel by Monte
  Carlo approximation of its Fourier transform.
  
  Read more in the :ref:`User Guide <skewed_chi_kernel_approx>`.
  
  Parameters
  ----------
  skewedness : float
      "skewedness" parameter of the kernel. Needs to be cross-validated.
  
  n_components : int
      number of Monte Carlo samples per original feature.
      Equals the dimensionality of the computed feature space.
  
  random_state : {int, RandomState}, optional
      If int, random_state is the seed used by the random number generator;
      if RandomState instance, random_state is the random number generator.
  
  References
  ----------
  See "Random Fourier Approximations for Skewed Multiplicative Histogram
  Kernels" by Fuxin Li, Catalin Ionescu and Cristian Sminchisescu.
  
  See also
  --------
  AdditiveChi2Sampler : A different approach for approximating an additive
      variant of the chi squared kernel.
  
  sklearn.metrics.pairwise.chi2_kernel : The exact chi squared kernel.
docstr: Fit the model with X.
  
  Samples random projection according to n_features.
  
  Parameters
  ----------
  X : array-like, shape (n_samples, n_features)
      Training data, where n_samples in the number of samples
      and n_features is the number of features.
  
  Returns
  -------
  self : object
      Returns the transformer.
docstr_tok: ["Fit","the","model","with","X",".","Samples","random","projection","according","to","n_features",".","Parameters","--","--","--","--","--","X",":","array-like",",","shape","(","n_samples",",","n_features",")","Training","data",",","where","n_samples","in","the","number","of","samples","and","n_features","is","the","number","of","features",".","Returns","--","--","--","-","self",":","object","Returns","the","transformer","."]
code: def fit(self, X, y=None):
      """Fit the model with X.
  
      Samples random projection according to n_features.
  
      Parameters
      ----------
      X : array-like, shape (n_samples, n_features)
          Training data, where n_samples in the number of samples
          and n_features is the number of features.
  
      Returns
      -------
      self : object
          Returns the transformer.
      """
  
      X = check_array(X)
      random_state = check_random_state(self.random_state)
      n_features = X.shape[1]
      uniform = random_state.uniform(
          size=(n_features, self.n_components)
      )
      # transform by inverse CDF of sech
      self.random_weights_ = (
          1.0 / np.pi * np.log(np.tan(np.pi / 2.0 * uniform))
      )
      self.random_offset_ = random_state.uniform(
          0, 2 * np.pi, size=self.n_components
      )
      return self
  
imports: import warnings
  import numpy
  import scipy.sparse
  from scipy.linalg import svd
  from .base import BaseEstimator
  from .base import TransformerMixin
  from .utils import check_array, check_random_state, as_float_array
  from .utils.extmath import safe_sparse_dot
  from .utils.validation import check_is_fitted
  from .metrics.pairwise import pairwise_kernels
label_desc: Use image node_id 2 for calling the SkewedChi2Sampler obj's underlying member method code with example usage: obj.fit(X, y) and returns: self