t-SNE and UMAP: why a picture does not prove clusters
In this article (3 sections)
t-SNE and UMAP can reveal local structure in high-dimensional data. They optimize low-dimensional embeddings, not a statistical test that discrete groups exist. Apparent islands can change with hyperparameters, initialization, preprocessing and sampling.
Start from data with no authored clusters
Our source is a uniform 15-by-15 grid: 225 points filling one connected square. There are no generator cluster labels. We run t-SNE three times and impose four-cluster K-means on each two-dimensional embedding.
With perplexity 5 and seed 20261035, the imposed cluster silhouette is 0.4229. With perplexity 40 it becomes 0.4400. Changing only the seed at perplexity 40 gives 0.4374. Trustworthiness at ten neighbours remains about 0.998 in all runs, showing strong local-neighbour preservation while saying nothing about four true groups.
The scikit-learn t-SNE parameter example warns that cluster size, distance and shape can vary with initialization and perplexity and need not carry direct meaning.
from unsupervised_cases import embedding_case
r = embedding_case()
assert r['input_rows'] == 225
assert 'no authored clusters' in r['input_description']
assert len(r['runs']) == 3
assert all(row['embedding_silhouette_k4'] > .4 for row in r['runs'])
print(r)Run the t-SNE experiment in the unsupervised lab. UMAP is not installed or executed in this artifact; the article names it because the same interpretation risk applies to nonlinear embedding plots, not because a UMAP result was measured.
Use embeddings as views, not verdicts
Standardize or otherwise justify features before embedding. Record the distance, neighbour or perplexity settings, seed and software version. Repeat plausible configurations and inspect whether local relationships persist. Colour points only with variables available for the stated analysis, and avoid choosing colours after hunting for a striking story.
Do not measure cluster quality only in the embedding used to create the visual separation. Validate structure in the original or task-relevant space, use stability checks and connect any groups to independent outcomes or actions. A high embedding silhouette can be manufactured from a continuous manifold.
t-SNE is primarily a visualization method and does not naturally provide a stable transform for new points in scikit-learn. UMAP has different objectives and out-of-sample capabilities, yet its global distances and cluster-like islands still require careful interpretation.
Exercise: repeat the grid experiment across five seeds and four perplexities, then rotate and rescale the original axes. Compare local trustworthiness and imposed silhouette. Write a caption that communicates the plot's limits without suggesting discovered customer types.
NeuraPath's Data Science course teaches embeddings as exploratory lenses. Evidence for clusters must come from more than a visually persuasive projection.
Continue learning
This article is part of the Clustering, reduction and recommendations sequence. Use the neighbouring tasks when you need the prerequisite or the next application.
- Review the prerequisite or neighbouring task in PCA for compression without leaking test information.
- Continue with Customer segmentation that leads to different actions.
Pankit Kumar has 10 years in Data Science & AI, building and shipping production systems in regulated pharma and clinical environments. He is a freelance trainer at Boston Institute of Analytics, AnalytixLabs and Scaler, and has taught this material to thousands of working professionals.
This article is part of our Data Science programme — 6 months. From data foundations to machine learning, deep learning and deployment.
Explore Data Science