NMF Algorithm - Sparse NMF via Alternating NNLS


NMF algorithms proposed by Kim et al. (2007) that enforces sparsity constraint on the basis matrix (algorithm ‘SNMF/L’) or the mixture coefficient matrix (algorithm ‘SNMF/R’).


nmfAlgorithm.SNMF_R(..., maxIter = 20000L, eta = -1, beta = 0.01, bi_conv = c(0, 
  10), eps_conv = 1e-04)

nmfAlgorithm.SNMF_L(..., maxIter = 20000L, eta = -1, beta = 0.01, bi_conv = c(0, 
      10), eps_conv = 1e-04)


maximum number of iterations.
parameter to suppress/bound the L2-norm of W and in H in ‘SNMF/R’ and ‘SNMF/L’ respectively. If eta < 0, then it is set to the maximum value in the target matrix is used.
regularisation parameter for sparsity control, which balances the trade-off between the accuracy of the approximation and the sparseness of H and W in ‘SNMF/R’ and ‘SNMF/L’ respectively. Larger beta generates higher sparseness on H (resp. W). Too large beta is not recommended.
parameter of the biclustering convergence test. It must be a size 2 numeric vector bi_conv=c(wminchange, iconv), with:
  1. wminchange:the minimal allowance of change in row-clusters.
  2. iconv: decide convergence if row-clusters (within the allowance of wminchange) and column-clusters have not changed for iconv convergence checks.
Convergence checks are performed every 5 iterations.
threshold for the KKT convergence test.
extra argument not used.


The algorithm ‘SNMF/R’ solves the following NMF optimization problem on a given target matrix A of dimension n x p:

 min_{W,H} 1/2 (|| A - WH ||_F^2 + eta
  ||W||_F^2 + beta (sum_j ||H[,j]||_1^2))

s.t. W>=0, H>=0

The algorithm ‘SNMF/L’ solves a similar problem on the transposed target matrix A, where H and W swap roles, i.e. with sparsity constraints applied to W.


Kim H and Park H (2007). "Sparse non-negative matrix factorizations via alternating non-negativity-constrained least squares for microarray data analysis." _Bioinformatics (Oxford, England)_, *23*(12), pp. 1495-502. ISSN 1460-2059, , .