UMAP (Uniform Manifold Approximation and Projection) › Visualizing UMAP
Michael BrenndoerferJuly 24, 20257 min read
Machine Learning from ScratchAll chapters Part 6 of 9Explainability
UMAP (Uniform Manifold Approximation and Projection) › Visualizing UMAPOne section · Sections in this chapter3 / 8 ↓
Sections in this chapter8
Reading tools Definitions & inline links
Choose your expertise level to adjust how many terms are explained. Beginners see more tooltips, experts see fewer to maintain reading flow. Hover over underlined terms for instant definitions.
Article links
Make inline references clickable
Let's create visualizations that demonstrate how UMAP works and how it compares to other dimensionality reduction methods. We'll start with a simple example using synthetic data to illustrate the key concepts.
In[3]:
Codeimport warnings
import numpy as np
from sklearn.datasets import make_circles, make_moons, make_swiss_roll
from sklearn.decomposition import PCA
from sklearn.manifold import TSNE
from umap import UMAP
# Suppress UMAP warnings about n_jobs with random_state
warnings.filterwarnings("ignore", message="n_jobs value .* overridden")
# Set random seed for reproducibility
np.random.seed(42)
# Create synthetic datasets
swiss_roll, swiss_roll_color = make_swiss_roll(
n_samples=1000, noise=0.1, random_state=42
)
circles, circles_color = make_circles(
n_samples=500, noise=0.1, factor=0.3, random_state=42
)
moons, moons_color = make_moons(n_samples=500, noise=0.1, random_state=42)
# Apply different dimensionality reduction methods
pca_swiss = PCA(n_components=2, random_state=42).fit_transform(swiss_roll)
tsne_swiss = TSNE(n_components=2, random_state=42, perplexity=30).fit_transform(
swiss_roll
)
umap_swiss = UMAP(
n_components=2, random_state=42, n_neighbors=15, min_dist=0.1
).fit_transform(swiss_roll)
pca_circles = PCA(n_components=2, random_state=42).fit_transform(circles)
tsne_circles = TSNE(
n_components=2, random_state=42, perplexity=30
).fit_transform(circles)
umap_circles = UMAP(
n_components=2, random_state=42, n_neighbors=15, min_dist=0.1
).fit_transform(circles)
pca_moons = PCA(n_components=2, random_state=42).fit_transform(moons)
tsne_moons = TSNE(n_components=2, random_state=42, perplexity=30).fit_transform(
moons
)
umap_moons = UMAP(
n_components=2, random_state=42, n_neighbors=15, min_dist=0.1
).fit_transform(moons)Now let's create visualizations comparing the different methods:
Out[4]:
Visualization


Out[5]:
Visualization


Out[6]:
Visualization


Let's also demonstrate how UMAP parameters affect the results:
Out[7]:
Visualization


Out[8]:
Visualization

