mlpack  master
Public Member Functions | Private Attributes | List of all members
mlpack::radical::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)
 Run RADICAL. More...
 
double DoRadical2D (const arma::mat &matX)
 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...
 

Private Attributes

size_t angles
 Number of angles to consider in brute-force search during Radical2D. More...
 
arma::mat candidate
 Internal matrix, held as member variable to prevent memory reallocations. More...
 
size_t m
 Value of m to use for Vasicek's m-spacing estimator of entropy. More...
 
double noiseStdDev
 Standard deviation of the Gaussian noise added to the replicates of the data points during Radical2D. More...
 
arma::mat perturbed
 Internal matrix, held as member variable to prevent memory reallocations. More...
 
size_t replicates
 Number of Gaussian-perturbed replicates to use (per point) in Radical2D. More...
 
size_t sweeps
 Number of sweeps; each sweep calls Radical2D once for each pair of dimensions. 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 43 of file radical.hpp.

Constructor & Destructor Documentation

mlpack::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

size_t mlpack::radical::Radical::Angles ( ) const
inline

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

Definition at line 105 of file radical.hpp.

References angles.

size_t& mlpack::radical::Radical::Angles ( )
inline

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

Definition at line 107 of file radical.hpp.

References angles.

void mlpack::radical::Radical::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.

void mlpack::radical::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.
double mlpack::radical::Radical::DoRadical2D ( const arma::mat &  matX)

Two-dimensional version of RADICAL.

double mlpack::radical::Radical::NoiseStdDev ( ) const
inline

Get the standard deviation of the additive Gaussian noise.

Definition at line 95 of file radical.hpp.

References noiseStdDev.

double& mlpack::radical::Radical::NoiseStdDev ( )
inline

Modify the standard deviation of the additive Gaussian noise.

Definition at line 97 of file radical.hpp.

References noiseStdDev.

size_t mlpack::radical::Radical::Replicates ( ) const
inline

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

Definition at line 100 of file radical.hpp.

References replicates.

size_t& mlpack::radical::Radical::Replicates ( )
inline

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

Definition at line 102 of file radical.hpp.

References replicates.

size_t mlpack::radical::Radical::Sweeps ( ) const
inline

Get the number of sweeps.

Definition at line 110 of file radical.hpp.

References sweeps.

size_t& mlpack::radical::Radical::Sweeps ( )
inline

Modify the number of sweeps.

Definition at line 112 of file radical.hpp.

References sweeps.

double mlpack::radical::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.

Member Data Documentation

size_t mlpack::radical::Radical::angles
private

Number of angles to consider in brute-force search during Radical2D.

Definition at line 123 of file radical.hpp.

Referenced by Angles().

arma::mat mlpack::radical::Radical::candidate
private

Internal matrix, held as member variable to prevent memory reallocations.

Definition at line 135 of file radical.hpp.

size_t mlpack::radical::Radical::m
private

Value of m to use for Vasicek's m-spacing estimator of entropy.

Definition at line 130 of file radical.hpp.

double mlpack::radical::Radical::noiseStdDev
private

Standard deviation of the Gaussian noise added to the replicates of the data points during Radical2D.

Definition at line 117 of file radical.hpp.

Referenced by NoiseStdDev().

arma::mat mlpack::radical::Radical::perturbed
private

Internal matrix, held as member variable to prevent memory reallocations.

Definition at line 133 of file radical.hpp.

size_t mlpack::radical::Radical::replicates
private

Number of Gaussian-perturbed replicates to use (per point) in Radical2D.

Definition at line 120 of file radical.hpp.

Referenced by Replicates().

size_t mlpack::radical::Radical::sweeps
private

Number of sweeps; each sweep calls Radical2D once for each pair of dimensions.

Definition at line 127 of file radical.hpp.

Referenced by Sweeps().


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