multiviewica.multiviewica

multiviewica.multiviewica(X, n_components=None, dimension_reduction='pca', noise=1.0, max_iter=1000, init='permica', random_state=None, tol=0.001, verbose=False)

Performs MultiViewICA. It optimizes: \(l(W) = mean_t [sum_k log(cosh(Y_{avg}(t)[k])) + sum_i l_i(X_i(t))]\) where \(l_i(X_i(t)) = - log(|W_i|) + 1/(2 noise) ||W_iX_i(t) - Y_{avg}(t)||^2\) \(X_i\) is the data of group i (ex: subject i) \(W_i\) is the mixing matrix of subject i and \(Y_avg = mean_i W_i X_i\)

Parameters
Xnp array of shape (n_groups, n_features, n_samples)

Training vector, where n_groups is the number of groups, n_samples is the number of samples and n_components is the number of components.

n_componentsint, optional

Number of components to extract. If None, no dimension reduction is performed

dimension_reduction: str, optional

if srm: use srm to reduce the data if pca: use group specific pca to reduce the data

noisefloat, optional

Gaussian noise level

max_iterint, optional

Maximum number of iterations to perform

initstr or np array of shape (n_groups, n_components, n_components)

If permica: initialize with perm ICA, if groupica, initialize with group ica. Else, use the provided array to initialize.

random_stateint, RandomState instance or None, optional (default=None)

Used to perform a random initialization. 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.

tolfloat, optional

A positive scalar giving the tolerance at which the un-mixing matrices are considered to have converged.

verbosebool, optional

Print information

Returns
Pnp array of shape (n_groups, n_components, n_features)

K is the projection matrix that projects data in reduced space

Wnp array of shape (n_groups, n_components, n_components)

Estimated un-mixing matrices

Snp array of shape (n_components, n_samples)

Estimated source

See also

groupica
permica