---
name: "mlpack_nmf"
section: "1"
platform: "linux"
package: "mlpack-bin"
version: "4.6.0-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/mlpack_nmf"
---

# mlpack\_nmf(1)

non-negative matrix factorization

## NAME

**mlpack\_nmf** - non-negative matrix factorization

## SYNOPSIS

```
 mlpack_nmf -i unknown -r int [-q unknown] [-p unknown] [-m int] [-e double] [-s int] [-u string] [-V bool] [-H unknown] [-W unknown] [-h -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 the '**--rank** (**-r**)' parameter).

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** (**-m**)', and the minimum residue required for algorithm termination is specified with the '**--min\_residue** (**-e**)' parameter.

For example, to run NMF on the input matrix 'V.csv' using the 'multdist' update rules with a rank-10 decomposition and storing the decomposed matrices into 'W.csv' and 'H.csv', the following command could be used:

$ **mlpack\_nmf** **--input\_file** V.csv **--w\_file** W.csv **--h\_file** H.csv **--rank** 10 **--update\_rules** multdist

## REQUIRED INPUT OPTIONS

- **--input\_file (-i) \[*unknown*\]**

  Input dataset to perform NMF on.

- **--rank (-r) \[*int*\]**

  Rank of the factorization.

## OPTIONAL INPUT OPTIONS

- **--help (-h) \[*bool*\]**

  Default help info.

- **--info \[*string*\]**

  Print help on a specific option. Default value ''.

- **--initial\_h\_file (-q) \[*unknown*\]**

  Initial H matrix.

- **--initial\_w\_file (-p) \[*unknown*\]**

  Initial W matrix.

- **--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) \[*bool*\]**

  Display informational messages and the full list of parameters and timers at the end of execution.

- **--version (-V) \[*bool*\]**

  Display the version of mlpack.

## OPTIONAL OUTPUT OPTIONS

- **--h\_file (-H) \[*unknown*\]**

  Matrix to save the calculated H to.

- **--w\_file (-W) \[*unknown*\]**

  Matrix to save the calculated W to.

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