Non-Negative Matrix Factorization
This page contains an optimized C implementation of the
Non-Negative Matrix Factorization (NMF) algorithm, described in [Lee
& Seung 2001]. We implement the update rules that minimize a
weighted SSD error metric. A detailed description of weighted NMF
can be found in [Peers
et al. 2006].
The performance of NMF is greatly improved by using BLAS routines for basic matrix operations. In paricular, I recommend Intel's Math Kernel Library.
Feel free to use, abuse and modify this code in any way, but do so at your own risk. Also, I'd like to hear about any interesting projects that make use of this implementation.