# mlpack_nmf man page

**mlpack_nmf** — non-negative matrix factorization

## Synopsis

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

## Description

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**.

## Required Options

**--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.

## Options

**--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.

## Additional Information

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.