Warning

You are reading the documentation related to the development version. Go here if you are looking for the documentation of the stable release.

spectrochempy.FastICA

class FastICA(*, log_level='WARNING', warm_start=False, algorithm='parallel', fun='logcosh', fun_args, max_iter=200, n_components=None, random_state=None, tol=0.0001, w_init=None, whiten='unit-variance', whiten_solver='svd')[source]

Fast algorithm for Independent Component Analysis (FastICA).

A wrapper of sklearn.decomposition.FastICA.

ICA (Independent Component Analysis) extracts the underlying sources of the variability of a set of spectra \(X\) into the spectral profiles \(S^t\) of the underlying sources and a mixing matrix \(A\).

In terms of matrix equation:

\[X = \bar{X} + A \cdot S^t + E\]

where \(\bar{X}\) is the mean of the dataset and \(E\) is the matrix of residuals.

Parameters
  • log_level (any of ["INFO", "DEBUG", "WARNING", "ERROR"], optional, default: "WARNING") – The log level at startup. It can be changed later on using the set_log_level method or by changing the log_level attribute.

  • warm_start (bool, optional, default: False) – When fitting repeatedly on the same dataset, but for multiple parameter values (such as to find the value maximizing performance), it may be possible to reuse previous model learned from the previous parameter value, saving time.

    When warm_start is True, the existing fitted model attributes is used to initialize the new model in a subsequent call to fit.

  • algorithm (any value of [ 'parallel' , 'deflation' ], optional, default: 'parallel') – Specify which algorithm to use for FastICA.

  • fun (any of [‘logcosh’, ‘exp’, ‘cube’] or a callable or a unicode string, optional, default: 'logcosh') – The functional form of the function used in the approximation to neg-entropy.

    • string: could be either "logcosh", "exp", or "cube".

    • callable: You can provide your own function. It should return a tuple containing the value of the function, and of its derivative, in the point. The derivative should be averaged along its last dimension.

    def my_g(x):
        return x ** 3, (3 * x ** 2).mean(axis=-1)
    

    Note

    fun can be also a serialized function created using dill and base64 python libraries. Normally not used directly, it is here for internal process.

  • fun_args (dict, optional, default: {}) – Arguments to send to the functional form.

    If empty or None and if fun=="logcosh" , fun_args will take value {alpha : 1.0}.

  • max_iter (int, optional, default: 200) – Maximum number of iterations before timing out.

  • n_components (int, optional, default: None) – Number of components (sources) to use.

  • random_state (an int or a RandomState, optional, default: None) – Used to initialize w_init when not specified, with a normaldistribution. Pass an int, for reproducible results across multiple function calls.

  • tol (float, optional, default: 0.0001) – Tolerance at which the un-mixing matrix is considered to have converged.

  • w_init (a SpectroChemPy NDDataset, optional, default: None) – Initial un-mixing array.

    NDDataset or array-like of shape (n_components, n_components). If w_init=None, then an array of values drawn from a normal distribution is used.

  • whiten (any of [‘arbitrary-variance’, ‘unit-variance’] or a boolean, optional, default: 'unit-variance') – Specify the whitening strategy to use.

    • "arbitrary-variance": a whitening with variance arbitrary is used.

    • “unit-variance” : the whitening matrix is rescaled to ensure that each recovered source has unit variance.

    • False : the data is already considered to be whitened, and no whitening is performed.

  • whiten_solver (any value of [ 'svd' , 'eigh' ], optional, default: 'svd') – The solver to use for whitening.

See also

EFA

Perform an Evolving Factor Analysis (forward and reverse).

IRIS

Integral inversion solver for spectroscopic data.

MCRALS

Perform MCR-ALS of a dataset knowing the initial \(C\) or \(S^T\) matrix.

NMF

Non-Negative Matrix Factorization.

PCA

Perform Principal Components Analysis.

SIMPLISMA

SIMPLe to use Interactive Self-modeling Mixture Analysis.

SVD

Perform a Singular Value Decomposition.

Attributes Summary

A

The mixing system A.

St

The spectral profiles of the independant sources.

X

Return the X input dataset (eventually modified by the model).

Y

The Y input.

algorithm

Specify which algorithm to use for FastICA.

components

NDDataset with components in feature space (n_components, n_features).

config

traitlets.config.Config object.

fun

The functional form of the function used in the approximation to neg-entropy.

fun_args

Arguments to send to the functional form.

log

Return log output.

max_iter

Maximum number of iterations before timing out.

mean

The mean of X over features.

mixing

The pseudo inverse of components.

n_components

Number of components (sources) to use.

n_iter

Number of iterations.

name

Object name

random_state

Used to initialize w_init when not specified, with a normaldistribution.

tol

Tolerance at which the un-mixing matrix is considered to have converged.

w_init

Initial un-mixing array.

whiten

Specify the whitening strategy to use.

whiten_solver

The solver to use for whitening.

whitening

NDDataset of shape (n_components, n_features).

Methods Summary

fit(X)

Fit the FastICA model on X.

fit_transform(X[, Y])

Fit the model with X and apply the dimensionality reduction on X.

get_components([n_components])

Return the component's dataset: (selected n_components, n_features).

inverse_transform([X_transform])

Transform data back to its original space.

parameters([replace, removed, default])

Alias for params method.

params([default])

Current or default configuration values.

plotmerit([X, X_hat])

Plot the input (X), reconstructed (X_hat) and residuals.

reconstruct([X_transform])

Transform data back to its original space.

reduce([X])

Apply dimensionality reduction to X.

reset()

Reset configuration parameters to their default values

to_dict()

Return config value in a dict form.

transform([X])

Apply dimensionality reduction to X.

Attributes Documentation

A

The mixing system A.

NDDataset of size (n_observations, n_components). It is the matrix returned by the transform() method.

St

The spectral profiles of the independant sources.

NDDataset of size (n_components, n_features). It is the transpose of the mixing_ matrix returned by Scikit-Learn.

X

Return the X input dataset (eventually modified by the model).

Y

The Y input.

algorithm

Specify which algorithm to use for FastICA.

components

NDDataset with components in feature space (n_components, n_features).

See also

get_components

Retrieve only the specified number of components.

config

traitlets.config.Config object.

fun

The functional form of the function used in the approximation to neg-entropy.

  • string: could be either "logcosh", "exp", or "cube".

  • callable: You can provide your own function. It should return a tuple containing the value of the function, and of its derivative, in the point. The derivative should be averaged along its last dimension.

def my_g(x):
    return x ** 3, (3 * x ** 2).mean(axis=-1)

Note

fun can be also a serialized function created using dill and base64 python libraries. Normally not used directly, it is here for internal process.

fun_args

Arguments to send to the functional form.

If empty or None and if fun=="logcosh" , fun_args will take value {alpha : 1.0}.

log

Return log output.

max_iter

Maximum number of iterations before timing out.

mean

The mean of X over features.

Only set if whiten is True, it is needed (and used) to reconstruct a dataset by inverse_transform(A).

mixing

The pseudo inverse of components.

NDDataset of size (n_features, n_components). It is the linear operator that maps independent sources to the data, and the transpose of St.

n_components

Number of components (sources) to use.

n_iter

Number of iterations.

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.

name

Object name

random_state

Used to initialize w_init when not specified, with a normaldistribution. Pass an int, for reproducible results across multiple function calls.

tol

Tolerance at which the un-mixing matrix is considered to have converged.

w_init

Initial un-mixing array.

NDDataset or array-like of shape (n_components, n_components). If w_init=None, then an array of values drawn from a normal distribution is used.

whiten

Specify the whitening strategy to use.

  • "arbitrary-variance": a whitening with variance arbitrary is used.

  • “unit-variance” : the whitening matrix is rescaled to ensure that each recovered source has unit variance.

  • False : the data is already considered to be whitened, and no whitening is performed.

whiten_solver

The solver to use for whitening.

whitening

NDDataset of shape (n_components, n_features).

Only set if whiten is not None. This is the pre-whitening matrix that projects data onto the first n_components principal components.

Methods Documentation

fit(X)[source]

Fit the FastICA model on X.

Parameters

X (NDDataset or array-like of shape (n_observations, n_features)) – Training data.

Returns

self – The fitted instance itself.

See also

fit_transform

Fit the model with an input dataset X and apply the dimensionality reduction on X.

fit_reduce

Alias of fit_transform (Deprecated).

fit_transform(X, Y=None, **kwargs)[source]

Fit the model with X and apply the dimensionality reduction on X.

Parameters
Returns

NDDataset – Dataset with shape (n_observations, n_components).

Other Parameters

n_components (int, optional) – The number of components to use for the reduction. If not given the number of components is eventually the one specified or determined in the fit process.

get_components(n_components=None)

Return the component’s dataset: (selected n_components, n_features).

Parameters

n_components (int, optional, default: None) – The number of components to keep in the output dataset. If None, all calculated components are returned.

Returns

NDDataset – Dataset with shape (n_components, n_features)

inverse_transform(X_transform=None, **kwargs)

Transform data back to its original space.

In other words, return an input X_original whose reduce/transform would be X_transform.

Parameters
  • X_transform (array-like of shape (n_observations, n_components), optional) – Reduced X data, where n_observations is the number of observations and n_components is the number of components. If X_transform is not provided, a transform of X provided in fit is performed first.

  • **kwargs (keyword parameters, optional) – See Other Parameters.

Returns

NDDataset – Dataset with shape (n_observations, n_features).

Other Parameters

n_components (int, optional) – The number of components to use for the reduction. If not given the number of components is eventually the one specified or determined in the fit process.

See also

reconstruct

Alias of inverse_transform (Deprecated).

parameters(replace="params", removed="0.7.1") def parameters(self, default=False)[source]

Alias for params method.

params(default=False)[source]

Current or default configuration values.

Parameters

default (bool, optional, default: False) – If default is True, the default parameters are returned, else the current values.

Returns

dict – Current or default configuration values.

plotmerit(X=None, X_hat=None, **kwargs)[source]

Plot the input (X), reconstructed (X_hat) and residuals.

\(X\) and \(\hat{X}\) can be passed as arguments. If not, the X attribute is used for \(X\)and \(\hat{X}\)is computed by the inverse_transform method

Parameters
  • X (NDDataset, optional) – Original dataset. If is not provided (default), the X attribute is used and X_hat is computed using inverse_transform.

  • X_hat (NDDataset, optional) – Inverse transformed dataset. if X is provided, X_hat must also be provided as compuyed externally.

  • **kwargs (keyword parameters, optional) – See Other Parameters.

Returns

Axes – Matplotlib subplot axe.

Other Parameters
  • colors (tuple or ndarray of 3 colors, optional) – Colors for X , X_hat and residuals E . in the case of 2D, The default colormap is used for X . By default, the three colors are NBlue , NGreen and NRed (which are colorblind friendly).

  • offset (float, optional, default: None) – Specify the separation (in percent) between the \(X\) , \(X_hat\) and \(E\).

  • nb_traces (int or 'all', optional) – Number of lines to display. Default is 'all'.

  • **others (Other keywords parameters) – Parameters passed to the internal plot method of the X dataset.

reconstruct(X_transform=None, **kwargs)[source]

Transform data back to its original space.

In other words, return an input X_original whose reduce/transform would be X_transform.

Parameters
  • X_transform (array-like of shape (n_observations, n_components), optional) – Reduced X data, where n_observations is the number of observations and n_components is the number of components. If X_transform is not provided, a transform of X provided in fit is performed first.

  • **kwargs (keyword parameters, optional) – See Other Parameters.

Returns

NDDataset – Dataset with shape (n_observations, n_features).

Other Parameters

n_components (int, optional) – The number of components to use for the reduction. If not given the number of components is eventually the one specified or determined in the fit process.

See also

reconstruct

Alias of inverse_transform (Deprecated).

Notes

Deprecated in version 0.6.

reduce(X=None, **kwargs)[source]

Apply dimensionality reduction to X.

Parameters
Returns

NDDataset – Dataset with shape (n_observations, n_components).

Other Parameters

n_components (int, optional) – The number of components to use for the reduction. If not given the number of components is eventually the one specified or determined in the fit process.

Notes

Deprecated in version 0.6.

reset()[source]

Reset configuration parameters to their default values

to_dict()[source]

Return config value in a dict form.

Returns

dict – A regular dictionary.

transform(X=None, **kwargs)

Apply dimensionality reduction to X.

Parameters
Returns

NDDataset – Dataset with shape (n_observations, n_components).

Other Parameters

n_components (int, optional) – The number of components to use for the reduction. If not given the number of components is eventually the one specified or determined in the fit process.

Examples using spectrochempy.FastICA

FastICA example

FastICA example