Skip to main content
QUICK REVIEW

[Paper Review] NIMFA: A Python Library for Nonnegative Matrix Factorization

Marinka Žitnik, Blaž Zupan|arXiv (Cornell University)|Aug 6, 2018
Image Retrieval and Classification Techniques15 references83 citations
TL;DR

NIMFA is an open-source Python library that provides a unified interface to nonnegative matrix factorization algorithms, with support for dense and sparse matrices and a component-based design for easy experimentation and extension.

ABSTRACT

NIMFA is an open-source Python library that provides a unified interface to nonnegative matrix factorization algorithms. It includes implementations of state-of-the-art factorization methods, initialization approaches, and quality scoring. It supports both dense and sparse matrix representation. NIMFA's component-based implementation and hierarchical design should help the users to employ already implemented techniques or design and code new strategies for matrix factorization tasks.

Motivation & Objective

  • Provide a unified, extensible Python library for nonnegative matrix factorization (NMF).
  • Support a wide range of NMF algorithms, initializations, and quality measures.
  • Enable easy composition of methods and rapid prototyping of new factorization strategies.

Proposed method

  • Implements standard NMF model V ≈ W H with various cost functions (Euclidean, KL, Frobenius, divergence, connectivity).
  • Supports multiple optimization algorithms (e.g., projected gradient, alternating least squares, Bayesian/Gibbs sampling, probabilistic NMF).
  • Includes sparse and dense matrix representations and supports different initialization methods (e.g., NNDSVD, random Vcol).
  • Offers non-standard models (e.g., nonsmooth NMF, multiple model factorization) and binary NMF variants.
  • Provides modular, component-based architecture for composing preprocessing, initialization, optimization, and quality scoring components.

Experimental results

Research questions

  • RQ1What NMF variants and optimization strategies should be available in a unified Python library?
  • RQ2How can initialization and quality measures be integrated to improve convergence and interpretability of NMF results?
  • RQ3Can a component-oriented design facilitate rapid construction and testing of new NMF methods and configurations?
  • RQ4How well does NIMFA support sparse data and large-scale factorization tasks?

Key findings

  • NIMFA provides implementations of a wide variety of NMF algorithms, initializations, and quality measures.
  • The library supports both dense and sparse matrices and includes hierarchical and non-standard factorization models.
  • An example using medulloblastoma gene expression data demonstrates practical outputs such as Rss, Evar, KL divergence, and sparseness values.
  • A sample run shows Rss: 0.1895, Evar: 0.9998, KL divergence: 38.6581, sparseness W: 0.7279, sparseness H: 0.8739.

Better researchstarts right now

From reading papers to final review, dramatically reduce your research time.

No credit card · Free plan available

This review was created by AI and reviewed by human editors.