I'm looking for a fast NMF implementation for sparse matrices in R.
The R NMF
package consists of a number of algorithms, none of which impress in terms of computational time.
NNLM::nnmf()
seems state of the art in R at the moment, specifically the method = "scd"
and loss = "mse"
, implemented as alternating least squares solved by sequential coordinate descent. However, this method is quite slow on very large, very sparse matrices.
The rsparse::WRMF
function is extremely fast, but that's due to the fact that only positive values in A
are used for row-wise computation of W
and H
.
Is there any reasonable implementation for solving NMF on a sparse matrix?
Is there an equivalent to scikit-learn
in R? See this question
There are various worker functions, such as fnnls
, tsnnls
in R, none of which surpass nnls::nnls
(written in Fortran). I have been unable to code any of these functions into a faster NMF framework.