Skip to content

Matlab implementation of a randomized algorithm for principal component analysis

Notifications You must be signed in to change notification settings

KlugerLab/pcafast

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 

Repository files navigation

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages