lmcinnes/umap

Uniform Manifold Approximation and Projection

What it solves

UMAP (Uniform Manifold Approximation and Projection) is a non-linear dimension reduction technique used to project high-dimensional data into a lower-dimensional space. It is primarily used for data visualization (similar to t-SNE) and as a general-purpose preprocessing step for other machine learning tasks, such as clustering.

How it works

The algorithm is based on three assumptions: that data is uniformly distributed on a Riemannian manifold, the Riemannian metric is locally constant, and the manifold is locally connected. It models the manifold with a fuzzy topological structure and finds a low-dimensional projection that maintains the closest possible equivalent structure.

Who it’s for

Data scientists and researchers who need to visualize complex, high-dimensional datasets or reduce dimensions for downstream ML tasks. It is designed as a drop-in replacement for scikit-learn's t-SNE.

Highlights

  • High Performance: Fast and scales well with large datasets and high-dimensional data, including sparse datasets with over a million dimensions.
  • Global and Local Structure: Often preserves more global structure than t-SNE while maintaining local neighbor relations.
  • Versatile Distance Metrics: Supports a wide variety of distance functions, including non-metric ones like cosine and correlation distance.
  • Extensible: Supports adding new points to an existing embedding via the transform method, allowing it to be used in scikit-learn pipelines.
  • Supervised Learning: Supports supervised and semi-supervised dimension reduction using label information.
  • Advanced Features: Includes densMAP for preserving local density information, Parametric UMAP for neural network-based transformations, and support for non-Euclidean spaces (e.g., hyperbolic embeddings).
  • Integration: Inherits from scikit-learn classes for a consistent API.

Related

  • Project
  • Project
  • Project
  • Project
  • Project