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