Randomized SVD is a matrix factorization that is based on randomized matrix approximation techniques, developed in in "Finding structure with randomness: Probabilistic algorithms for constructing approximate matrix decompositions". More...
Public Member Functions | |
RandomizedSVD (const arma::mat &data, arma::mat &u, arma::vec &s, arma::mat &v, const size_t iteratedPower=0, const size_t maxIterations=2, const size_t rank=0, const double eps=1e-7) | |
Create object for the randomized SVD method. More... | |
RandomizedSVD (const size_t iteratedPower=0, const size_t maxIterations=2, const double eps=1e-7) | |
Create object for the randomized SVD method. More... | |
void | Apply (const arma::sp_mat &data, arma::mat &u, arma::vec &s, arma::mat &v, const size_t rank) |
Center the data to apply Principal Component Analysis on given sparse matrix dataset using randomized SVD. More... | |
void | Apply (const arma::mat &data, arma::mat &u, arma::vec &s, arma::mat &v, const size_t rank) |
Center the data to apply Principal Component Analysis on given matrix dataset using randomized SVD. More... | |
template < typename MatType > | |
void | Apply (const MatType &data, arma::mat &u, arma::vec &s, arma::mat &v, const size_t rank, MatType rowMean) |
Apply Principal Component Analysis to the provided matrix data set using the randomized SVD. More... | |
double | Epsilon () const |
Get the value used for decomposition stability. More... | |
double & | Epsilon () |
Modify the value used for decomposition stability. More... | |
size_t | IteratedPower () const |
Get the size of the normalized power iterations. More... | |
size_t & | IteratedPower () |
Modify the size of the normalized power iterations. More... | |
size_t | MaxIterations () const |
Get the number of iterations for the power method. More... | |
size_t & | MaxIterations () |
Modify the number of iterations for the power method. More... | |
Randomized SVD is a matrix factorization that is based on randomized matrix approximation techniques, developed in in "Finding structure with randomness: Probabilistic algorithms for constructing approximate matrix decompositions".
For more information, see the following.
An example of how to use the interface is shown below:
Definition at line 66 of file randomized_svd.hpp.
RandomizedSVD | ( | const arma::mat & | data, |
arma::mat & | u, | ||
arma::vec & | s, | ||
arma::mat & | v, | ||
const size_t | iteratedPower = 0 , |
||
const size_t | maxIterations = 2 , |
||
const size_t | rank = 0 , |
||
const double | eps = 1e-7 |
||
) |
Create object for the randomized SVD method.
data | Data matrix. |
u | First unitary matrix. |
v | Second unitary matrix. |
s | Diagonal "Sigma" matrix of singular values. |
iteratedPower | Size of the normalized power iterations (Default: rank + 2). |
maxIterations | Number of iterations for the power method (Default: 2). |
rank | Rank of the approximation (Default: number of rows.) |
eps | The eps coefficient to avoid division by zero (numerical stability). |
RandomizedSVD | ( | const size_t | iteratedPower = 0 , |
const size_t | maxIterations = 2 , |
||
const double | eps = 1e-7 |
||
) |
Create object for the randomized SVD method.
iteratedPower | Size of the normalized power iterations (Default: rank + 2). |
maxIterations | Number of iterations for the power method (Default: 2). |
eps | The eps coefficient to avoid division by zero (numerical stability). |
void Apply | ( | const arma::sp_mat & | data, |
arma::mat & | u, | ||
arma::vec & | s, | ||
arma::mat & | v, | ||
const size_t | rank | ||
) |
Center the data to apply Principal Component Analysis on given sparse matrix dataset using randomized SVD.
data | Sparse data matrix. |
u | First unitary matrix. |
v | Second unitary matrix. |
s | Diagonal "Sigma" matrix of singular values. |
rank | Rank of the approximation. |
Referenced by RandomizedSVDPolicy::Apply().
void Apply | ( | const arma::mat & | data, |
arma::mat & | u, | ||
arma::vec & | s, | ||
arma::mat & | v, | ||
const size_t | rank | ||
) |
Center the data to apply Principal Component Analysis on given matrix dataset using randomized SVD.
data | Data matrix. |
u | First unitary matrix. |
v | Second unitary matrix. |
s | Diagonal "Sigma" matrix of singular values. |
rank | Rank of the approximation. |
|
inline |
Apply Principal Component Analysis to the provided matrix data set using the randomized SVD.
data | Data matrix. |
u | First unitary matrix. |
v | Second unitary matrix. |
s | Diagonal "Sigma" matrix of singular values. |
rank | Rank of the approximation. |
rowMean | Centered mean value matrix. |
Definition at line 151 of file randomized_svd.hpp.
|
inline |
Get the value used for decomposition stability.
Definition at line 245 of file randomized_svd.hpp.
|
inline |
Modify the value used for decomposition stability.
Definition at line 247 of file randomized_svd.hpp.
|
inline |
Get the size of the normalized power iterations.
Definition at line 235 of file randomized_svd.hpp.
|
inline |
Modify the size of the normalized power iterations.
Definition at line 237 of file randomized_svd.hpp.
|
inline |
Get the number of iterations for the power method.
Definition at line 240 of file randomized_svd.hpp.
|
inline |
Modify the number of iterations for the power method.
Definition at line 242 of file randomized_svd.hpp.