What is the scikit-learn Coordinate Descent (CD) algorithm for Non-negative Matrix Factorization (NMF)?

The sklearn implementation of NMF has two different solvers, Coordinate Descent and Multiplicative Update. These are introduced in the user guide (here) but not described in detail, except to link to the source papers. For CD, the documentation links to Cichoki & Phan+09 (link is broken in current docs, but you can find it here), but there are 5 different algorithms described therein. The sklearn source code (cython) is given here but I'm struggling to understand the procedure, and link with any of those in Cichoki & Phan.

Could someone describe (and preferably provide a source for) the CD algorithm used in sklearn?



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Browse other questions tagged or ask your own question.