amica.AmicaConfig#

class amica.AmicaConfig(num_models=1, num_mix_comps=3, pcakeep=None, dtype='float64', max_iter=2000, lrate=0.01, minlrate=1e-08, lratefact=0.5, rholrate=0.05, rholratefact=0.5, minrho=1.0, maxrho=2.0, rho0=1.5, do_newton=True, newt_start=50, newt_ramp=10, newtrate=1.0, do_mean=True, do_sphere=True, sphere_type='zca', do_pca=True, do_approx_sphere=True, mineig=1e-12, do_reject=False, rejsig=3.0, rejstart=2, rejint=3, numrej=5, min_dll=1e-09, use_min_dll=True, max_decs=3, max_incs=10, invsigmax=100.0, invsigmin=1e-08, doscaling=True, writestep=100, outdir=None, fix_init=False, update_alpha=True, update_mu=True, update_beta=True, update_rho=True, chunk_size=None, estep='auto')[source]#

Bases: object

Configuration for AMICA algorithm.

Parameters:
num_modelsint

Number of ICA models to learn simultaneously. Default is 1.

num_mix_compsint

Number of Gaussian mixture components per source. Default is 3.

dtypestr

Data type to use for computation: “float32” or “float64”. Default is “float64”.

pcakeepint, optional

Number of PCA components to keep. If None, uses data rank.

max_iterint

Maximum number of iterations. Default is 2000.

lratefloat

Initial learning rate. Default is 0.1.

minlratefloat

Minimum learning rate before stopping. Default is 1e-8.

lratefactfloat

Factor to decrease learning rate on likelihood decrease. Default is 0.5.

rholratefloat

Learning rate for shape parameter rho. Default is 0.05.

rholratefactfloat

Factor to decrease rho learning rate on likelihood decrease. Default is 0.5.

minrhofloat

Minimum value for shape parameter (1.0 = Laplacian). Default is 1.0.

maxrhofloat

Maximum value for shape parameter (2.0 = Gaussian). Default is 2.0.

do_newtonbool

Whether to use Newton updates for faster convergence. Default is True.

newt_startint

Iteration to start Newton updates. Default is 50.

newt_rampint

Number of iterations to ramp up Newton. Default is 10.

newtratefloat

Newton learning rate multiplier. Default is 1.0.

do_meanbool

Whether to remove data mean. Default is True.

do_spherebool

Whether to whiten/sphere data. Default is True.

sphere_typestr

Type of sphering: “pca” or “zca”. Default is “zca”.

do_pcabool

Whether to apply PCA dimensionality reduction. Default is True.

do_approx_spherebool

Use approximate sphering. Default is True.

mineigfloat

Minimum eigenvalue threshold for PCA. Default is 1e-12.

do_rejectbool

Whether to reject outlier samples. Default is False.

rejsigfloat

Rejection threshold in standard deviations. Default is 3.0.

rejstartint

Iteration to start rejection. Default is 2 (Klug et al. 2024).

rejintint

Interval between rejection passes. Default is 3 (Klug et al. 2024).

numrejint

Number of rejection passes per interval. Default is 5.

min_dllfloat

Minimum log-likelihood change for convergence. Default is 1e-9.

max_decsint

Number of LL decreases before reducing max learning rates. Default is 3.

max_incsint

Number of small LL increases before stopping. Default is 10.

use_min_dllbool

Whether to use min_dll for convergence. Default is True.

invsigmaxfloat

Maximum inverse sigma for numerical stability. Default is 100.0.

invsigminfloat

Minimum inverse sigma for numerical stability. Default is 0.0.

doscalingbool

Whether to rescale A/mu/sbeta each iteration. Default is True.

writestepint

Interval for writing intermediate results. Default is 100.

outdirPath, optional

Output directory for results.

fix_initbool

Use identity matrix initialization instead of random. Default is False.

update_alphabool

Whether to update mixture weights. Default is True.

update_mubool

Whether to update location parameters. Default is True.

update_betabool

Whether to update scale parameters. Default is True.

update_rhobool

Whether to update shape parameters. Default is True.

Parameters:
__init__(num_models=1, num_mix_comps=3, pcakeep=None, dtype='float64', max_iter=2000, lrate=0.01, minlrate=1e-08, lratefact=0.5, rholrate=0.05, rholratefact=0.5, minrho=1.0, maxrho=2.0, rho0=1.5, do_newton=True, newt_start=50, newt_ramp=10, newtrate=1.0, do_mean=True, do_sphere=True, sphere_type='zca', do_pca=True, do_approx_sphere=True, mineig=1e-12, do_reject=False, rejsig=3.0, rejstart=2, rejint=3, numrej=5, min_dll=1e-09, use_min_dll=True, max_decs=3, max_incs=10, invsigmax=100.0, invsigmin=1e-08, doscaling=True, writestep=100, outdir=None, fix_init=False, update_alpha=True, update_mu=True, update_beta=True, update_rho=True, chunk_size=None, estep='auto')#
Parameters:
Return type:

None

Methods

__init__([num_models, num_mix_comps, ...])

Attributes

num_models: int = 1#
num_mix_comps: int = 3#
pcakeep: int | None = None#
dtype: str = 'float64'#
max_iter: int = 2000#
lrate: float = 0.01#
minlrate: float = 1e-08#
lratefact: float = 0.5#
rholrate: float = 0.05#
rholratefact: float = 0.5#
minrho: float = 1.0#
maxrho: float = 2.0#
rho0: float = 1.5#
do_newton: bool = True#
newt_start: int = 50#
newt_ramp: int = 10#
newtrate: float = 1.0#
do_mean: bool = True#
do_sphere: bool = True#
sphere_type: str = 'zca'#
do_pca: bool = True#
do_approx_sphere: bool = True#
mineig: float = 1e-12#
do_reject: bool = False#
rejsig: float = 3.0#
rejstart: int = 2#
rejint: int = 3#
numrej: int = 5#
min_dll: float = 1e-09#
use_min_dll: bool = True#
max_decs: int = 3#
max_incs: int = 10#
invsigmax: float = 100.0#
invsigmin: float = 1e-08#
doscaling: bool = True#
writestep: int = 100#
outdir: Path | None = None#
fix_init: bool = False#
update_alpha: bool = True#
update_mu: bool = True#
update_beta: bool = True#
update_rho: bool = True#
chunk_size: int | Literal['auto'] | None = None#
estep: Literal['auto', 'fused', 'classic'] = 'auto'#