[mlpack-git] [mlpack/mlpack] Refactor PCA class: able to use different decomposition techniques (exact, randomized, QUIC SVD). (#716)
Marcus Edel
notifications at github.com
Mon Jul 4 08:25:14 EDT 2016
As Nilay pointed out in his blog post: http://mlpack.org/gsocblog/we-need-to-go-deeper-googlenet-week-5-highlights.html
the discretize function that uses the PCA class, wasn't what we expected runtime wise, so we decided to use the another PCA approach: Randomized SVD as proposed in:
```
* @article{Halko2011,
* author = {Halko, N. and Martinsson, P. G. and Tropp, J. A.},
* title = {Finding Structure with Randomness: Probabilistic Algorithms for
Constructing Approximate Matrix Decompositions},
* journal = {SIAM Rev.},
* volume = {53},
* year = {2011},
* }
*
* @article{Szlam2014,
* author = {Arthur Szlam Yuval Kluger and Mark Tygert},
* title = {An implementation of a randomized algorithm for principal
component analysis},
* journal = {CoRR},
* volume = {abs/1412.3510},
* year = {2014},
* }
```
I refactored the PCA class, that is now able to use different decomposition methods including the already existing QUIC-SVD technique.
You can view, comment on, or merge this pull request online at:
https://github.com/mlpack/mlpack/pull/716
-- Commit Summary --
* Fix explicitly specialized template issue.
* Merge remote-tracking branch 'upstream/master'
* Properly resetting auxBound. Start using a Reset() method, to avoid futures errors like this.
* edge_boxes: feature extraction
* backported ind2sub and sub2ind
* backported ind2sub and sub2ind
* Revert "edge_boxes: feature extraction"
* backported sub2ind & ind2sub
* Minor style fixes for ind2sub() test.
* Add new contributors.
* Try debugging symbols for AppVeyor build to see if it is faster.
* Use appveyor cache (nuget and armadillo).
* added test for ind2sub and sub2ind
* fix doc tutorial
* fix typo
* Merge remote-tracking branch 'upstream/master'
* Add QUIC-SVD singular values test.
* Remove implementation from header file to avoid duplicate symbol error.
* Add randomized SVD method.
* Add randomized SVd test suite.
* Add exact, randomized and QUIC SVD decomposition policies; meant to be used in conjunction with the PCA class.
* Refactor PCA class; able to use different decomposition methods.
* Merge remote-tracking branch 'upstream/master'
* Merge with master.
-- File Changes --
M src/mlpack/core/tree/cosine_tree/cosine_tree.cpp (4)
M src/mlpack/methods/CMakeLists.txt (1)
M src/mlpack/methods/pca/CMakeLists.txt (4)
A src/mlpack/methods/pca/decomposition_policies/CMakeLists.txt (16)
A src/mlpack/methods/pca/decomposition_policies/exact_svd_method.hpp (72)
A src/mlpack/methods/pca/decomposition_policies/quic_svd_method.hpp (92)
A src/mlpack/methods/pca/decomposition_policies/randomized_svd_method.hpp (97)
M src/mlpack/methods/pca/pca.hpp (42)
R src/mlpack/methods/pca/pca_impl.hpp (89)
M src/mlpack/methods/pca/pca_main.cpp (69)
M src/mlpack/methods/quic_svd/CMakeLists.txt (2)
R src/mlpack/methods/quic_svd/quic_svd.cpp (9)
M src/mlpack/methods/quic_svd/quic_svd.hpp (7)
A src/mlpack/methods/randomized_svd/CMakeLists.txt (15)
A src/mlpack/methods/randomized_svd/randomized_svd.cpp (128)
A src/mlpack/methods/randomized_svd/randomized_svd.hpp (133)
M src/mlpack/tests/CMakeLists.txt (3)
M src/mlpack/tests/pca_test.cpp (118)
M src/mlpack/tests/quic_svd_test.cpp (34)
A src/mlpack/tests/randomized_svd_test.cpp (62)
-- Patch Links --
https://github.com/mlpack/mlpack/pull/716.patch
https://github.com/mlpack/mlpack/pull/716.diff
---
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/mlpack/mlpack/pull/716
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.cc.gatech.edu/pipermail/mlpack-git/attachments/20160704/c570a0eb/attachment.html>
More information about the mlpack-git
mailing list