class_docstr: FastICA: a fast algorithm for Independent Component Analysis.
  
  Read more in the :ref:`User Guide <ICA>`.
  
  Parameters
  ----------
  n_components : int, optional
      Number of components to use. If none is passed, all are used.
  
  algorithm : {'parallel', 'deflation'}
      Apply parallel or deflational algorithm for FastICA.
  
  whiten : boolean, optional
      If whiten is false, the data is already considered to be
      whitened, and no whitening is performed.
  
  fun : string or function, optional. Default: 'logcosh'
      The functional form of the G function used in the
      approximation to neg-entropy. Could be either 'logcosh', 'exp',
      or 'cube'.
      You can also provide your own function. It should return a tuple
      containing the value of the function, and of its derivative, in the
      point. Example:
  
      def my_g(x):
          return x ** 3, 3 * x ** 2
  
  fun_args : dictionary, optional
      Arguments to send to the functional form.
      If empty and if fun='logcosh', fun_args will take value
      {'alpha' : 1.0}.
  
  max_iter : int, optional
      Maximum number of iterations during fit.
  
  tol : float, optional
      Tolerance on update at each iteration.
  
  w_init : None of an (n_components, n_components) ndarray
      The mixing matrix to be used to initialize the algorithm.
  
  random_state : int or RandomState
      Pseudo number generator state used for random sampling.
  
  Attributes
  ----------
  components_ : 2D array, shape (n_components, n_features)
      The unmixing matrix.
  
  mixing_ : array, shape (n_features, n_components)
      The mixing matrix.
  
  n_iter_ : int
      If the algorithm is "deflation", n_iter is the
      maximum number of iterations run across all components. Else
      they are just the number of iterations taken to converge.
  
  Notes
  -----
  Implementation based on
  `A. Hyvarinen and E. Oja, Independent Component Analysis:
  Algorithms and Applications, Neural Networks, 13(4-5), 2000,
  pp. 411-430`
class_docstr_tok: ["FastICA",":","a","fast","algorithm","for","Independent","Component","Analysis",".","Read","more","in","the",":","ref",":","`","User","Guide","<","ICA",">","`",".","Parameters","--","--","--","--","--","n_components",":","int",",","optional","Number","of","components","to","use",".","If","none","is","passed",",","all","are","used",".","algorithm",":","{","'parallel","'",",","'deflation","'","}","Apply","parallel","or","deflational","algorithm","for","FastICA",".","whiten",":","boolean",",","optional","If","whiten","is","false",",","the","data","is","already","considered","to","be","whitened",",","and","no","whitening","is","performed",".","fun",":","string","or","function",",","optional",".","Default",":","'logcosh'","The","functional","form","of","the","G","function","used","in","the","approximation","to","neg-entropy",".","Could","be","either","'logcosh","'",",","'exp","'",",","or","'cube","'",".","You","can","also","provide","your","own","function",".","It","should","return","a","tuple","containing","the","value","of","the","function",",","and","of","its","derivative",",","in","the","point",".","Example",":","def","my_g","(","x",")",":","return","x","*","*","3",",","3","*","x","*","*","2","fun_args",":","dictionary",",","optional","Arguments","to","send","to","the","functional","form",".","If","empty","and","if","fun='logcosh","'",",","fun_args","will","take","value","{","'alpha","'",":","1.0","}",".","max_iter",":","int",",","optional","Maximum","number","of","iterations","during","fit",".","tol",":","float",",","optional","Tolerance","on","update","at","each","iteration",".","w_init",":","None","of","an","(","n_components",",","n_components",")","ndarray","The","mixing","matrix","to","be","used","to","initialize","the","algorithm",".","random_state",":","int","or","RandomState","Pseudo","number","generator","state","used","for","random","sampling",".","Attributes","--","--","--","--","--","components_",":","2D","array",",","shape","(","n_components",",","n_features",")","The","unmixing","matrix",".","mixing_",":","array",",","shape","(","n_features",",","n_components",")","The","mixing","matrix",".","n_iter_",":","int","If","the","algorithm","is","``","deflation","''",",","n_iter","is","the","maximum","number","of","iterations","run","across","all","components",".","Else","they","are","just","the","number","of","iterations","taken","to","converge",".","Notes","--","--","-","Implementation","based","on","`","A.","Hyvarinen","and","E.","Oja",",","Independent","Component","Analysis",":","Algorithms","and","Applications",",","Neural","Networks",",","13","(","4-5",")",",","2000",",","pp",".","411-430","`"]
docstr: Recover the sources from X (apply the unmixing matrix).
  
  Parameters
  ----------
  X : array-like, shape (n_samples, n_features)
      Data to transform, where n_samples is the number of samples
      and n_features is the number of features.
  
  copy : bool (optional)
      If False, data passed to fit are overwritten. Defaults to True.
  
  Returns
  -------
  X_new : array-like, shape (n_samples, n_components)
docstr_tok: ["Recover","the","sources","from","X","(","apply","the","unmixing","matrix",")",".","Parameters","--","--","--","--","--","X",":","array-like",",","shape","(","n_samples",",","n_features",")","Data","to","transform",",","where","n_samples","is","the","number","of","samples","and","n_features","is","the","number","of","features",".","copy",":","bool","(","optional",")","If","False",",","data","passed","to","fit","are","overwritten",".","Defaults","to","True",".","Returns","--","--","--","-","X_new",":","array-like",",","shape","(","n_samples",",","n_components",")"]
code: def transform(self, X, y=None, copy=True):
      """Recover the sources from X (apply the unmixing matrix).
  
      Parameters
      ----------
      X : array-like, shape (n_samples, n_features)
          Data to transform, where n_samples is the number of samples
          and n_features is the number of features.
  
      copy : bool (optional)
          If False, data passed to fit are overwritten. Defaults to True.
  
      Returns
      -------
      X_new : array-like, shape (n_samples, n_components)
      """
      check_is_fitted(self, "mixing_")
  
      X = check_array(X, copy=copy, dtype=FLOAT_DTYPES)
      if self.whiten:
          X -= self.mean_
  
      return fast_dot(X, self.components_.T)
  
imports: import warnings
  import numpy
  from scipy import linalg
  from ..base import BaseEstimator, TransformerMixin
  from ..externals import six
  from ..externals.six import moves
  from ..utils import check_array, as_float_array, check_random_state
  from ..utils.extmath import fast_dot
  from ..utils.validation import check_is_fitted
  from ..utils.validation import FLOAT_DTYPES
label_desc: Use image node_id 5 for calling the FastICA obj's underlying member method code with example usage: obj.transform(X, y, copy) and returns: fast_dot