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 you have read our privacy policy.

Browse other questions tagged or ask your own question.