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: Apply the approximate feature map to X.
  
  Parameters
  ----------
  X : array-like, shape (n_samples, n_features)
      New data, where n_samples in the number of samples
      and n_features is the number of features.
  
  Returns
  -------
  X_new : array-like, shape (n_samples, n_components)
docstr_tok: ["Apply","the","approximate","feature","map","to","X.","Parameters","--","--","--","--","--","X",":","array-like",",","shape","(","n_samples",",","n_features",")","New","data",",","where","n_samples","in","the","number","of","samples","and","n_features","is","the","number","of","features",".","Returns","--","--","--","-","X_new",":","array-like",",","shape","(","n_samples",",","n_components",")"]
code: def transform(self, X, y=None):
      """Apply the approximate feature map to X.
  
      Parameters
      ----------
      X : array-like, shape (n_samples, n_features)
          New data, where n_samples in the number of samples
          and n_features is the number of features.
  
      Returns
      -------
      X_new : array-like, shape (n_samples, n_components)
      """
      check_is_fitted(self, "random_weights_")
  
      X = as_float_array(X, copy=True)
      X = check_array(X, copy=False)
      if (X < 0).any():
          raise ValueError(
              "X may not contain entries smaller than zero."
          )
  
      X += self.skewedness
      np.log(X, X)
      projection = safe_sparse_dot(X, self.random_weights_)
      projection += self.random_offset_
      np.cos(projection, projection)
      projection *= np.sqrt(2.0) / np.sqrt(self.n_components)
      return projection
  
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 3 for calling the SkewedChi2Sampler obj's underlying member method code with example usage: obj.transform(X, y) and returns: projection