hmatrix-nipals: NIPALS method for Principal Components Analysis on large data-sets.

[ lgpl, library, math ] [ Propose Tags ]

NIPALS -- Nonlinear Iterative Partial Least Squares http://en.wikipedia.org/wiki/NIPALS, is a method for iteratively finding the left singular vectors of a large matrix. In other words it discovers the largest principal component http://en.wikipedia.org/wiki/Principal_component of a set of mean-centred samples, along with the score (the magnitude of the principal component) for each sample, and the residual of each sample that is orthogonal to the principal component. By repeating the procedure on the residuals, the second principal component is found, and so on.

The advantage of NIPALS over more traditional methods, like SVD, is that it is memory efficient, and can complete early if only a small number of principal components are needed. It is also simple to implement correctly. Additionally, because it doesn't pre-condition the sample matrix in any way, it can be implemented with only two sequential passes per iteration through the sample data, which is much more efficient than random accesses if the data-set is too large to fit in memory.

NIPALS is not generally recommended because sample matrices where the largest eigenvalues are close in magnitude will cause NIPALS to converge very slowly. For sparse matrices, use Lanczos methods http://en.wikipedia.org/wiki/Lanczos_algorithm, and for dense matrices, random-projection methods http://amath.colorado.edu/faculty/martinss/Pubs/2009_HMT_random_review.pdf can be used. However, these methods are harder to implement in a single pass. If you know of a good, single-pass, and memory-efficient implementation of either of these methods, please contact the author.

Modules

[Index]

Flags

Automatic Flags
NameDescriptionDefault
test

Build unit-tests

Disabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1, 0.2
Dependencies base (>=3 && <5), hmatrix (>=0.11), QuickCheck (>=2.4), test-framework (>=0.3), test-framework-quickcheck2 (>=0.2.9) [details]
License LGPL-2.1-only
Copyright Copyright (c) 2011 Alan Falloon
Author Alan Falloon
Maintainer alan.falloon@gmail.com
Category Math
Home page http://github.com/alanfalloon/hmatrix-nipals
Bug tracker https://github.com/alanfalloon/hmatrix-nipals/issues
Source repo head: git clone git://github.com/alanfalloon/hmatrix-nipals.git -b master
Uploaded by AlanFalloon at 2011-02-22T06:02:36Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Executables test
Downloads 1814 total (6 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]