KlugerLab / pcafast

Matlab implementation of a randomized algorithm for principal component analysis

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

The official codes for Li et al. 2016 can be downloaded at: http://calgo.acm.org/971.zip.  This git repository may be updated or changed independent the official software package.

--
src/pcafast.m:  Given A, calculates nearly optimal rank-k approximation USV', with and without centering, for general sparse and dense matrices.  This is where most users will start.
src/diffsnorm.m: Calculates the 2-norm accuracy of an approximation to a matrix.  Generally used to calculate accuracy of matrices generated by pcafast.m
src/eigen.m: Eigendecomposition of a self-adjoint (and possibly non-negative definite) matrix
src/diffsnormschur.m: Calculates 2-norm accuracy of Schur decomp. of a matrix.  Generally used to calculate accuracy of matrices generated by eigen.m
src/adaptivepca.m: Adaptive randomized range finder (Algorithm randQB_pb of Martinsson and Voronin (2015).  It calculates an approximation USV' that is within a given tolerance of A
src/examples.m: Provides some example usages


tests/alltests.m: Runs all tests listed below 
tests/pcafasttest.m: tests pcafast.m for dense matrices
tests/pcafasttestsparse.m: tests pcafast.m for sparse matrices
tests/eigenstest.m: tests eigen on dense self-adjoint matrices
tests/eigenstestsparse.m: tests eigen on sparse self-adjoint matrices
tests/eigenntest.m: tests eigen on dense non-negative definite matrices
tests/eigenntestsparse.m: tests eigen on sparse non-negative definite matrices
tests/diffsnormtest.m: tests diffsnorm on dense matrices
tests/diffsnormtestsparse.m: tests diffsnorm on sparse matrices
tests/diffsnormschurtest.m: tests diffsnormschur on dense matrices
tests/diffsnormschurtestsparse.m: tests diffsnormschur on sparse matrices
tests/diffsnormctest.m: tests diffsnorm with centering on dense matrices
tests/diffsnormctestsparse.m: tests diffsnorm with centering on sparse matrices
tests/adaptivepcatest.m: tests adaptivepca.m for dense matrices
tests/adaptivepcatestsparse.m: tests adaptivepca.m for sparse matrices

If you use this software, please cite:
Huamin Li, George C. Linderman, Arthur Szlam, Kelly P. Stanton, Yuval Kluger, and Mark Tygert. 2017.
Algorithm 971: An implementation of a randomized algorithm for principal component analysis. ACM Trans.
Math. Softw. 43, 3, Article 28 (January 2017), 14 pages.

About

Matlab implementation of a randomized algorithm for principal component analysis


Languages

Language:MATLAB 100.0%