nmf(1) non-negative matrix factorization


nmf [-h] [-v] -H string -i string -r int -W string [-m int] [-e double] [-s int] [-u string] -V


This program performs non-negative matrix factorization on the given dataset, storing the resulting decomposed matrices in the specified files. For an input dataset V, NMF decomposes V into two matrices W and H such that

V = W * H

where all elements in W and H are non-negative. If V is of size (n x m), then W will be of size (n x r) and H will be of size (r x m), where r is the rank of the factorization (specified by --rank).

Optionally, the desired update rules for each NMF iteration can be chosen from the following list:

  • multdist: multiplicative distance-based update rules (Lee and Seung 1999)
  • multdiv: multiplicative divergence-based update rules (Lee and Seung 1999)
  • als: alternating least squares update rules (Paatero and Tapper 1994)

The maximum number of iterations is specified with --max_iterations, and the minimum residue required for algorithm termination is specified with --min_residue.


--h_file (-H) [string]
File to save the calculated H matrix to.
--input_file (-i) [string]
Input dataset to perform NMF on.
--rank (-r) [int]
Rank of the factorization.
--w_file (-W) [string]
File to save the calculated W matrix to.


--help (-h)
Default help info.
--info [string]
Get help on a specific module or option. Default value ''.
--max_iterations (-m) [int]
Number of iterations before NMF terminates (0 runs until convergence. Default value 10000.
--min_residue (-e) [double]
The minimum root mean square residue allowed for each iteration, below which the program terminates. Default value 1e-05.
--seed (-s) [int]
Random seed. If 0, 'std::time(NULL)' is used. Default value 0. --update_rules (-u) [string] Update rules for each iteration; ( multdist | multdiv | als ). Default value 'multdist'.
--verbose (-v)
Display informational messages and the full list of parameters and timers at the end of execution.
--version (-V)
Display the version of mlpack.


For further information, including relevant papers, citations, and theory, consult the documentation found at http://www.mlpack.org or included with your distribution of MLPACK.