v2.0.0
Loading...
Searching...
No Matches
UTILSLIB::PicardIca Class Reference

Independent Component Analysis using the Picard algorithm. More...

#include <picard_ica.h>

Static Public Member Functions

static IcaResult run (const Eigen::MatrixXd &matData, int nComponents=-1, int maxIter=200, double tol=1e-7, int lbfgsMemory=7, int randomSeed=42)

Detailed Description

Independent Component Analysis using the Picard algorithm.

Picard uses a preconditioned L-BFGS strategy to minimise the mutual information of the components. Compared to FastICA it typically converges in fewer iterations and handles badly conditioned data more robustly.

IcaResult res = PicardIca::run(matRawData, 20);
QVector<int> exclude = {0, 3};
MatrixXd clean = ICA::excludeComponents(matRawData, res, exclude);
Result of an ICA decomposition.
Definition ica.h:67
static Eigen::MatrixXd excludeComponents(const Eigen::MatrixXd &matData, const IcaResult &result, const QVector< int > &excludedComponents)
Definition ica.cpp:202
static IcaResult run(const Eigen::MatrixXd &matData, int nComponents=-1, int maxIter=200, double tol=1e-7, int lbfgsMemory=7, int randomSeed=42)

Definition at line 60 of file picard_ica.h.

Member Function Documentation

◆ run()

IcaResult PicardIca::run ( const Eigen::MatrixXd & matData,
int nComponents = -1,
int maxIter = 200,
double tol = 1e-7,
int lbfgsMemory = 7,
int randomSeed = 42 )
static

Run the Picard ICA algorithm.

Parameters
[in]matDataInput data (n_channels x n_samples).
[in]nComponentsNumber of components to extract (-1 = all channels).
[in]maxIterMaximum number of iterations (default 200).
[in]tolConvergence tolerance (default 1e-7).
[in]lbfgsMemoryL-BFGS memory length (default 7).
[in]randomSeedSeed for initial weight randomisation (default 42).
Returns
IcaResult with mixing/unmixing matrices and source time series.

Definition at line 70 of file picard_ica.cpp.


The documentation for this class was generated from the following files: