amica.Amica#
- class amica.Amica(config=None, random_state=None)[source]#
Bases:
objectNative JAX implementation of AMICA algorithm.
Adaptive Mixture Independent Component Analysis (AMICA) performs ICA with adaptive source density modeling using mixtures of generalized Gaussians.
- Parameters:
- config
AmicaConfig,optional Configuration object with all algorithm parameters. If None, uses default configuration.
- random_state
int,optional Random seed for reproducibility.
- config
- Attributes:
- config
AmicaConfig Algorithm configuration.
- result_
AmicaResult Fitted model (available after calling fit).
- config
- Parameters:
config (AmicaConfig | None)
random_state (int | None)
Notes
The AMICA algorithm was developed by Jason Palmer at UCSD. This is a native Python/JAX implementation for GPU acceleration.
References
[1]Palmer et al. (2008). Newton method for the ICA mixture model. Proc. IEEE ICASSP.
[2]Palmer et al. (2011). AMICA: An adaptive mixture of independent component analyzers with shared components. UCSD Technical Report.
Examples
>>> from amica import Amica, AmicaConfig >>> config = AmicaConfig(max_iter=500, num_mix_comps=3) >>> amica = Amica(config, random_state=42) >>> result = amica.fit(data) # data: (n_channels, n_samples) >>> activations = ( ... result.unmixing_matrix_white_ @ result.whitener_ @ (data - result.mean_[:, None]) ... )
- __init__(config=None, random_state=None)[source]#
- Parameters:
config (AmicaConfig | None)
random_state (int | None)
Methods
__init__([config, random_state])fit(data[, init_mean, init_sphere, ...])Fit AMICA model to data.
fit_transform(X[, y])Fit to data, then transform it.
get_params([deep])Get parameters for this estimator.
inverse_transform(sources)Reconstruct data from sources.
load(outdir)Load model from AMICA-compatible directory.
save(outdir)Save model to directory in AMICA-compatible format.
set_params(**params)Set the parameters of this estimator.
transform(data)Apply fitted unmixing to new data.
- fit_transform(X, y=None)[source]#
Fit to data, then transform it.
- Parameters:
- X
np.ndarray,shape(n_channels,n_samples) Input data.
- y
None Ignored.
- X
- Returns:
- X_new
np.ndarray,shape(n_components,n_samples) Transformed data.
- X_new
- Parameters:
X (ndarray)
- Return type:
- fit(data, init_mean=None, init_sphere=None, init_weights=None, init_params=None)[source]#
Fit AMICA model to data.
- Parameters:
- data
np.ndarray,shape(n_channels,n_samples) Input EEG/MEG data. Should be high-pass filtered.
- init_mean
np.ndarray,optional Precomputed mean vector to use instead of computing from data.
- init_sphere
np.ndarray,optional Precomputed sphering matrix to use instead of computing from data.
- init_weights
np.ndarray,optional Precomputed unmixing matrix (W) to use for initialization.
- init_params
dict,optional Dictionary containing initial values for ‘alpha’, ‘mu’, ‘beta’, ‘rho’.
- data
- Returns:
- result
AmicaResult Fitted model containing mixing/unmixing matrices and all model parameters.
- result
- Parameters:
- Return type:
- transform(data)[source]#
Apply fitted unmixing to new data.
- Parameters:
- data
np.ndarray,shape(n_channels,n_samples) New data to transform.
- data
- Returns:
- sources
np.ndarray,shape(n_components,n_samples) Source activations.
- sources
- Parameters:
data (ndarray)
- Return type:
- inverse_transform(sources)[source]#
Reconstruct data from sources.
- Parameters:
- sources
np.ndarray,shape(n_components,n_samples) Source activations.
- sources
- Returns:
- data
np.ndarray,shape(n_channels,n_samples) Reconstructed data.
- data
- Parameters:
sources (ndarray)
- Return type: