Skip to content

amica 0.1.0

Choose a tag to compare

@snesmaeili snesmaeili released this 06 Aug 04:23
· 62 commits to main since this release

Rank-aware fit_ica and chunked multi-model posteriors. This release ships the two defects disclosed against 0.0.1.

Enhancements

  • Multi-model fits no longer materialise the full (n_models, n_components, n_samples) source array when computing model posteriors or when likelihood-based sample rejection is enabled. Both paths now honour chunk_size, bounding peak memory on long recordings. Results are unchanged.

API Changes

  • fit_ica now validates n_components instead of silently reinterpreting it. Requesting more components than there are selected channels raises ValueError (matching sklearn.decomposition.PCA and mne.preprocessing.ICA, which previously differed from this function), and requesting more than the estimated numerical rank of the data also raises. With n_components unset the estimated rank is used and a RuntimeWarning reports the value chosen. Previously the default kept every channel: on average-referenced EEG the trailing PCA direction has near-zero variance, which made the unmixing matrix numerically singular, collapsed mixing_matrix_, and caused ICA.apply() to return near-zero data with no warning.

Re-validation

Checked against the published benchmark before release. On three ds004505 participants at the published configuration, complete MIR agrees with the reported values to within 0.04% — largest deviation 1.5e-03 kbits/s, against a smallest reported between-method difference of 0.136 kbits/s. Retained rank, component count, iteration count and per-subject sample counts are identical, and fits are 40–44% faster on the same hardware class. The MNE interoperability suite passes 30/30.

Full Changelog: v0.0.1...v0.1.0