Nonnegative matrix factorization
[W,H] = nnmf(A,k)
[W,H] = nnmf(A,k,param1
,val1
,param2
,val2
,...)
[W,H,D] = nnmf(...)
[W,H] = nnmf(A,k)
factors the nonnegative n-by-m matrix A
into
nonnegative factors W
(n-by-k
)
and H
(k
-by-m).
The factorization is not exact; W*H
is a lower-rank
approximation to A
. The factors W
and H
are
chosen to minimize the root-mean-squared residual D
between A
and W*H
:
D = norm(A-W*H,'fro')/sqrt(N*M)
The factorization uses an iterative method starting with random
initial values for W
and H
.
Because the root-mean-squared residual D
may have
local minima, repeated factorizations may yield different W
and H
.
Sometimes the algorithm converges to a solution of lower rank than k,
which may indicate that the result is not optimal.
W
and H
are normalized
so that the rows of H
have unit length. The columns
of W
are ordered by decreasing length.
[W,H] = nnmf(A,k,
specifies
optional parameter name/value pairs from the following table.param1
,val1
,param2
,val2
,...)
Parameter | Value |
---|---|
'algorithm' | Either In general, the |
'w0' | An n-by- |
'h0' | A |
'options' | An options structure as created by the
To compute in parallel, you need Parallel Computing Toolbox™. |
'replicates' | The number of times to repeat the factorization, using
new random starting values for |
[W,H,D] = nnmf(...)
also returns D
,
the root mean square residual.
[1] Berry, M. W., et al. “Algorithms and Applications for Approximate Nonnegative Matrix Factorization.” Computational Statistics and Data Analysis. Vol. 52, No. 1, 2007, pp. 155–173.