## Nonnegative Matrix Factorization

*Nonnegative matrix factorization* (*NMF*) is a dimension-reduction technique based on a low-rank approximation of the feature space. Besides providing a reduction in the number of features, NMF guarantees that the features are nonnegative, producing additive models that respect, for example, the nonnegativity of physical quantities.

Given a nonnegative *m*-by-*n* matrix *X* and a positive integer *k* < min(*m*,*n*), NMF finds nonnegative *m*-by-*k* and *k*-by-*n* matrices *W* and *H*, respectively, that minimize the norm of the difference *X* – *W**H*. *W* and *H* are thus approximate nonnegative factors of *X*.

The *k* columns of *W* represent transformations of the variables in *X*; the *k* rows of *H* represent the coefficients of the linear combinations of the original *n* variables in *X* that produce the transformed variables in *W*. Since *k* is generally smaller than the rank of *X*, the product *W**H* provides a compressed approximation of the data in *X*. A range of possible values for *k* is often suggested by the modeling context.

The function `nnmf`

carries out nonnegative matrix factorization. `nnmf`

uses one of two iterative algorithms that begin with random initial values for *W* and *H*. Because the norm of the residual *X* – *W**H* may have local minima, repeated calls to `nnmf`

may yield different factorizations. Sometimes the algorithm converges to a solution of lower rank than *k*, which may indicate that the result is not optimal.