mlpack  2.0.1
radical.hpp
Go to the documentation of this file.
1 
16 #ifndef __MLPACK_METHODS_RADICAL_RADICAL_HPP
17 #define __MLPACK_METHODS_RADICAL_RADICAL_HPP
18 
19 #include <mlpack/core.hpp>
20 
21 namespace mlpack {
22 namespace radical {
23 
45 class Radical
46 {
47  public:
61  Radical(const double noiseStdDev = 0.175,
62  const size_t replicates = 30,
63  const size_t angles = 150,
64  const size_t sweeps = 0,
65  const size_t m = 0);
66 
76  void DoRadical(const arma::mat& matX, arma::mat& matY, arma::mat& matW);
77 
84  double Vasicek(arma::vec& x) const;
85 
91  void CopyAndPerturb(arma::mat& xNew, const arma::mat& x) const;
92 
94  double DoRadical2D(const arma::mat& matX);
95 
97  double NoiseStdDev() const { return noiseStdDev; }
99  double& NoiseStdDev() { return noiseStdDev; }
100 
102  size_t Replicates() const { return replicates; }
104  size_t& Replicates() { return replicates; }
105 
107  size_t Angles() const { return angles; }
109  size_t& Angles() { return angles; }
110 
112  size_t Sweeps() const { return sweeps; }
114  size_t& Sweeps() { return sweeps; }
115 
116  private:
119  double noiseStdDev;
120 
122  size_t replicates;
123 
125  size_t angles;
126 
129  size_t sweeps;
130 
132  size_t m;
133 
135  arma::mat perturbed;
137  arma::mat candidate;
138 };
139 
140 void WhitenFeatureMajorMatrix(const arma::mat& matX,
141  arma::mat& matXWhitened,
142  arma::mat& matWhitening);
143 
144 } // namespace radical
145 } // namespace mlpack
146 
147 #endif
double Vasicek(arma::vec &x) const
Vasicek's m-spacing estimator of entropy, with overlap modification from (Learned-Miller and Fisher...
size_t & Replicates()
Modify the number of Gaussian-perturbed replicates used per point.
Definition: radical.hpp:104
double & NoiseStdDev()
Modify the standard deviation of the additive Gaussian noise.
Definition: radical.hpp:99
Linear algebra utility functions, generally performed on matrices or vectors.
size_t replicates
Number of Gaussian-perturbed replicates to use (per point) in Radical2D.
Definition: radical.hpp:122
arma::mat perturbed
Internal matrix, held as member variable to prevent memory reallocations.
Definition: radical.hpp:135
size_t & Sweeps()
Modify the number of sweeps.
Definition: radical.hpp:114
size_t & Angles()
Modify the number of angles considered during brute-force search.
Definition: radical.hpp:109
double noiseStdDev
Standard deviation of the Gaussian noise added to the replicates of the data points during Radical2D...
Definition: radical.hpp:119
double NoiseStdDev() const
Get the standard deviation of the additive Gaussian noise.
Definition: radical.hpp:97
size_t Angles() const
Get the number of angles considered during brute-force search.
Definition: radical.hpp:107
size_t angles
Number of angles to consider in brute-force search during Radical2D.
Definition: radical.hpp:125
void DoRadical(const arma::mat &matX, arma::mat &matY, arma::mat &matW)
Run RADICAL.
size_t Sweeps() const
Get the number of sweeps.
Definition: radical.hpp:112
Include all of the base components required to write MLPACK methods, and the main MLPACK Doxygen docu...
size_t m
Value of m to use for Vasicek's m-spacing estimator of entropy.
Definition: radical.hpp:132
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...
double DoRadical2D(const arma::mat &matX)
Two-dimensional version of RADICAL.
An implementation of RADICAL, an algorithm for independent component analysis (ICA).
Definition: radical.hpp:45
arma::mat candidate
Internal matrix, held as member variable to prevent memory reallocations.
Definition: radical.hpp:137
size_t Replicates() const
Get the number of Gaussian-perturbed replicates used per point.
Definition: radical.hpp:102
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.
void WhitenFeatureMajorMatrix(const arma::mat &matX, arma::mat &matXWhitened, arma::mat &matWhitening)
size_t sweeps
Number of sweeps; each sweep calls Radical2D once for each pair of dimensions.
Definition: radical.hpp:129