sklearn.utils.extmath.randomized_range_finder

sklearn.utils.extmath.randomized_range_finder(A, *, size, n_iter, power_iteration_normalizer='auto', random_state=None)[source]

Computes an orthonormal matrix whose range approximates the range of A.

Parameters
A2D array

The input data matrix

sizeinteger

Size of the return array

n_iterinteger

Number of power iterations used to stabilize the result

power_iteration_normalizer‘auto’ (default), ‘QR’, ‘LU’, ‘none’

Whether the power iterations are normalized with step-by-step QR factorization (the slowest but most accurate), ‘none’ (the fastest but numerically unstable when n_iter is large, e.g. typically 5 or larger), or ‘LU’ factorization (numerically stable but can lose slightly in accuracy). The ‘auto’ mode applies no normalization if n_iter <= 2 and switches to LU otherwise.

New in version 0.18.

random_stateint, RandomState instance or None, optional (default=None)

The seed of the pseudo random number generator to use when shuffling the data, i.e. getting the random vectors to initialize the algorithm. Pass an int for reproducible results across multiple function calls. See Glossary.

Returns
Q2D array

A (size x size) projection matrix, the range of which approximates well the range of the input matrix A.

Notes

Follows Algorithm 4.3 of Finding structure with randomness: Stochastic algorithms for constructing approximate matrix decompositions Halko, et al., 2009 (arXiv:909) https://arxiv.org/pdf/0909.4061.pdf

An implementation of a randomized algorithm for principal component analysis A. Szlam et al. 2014