Randomized Singular Value Decomposition (wordspace)

Share:

Description

An implementation of the randomized truncated SVD algorithm of Halko, Martinsson & Tropp (2009).

Usage

1
rsvd(M, n, q = 2, oversampling = 2, transpose = FALSE, verbose = FALSE)

Arguments

M

a dense or sparse numeric matrix

n

an integer specifying the desired number of singular components. This argument must be specified and must satisfy n <= min(nrow(M), ncol(M)).

q

number of power iterations (Halko et al. recommend q=1 or q=2)

oversampling

oversampling factor. The rSVD algorithm computes an approximate SVD factorization of rank n * oversampling, which is then truncated to the first n components.

transpose

if TRUE, apply the rSVD algorithm to the transpose t(M), which may be more efficient depending on the dimensions of M

verbose

whether to display progress messages during execution

Details

This implementation of randomized truncated SVD is based on the randomized PCA algorithm (Halko et al. 2009, p. 9). The discussion in Sec. 4 and 5 of the paper shows that the same algorithm applies to the case where the columns of A are not centered (Algorithm 4.3 + Algorithm 5.1).

Value

A list with components

u

a matrix whose columns contain the first n left singular vectors of M

v

a matrix whose columns contain the first n right singular vectors of M

d

a vector containing the first n singular values of M

Author(s)

Stefan Evert (http://purl.org/stefan.evert)

References

Halko, N., Martinsson, P. G., and Tropp, J. A. (2009). Finding structure with randomness: Stochastic algorithms for constructing approximate matrix decompositions. Technical Report 2009-05, ACM, California Institute of Technology.

See Also

svd, dsm.projection, sparsesvd

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.