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... | |
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:
Definition at line 44 of file radical.hpp.
| 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. |
|
inline |
Get the number of angles considered during brute-force search.
Definition at line 111 of file radical.hpp.
|
inline |
Modify the number of angles considered during brute-force search.
Definition at line 113 of file radical.hpp.
| 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.
| void DoRadical | ( | const arma::mat & | matX, |
| arma::mat & | matY, | ||
| arma::mat & | matW, | ||
| util::Timers & | timers = IO::GetTimers() |
||
| ) |
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. |
| timers | Optional Timers struct for storing timing information. |
| double DoRadical2D | ( | const arma::mat & | matX, |
| util::Timers & | timers = IO::GetTimers() |
||
| ) |
Two-dimensional version of RADICAL.
|
inline |
Get the standard deviation of the additive Gaussian noise.
Definition at line 101 of file radical.hpp.
|
inline |
Modify the standard deviation of the additive Gaussian noise.
Definition at line 103 of file radical.hpp.
|
inline |
Get the number of Gaussian-perturbed replicates used per point.
Definition at line 106 of file radical.hpp.
|
inline |
Modify the number of Gaussian-perturbed replicates used per point.
Definition at line 108 of file radical.hpp.
|
inline |
Get the number of sweeps.
Definition at line 116 of file radical.hpp.
|
inline |
Modify the number of sweeps.
Definition at line 118 of file radical.hpp.
References mlpack::radical::WhitenFeatureMajorMatrix().
| double 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. |