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
transformmethod, 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