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 nbym matrix A
into
nonnegative factors W
(nbyk
)
and H
(k
bym).
The factorization is not exact; W*H
is a lowerrank
approximation to A
. The factors W
and H
are
chosen to minimize the rootmeansquared residual D
between A
and W*H
:
D = norm(AW*H,'fro')/sqrt(N*M)
The factorization uses an iterative method starting with random
initial values for W
and H
.
Because the rootmeansquared 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 nby 
'h0'  A 
'options'  An options structure as created by the

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