Nonnegative Matrix Factorization -- add links
I’ve been playing with the NMF as a tool to enable meaningful clustering and found several useful implementations.
procoders.net: python implementing Sra et al
Suvrit Sra has C++ code for sparse matrices of their own
John Burkardt keeps a collection of Fortran codes, including a DLAP (Double version of SLAP).
Rasmus Munk Larsen has a very nice SVD package PROPACK which I used for Netflix with filling missing values by the means/medians, and it uses OpenMP. I tried it with Intel Fortran, ifort, and MKL parallel BLAS library. I also tried GNU Fortran and GotoBLAS.
SLEPc is a generalized modern SVD package, implementing a Lanczoz algorithm similar to Larsen’s. It looks like the SVD to use, in conjunction with PETSc and TAO -- the latter ones are used in CRF with VEB by Lin Liao.
Numerous versions of NMF in MATLAB exist, most interesting from the convex optimization toolbox for MATLAB from Stanford.
Ngoc-Diep Ho’s thesis from Louvain from 2008 is a most thorough coverage of the NMF up to date.
procoders.net: python implementing Sra et al
Suvrit Sra has C++ code for sparse matrices of their own
John Burkardt keeps a collection of Fortran codes, including a DLAP (Double version of SLAP).
Rasmus Munk Larsen has a very nice SVD package PROPACK which I used for Netflix with filling missing values by the means/medians, and it uses OpenMP. I tried it with Intel Fortran, ifort, and MKL parallel BLAS library. I also tried GNU Fortran and GotoBLAS.
SLEPc is a generalized modern SVD package, implementing a Lanczoz algorithm similar to Larsen’s. It looks like the SVD to use, in conjunction with PETSc and TAO -- the latter ones are used in CRF with VEB by Lin Liao.
Numerous versions of NMF in MATLAB exist, most interesting from the convex optimization toolbox for MATLAB from Stanford.
Ngoc-Diep Ho’s thesis from Louvain from 2008 is a most thorough coverage of the NMF up to date.
Comments