I have a sparse matrix whose shape is 570000*3000. I tried nima to do NMF (using the default nmf method, and set max_iter
to 65). However, I found nimfa very slow. Have anyone used a faster library to do NMF?
tskuzzy
I have used libNMF
before. It's written in C and is very fast. There is a paper documenting the algorithm and code.
The paper also lists several alternative packages for NMF (in bunch of different languages (which I have copied here for future reference).
- The Mathworks [3, 33]
- Cemgil [5]
- Cichocki et al. [6]
- Cichocki et al. [7]
- Hansen et al. [14]
- Hoyer [16]
- Kim et al. [19]
- Lin [25]
- Matlab/Python
- http://www.csie.ntu.edu.tw/~cjlin/nmf/index.html
- Schmidt et al. [30]
- Gaujoux [10]
- Liu [26]
- Battenberg et al. 2
- Schmitt et al. [31]
- Dhillon et al. [8]
- Greene et al. [13]
- Pathak et al. [28]
- Wang et al. [34]
Disclaimer: I have not tried any of these other packages (aside from MATLAB's).
来源:https://stackoverflow.com/questions/13814907/is-there-good-library-to-do-nonnegative-matrix-factorization-nmf-fast