Nonnegative Matrix Factorization (NMF) and PCA


I have published my Python implementation on GitHub and PyPI (You can install it via pip) 

You can find the reference here:

Dimensionality reduction and matrix factorization techniques have many applications in physics and astronomy. In astronomy, a particularly useful technique is nonnegative matrix factorization, since the flux of an astronomical source does not go negative.

I have developed a code of NMF that can take into account of heteroscedastic uncertainties and missing data (while standard PCA can't). The algorithm was originally developed by Sam Roweis & Mike Blanton (2007), who vastly improved the simple and elegant update rules discovered by Lee & Seung (2001). I have vectorized the algorithm, which can be easily implemented in any modern vector language. 

I have implemented it in Python:

You can install it through pip:

>> pip install NonnegMFPy

I also have a version in IDL, as part of my JHU-SDSS absorber pipeline (as described in the Catalog Paper). You can find it in the github repository as well.


★ This work has been funded by #HST-HF2-51351

Johns Hopkins University

© 2016 Guangtun Ben Zhu

NASA Hubble Fellowship Program