mlpack
Public Member Functions | List of all members
mlpack::radical::Radical Class Reference

An implementation of RADICAL, an algorithm for independent component analysis (ICA). More...

#include <radical.hpp>

Public Member Functions

 Radical (const double noiseStdDev=0.175, const size_t replicates=30, const size_t angles=150, const size_t sweeps=0, const size_t m=0)
 Set the parameters to RADICAL. More...
 
void DoRadical (const arma::mat &matX, arma::mat &matY, arma::mat &matW)
 Run RADICAL. More...
 
double Vasicek (arma::vec &x) const
 Vasicek's m-spacing estimator of entropy, with overlap modification from (Learned-Miller and Fisher, 2003). More...
 
void CopyAndPerturb (arma::mat &xNew, const arma::mat &x) const
 Make replicates of each data point (the number of replicates is set in either the constructor or with Replicates()) and perturb data with Gaussian noise with standard deviation noiseStdDev.
 
double DoRadical2D (const arma::mat &matX)
 Two-dimensional version of RADICAL.
 
double NoiseStdDev () const
 Get the standard deviation of the additive Gaussian noise.
 
double & NoiseStdDev ()
 Modify the standard deviation of the additive Gaussian noise.
 
size_t Replicates () const
 Get the number of Gaussian-perturbed replicates used per point.
 
size_t & Replicates ()
 Modify the number of Gaussian-perturbed replicates used per point.
 
size_t Angles () const
 Get the number of angles considered during brute-force search.
 
size_t & Angles ()
 Modify the number of angles considered during brute-force search.
 
size_t Sweeps () const
 Get the number of sweeps.
 
size_t & Sweeps ()
 Modify the number of sweeps.
 

Detailed Description

An implementation of RADICAL, an algorithm for independent component analysis (ICA).

Let X be a matrix where each column is a point and each row a dimension. The goal is to find a square unmixing matrix W such that Y = W X and the rows of Y are independent components.

For more details, see the following paper:

@article{learned2003ica,
title = {ICA Using Spacings Estimates of Entropy},
author = {Learned-Miller, E.G. and Fisher III, J.W.},
journal = {Journal of Machine Learning Research},
volume = {4},
pages = {1271--1295},
year = {2003}
}

Constructor & Destructor Documentation

◆ Radical()

Radical::Radical ( const double  noiseStdDev = 0.175,
const size_t  replicates = 30,
const size_t  angles = 150,
const size_t  sweeps = 0,
const size_t  m = 0 
)

Set the parameters to RADICAL.

Parameters
noiseStdDevStandard deviation of the Gaussian noise added to the replicates of the data points during Radical2D
replicatesNumber of Gaussian-perturbed replicates to use (per point) in Radical2D
anglesNumber of angles to consider in brute-force search during Radical2D
sweepsNumber of sweeps. Each sweep calls Radical2D once for each pair of dimensions
mThe variable m from Vasicek's m-spacing estimator of entropy.

Member Function Documentation

◆ DoRadical()

void Radical::DoRadical ( const arma::mat &  matX,
arma::mat &  matY,
arma::mat &  matW 
)

Run RADICAL.

Parameters
matXInput data into the algorithm - a matrix where each column is a point and each row is a dimension.
matYEstimated independent components - a matrix where each column is a point and each row is an estimated independent component.
matWEstimated unmixing matrix, where matY = matW * matX.

◆ Vasicek()

double Radical::Vasicek ( arma::vec &  x) const

Vasicek's m-spacing estimator of entropy, with overlap modification from (Learned-Miller and Fisher, 2003).

Parameters
xEmpirical sample (one-dimensional) over which to estimate entropy.

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