RandomizedSVD Class Reference

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...

 

Detailed Description

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.

@article{Halko2011,
author = {Halko, N. and Martinsson, P. G. and Tropp, J. A.},
title = {Finding Structure with Randomness: Probabilistic Algorithms for
Constructing Approximate Matrix Decompositions},
journal = {SIAM Rev.},
volume = {53},
year = {2011},
}
@article{Szlam2014,
author = {Arthur Szlam Yuval Kluger and Mark Tygert},
title = {An implementation of a randomized algorithm for principal
component analysis},
journal = {CoRR},
volume = {abs/1412.3510},
year = {2014},
}

An example of how to use the interface is shown below:

arma::mat data; // Rating data in the form of coordinate list.
const size_t rank = 20; // Rank used for the decomposition.
// Make a RandomizedSVD object.
arma::mat u, s, v;
// Use the Apply() method to get a factorization.
rSVD.Apply(data, u, s, v, rank);

Definition at line 66 of file randomized_svd.hpp.

Constructor & Destructor Documentation

◆ RandomizedSVD() [1/2]

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.

Parameters
dataData matrix.
uFirst unitary matrix.
vSecond unitary matrix.
sDiagonal "Sigma" matrix of singular values.
iteratedPowerSize of the normalized power iterations (Default: rank + 2).
maxIterationsNumber of iterations for the power method (Default: 2).
rankRank of the approximation (Default: number of rows.)
epsThe eps coefficient to avoid division by zero (numerical stability).

◆ RandomizedSVD() [2/2]

RandomizedSVD ( const size_t  iteratedPower = 0,
const size_t  maxIterations = 2,
const double  eps = 1e-7 
)

Create object for the randomized SVD method.

Parameters
iteratedPowerSize of the normalized power iterations (Default: rank + 2).
maxIterationsNumber of iterations for the power method (Default: 2).
epsThe eps coefficient to avoid division by zero (numerical stability).

Member Function Documentation

◆ Apply() [1/3]

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.

Parameters
dataSparse data matrix.
uFirst unitary matrix.
vSecond unitary matrix.
sDiagonal "Sigma" matrix of singular values.
rankRank of the approximation.

Referenced by RandomizedSVDPolicy::Apply().

◆ Apply() [2/3]

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.

Parameters
dataData matrix.
uFirst unitary matrix.
vSecond unitary matrix.
sDiagonal "Sigma" matrix of singular values.
rankRank of the approximation.

◆ Apply() [3/3]

void Apply ( const MatType &  data,
arma::mat &  u,
arma::vec &  s,
arma::mat &  v,
const size_t  rank,
MatType  rowMean 
)
inline

Apply Principal Component Analysis to the provided matrix data set using the randomized SVD.

Parameters
dataData matrix.
uFirst unitary matrix.
vSecond unitary matrix.
sDiagonal "Sigma" matrix of singular values.
rankRank of the approximation.
rowMeanCentered mean value matrix.

Definition at line 151 of file randomized_svd.hpp.

◆ Epsilon() [1/2]

double Epsilon ( ) const
inline

Get the value used for decomposition stability.

Definition at line 245 of file randomized_svd.hpp.

◆ Epsilon() [2/2]

double& Epsilon ( )
inline

Modify the value used for decomposition stability.

Definition at line 247 of file randomized_svd.hpp.

◆ IteratedPower() [1/2]

size_t IteratedPower ( ) const
inline

Get the size of the normalized power iterations.

Definition at line 235 of file randomized_svd.hpp.

◆ IteratedPower() [2/2]

size_t& IteratedPower ( )
inline

Modify the size of the normalized power iterations.

Definition at line 237 of file randomized_svd.hpp.

◆ MaxIterations() [1/2]

size_t MaxIterations ( ) const
inline

Get the number of iterations for the power method.

Definition at line 240 of file randomized_svd.hpp.

◆ MaxIterations() [2/2]

size_t& MaxIterations ( )
inline

Modify the number of iterations for the power method.

Definition at line 242 of file randomized_svd.hpp.


The documentation for this class was generated from the following file:
  • /home/ryan/src/mlpack.org/_src/mlpack-git/src/mlpack/methods/randomized_svd/randomized_svd.hpp