Nonnegative Matrix Factorization (NMF) and PCA

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

https://github.com/guangtunbenzhu/NonnegMFPy

You can find the reference here: https://arxiv.org/abs/1612.06037

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:

https://github.com/guangtunbenzhu/NonnegMFPy

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