Radical Class Reference

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

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...

 
size_t Angles () const
 Get the number of angles considered during brute-force search. More...

 
size_t & Angles ()
 Modify the number of angles considered during brute-force search. 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. More...

 
void DoRadical (const arma::mat &matX, arma::mat &matY, arma::mat &matW, util::Timers &timers=IO::GetTimers())
 Run RADICAL. More...

 
double DoRadical2D (const arma::mat &matX, util::Timers &timers=IO::GetTimers())
 Two-dimensional version of RADICAL. More...

 
double NoiseStdDev () const
 Get the standard deviation of the additive Gaussian noise. More...

 
double & NoiseStdDev ()
 Modify the standard deviation of the additive Gaussian noise. More...

 
size_t Replicates () const
 Get the number of Gaussian-perturbed replicates used per point. More...

 
size_t & Replicates ()
 Modify the number of Gaussian-perturbed replicates used per point. More...

 
size_t Sweeps () const
 Get the number of sweeps. More...

 
size_t & Sweeps ()
 Modify the number of sweeps. More...

 
double Vasicek (arma::vec &x) const
 Vasicek's m-spacing estimator of entropy, with overlap modification from (Learned-Miller and Fisher, 2003). More...

 

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}
}

Definition at line 44 of file radical.hpp.

Constructor & Destructor Documentation

◆ 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

◆ Angles() [1/2]

size_t Angles ( ) const
inline

Get the number of angles considered during brute-force search.

Definition at line 111 of file radical.hpp.

◆ Angles() [2/2]

size_t& Angles ( )
inline

Modify the number of angles considered during brute-force search.

Definition at line 113 of file radical.hpp.

◆ CopyAndPerturb()

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.

◆ DoRadical()

void DoRadical ( const arma::mat &  matX,
arma::mat &  matY,
arma::mat &  matW,
util::Timers timers = IO::GetTimers() 
)

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.
timersOptional Timers struct for storing timing information.

◆ DoRadical2D()

double DoRadical2D ( const arma::mat &  matX,
util::Timers timers = IO::GetTimers() 
)

Two-dimensional version of RADICAL.

◆ NoiseStdDev() [1/2]

double NoiseStdDev ( ) const
inline

Get the standard deviation of the additive Gaussian noise.

Definition at line 101 of file radical.hpp.

◆ NoiseStdDev() [2/2]

double& NoiseStdDev ( )
inline

Modify the standard deviation of the additive Gaussian noise.

Definition at line 103 of file radical.hpp.

◆ Replicates() [1/2]

size_t Replicates ( ) const
inline

Get the number of Gaussian-perturbed replicates used per point.

Definition at line 106 of file radical.hpp.

◆ Replicates() [2/2]

size_t& Replicates ( )
inline

Modify the number of Gaussian-perturbed replicates used per point.

Definition at line 108 of file radical.hpp.

◆ Sweeps() [1/2]

size_t Sweeps ( ) const
inline

Get the number of sweeps.

Definition at line 116 of file radical.hpp.

◆ Sweeps() [2/2]

size_t& Sweeps ( )
inline

Modify the number of sweeps.

Definition at line 118 of file radical.hpp.

References mlpack::radical::WhitenFeatureMajorMatrix().

◆ Vasicek()

double 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 file:
  • /home/ryan/src/mlpack.org/_src/mlpack-git/src/mlpack/methods/radical/radical.hpp