mlpack
|
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. | |
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:
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.
noiseStdDev | Standard deviation of the Gaussian noise added to the replicates of the data points during Radical2D |
replicates | Number of Gaussian-perturbed replicates to use (per point) in Radical2D |
angles | Number of angles to consider in brute-force search during Radical2D |
sweeps | Number of sweeps. Each sweep calls Radical2D once for each pair of dimensions |
m | The variable m from Vasicek's m-spacing estimator of entropy. |
void Radical::DoRadical | ( | const arma::mat & | matX, |
arma::mat & | matY, | ||
arma::mat & | matW | ||
) |
Run RADICAL.
matX | Input data into the algorithm - a matrix where each column is a point and each row is a dimension. |
matY | Estimated independent components - a matrix where each column is a point and each row is an estimated independent component. |
matW | Estimated unmixing matrix, where matY = matW * matX. |
double Radical::Vasicek | ( | arma::vec & | x | ) | const |
Vasicek's m-spacing estimator of entropy, with overlap modification from (Learned-Miller and Fisher, 2003).
x | Empirical sample (one-dimensional) over which to estimate entropy. |