Non-negative Matrix Factorization (NMF)
This tool solves NMF by alternative non-negative least squares
using projected gradients. It converges faster than the popular
multiplicative update approach. Details and comparisons are in the following paper:
gradient methods for non-negative matrix factorization.
Neural Computation, 19(2007), 2756-2779.
If you find this tool useful, please cite the above work.
Download MATLAB Scripts
The usage is
[W,H] = nmf(V,Winit,Hinit,tol,timelimit,maxiter);
Output/input parameters are
- W,H: output solution
- Winit,Hinit: initial solution
- tol: stopping tolerance
- timelimit, maxiter: limit of time and iterations
Please read the COPYRIGHT
notice before using it.
This code works under Octave as well.
Frequently asked questions
Implementations in other programming languages
Sources for comparing different methods for solving NMF
We compared our approach with the popular multiplicative
update method in the above paper. All sources for experiments
are in this
zip file. The current version is 1.01.
You can thus easily
regenerate our results. After unzipping
it, a directory including all files will be created.
Then follow instructions in the README file.
Note that some sources here cannot be used
Please send comments and suggestions to Chih-Jen