Non-negative matrix factorizations

A rank-k non-negative matrix factorization of an \(m \times n\) matrix \(A\) with all non-negative entries is a solution to the problem

\[\min_{X,Y} \| A - X Y \|_F, \text{ such that } X,Y \ge 0\]

where \(X\) is \(m \times k\) and \(Y\) is \(k \times n\).

The following routines employ alternating non-negative least squares algorithms.

C++ API

void NMF(const Matrix<Real> &A, Matrix<Real> &X, Matrix<Real> &Y)
void NMF(const AbstractDistMatrix<Real> &A, AbstractDistMatrix<Real> &X, AbstractDistMatrix<Real> &Y)

C API

ElError ElNMF_s(ElConstMatrix_s A, ElMatrix_s X, ElMatrix_s Y)
ElError ElNMF_d(ElConstMatrix_d A, ElMatrix_d X, ElMatrix_d Y)
ElError ElNMFDist_s(ElConstDistMatrix_s A, ElDistMatrix_s X, ElDistMatrix_s Y)
ElError ElNMFDist_d(ElConstDistMatrix_d A, ElDistMatrix_d X, ElDistMatrix_d Y)