Oxford Flowers 102 - Morphological Similarity Map
A TMAP of the Oxford Flowers 102 dataset (8,189 images, 102 species) built from ResNet-50 embeddings (cosine metric). 83.4% of tree edges connect flowers from the same morphological group (rose-like, trumpet-shaped, lily-like, etc.), and 78.8% connect the same species. Subtree purity averages 0.744 by group and 0.649 by species. The most visually similar species pairs are hibiscus <-> watercress (36 shared edges) and lotus <-> water lily (26). Group coherence varies widely - 'vine' is the least coherent group (70.1% boundary edges) while 'iris-like' and 'orchid-like' are the most tangled with their neighbors (43-44%). Morphological paths trace routes like sunflower to rose in 78 hops through barbeton daisy, oxeye daisy, and clematis.
This demo is hosted externally
The dataset is too large to embed inline. Opens in a new tab.
Open Interactive DemoHow it was made
from tmap import TMAP
from tmap.graph.analysis import boundary_edges, subtree_purity, path_properties
model = TMAP(metric="cosine", n_neighbors=15, seed=42).fit(resnet50_embeddings)
# Morphological-group vs species boundaries
group_be = boundary_edges(model.tree_, morphological_groups)
species_be = boundary_edges(model.tree_, species_labels)
# Per-group coherence - "vine" is the least coherent group (70.1% boundary edges)
purity = subtree_purity(model.tree_, morphological_groups, min_size=10)
# Morphological path: sunflower -> rose through daisies and dahlias
path = model.path(sunflower_idx, rose_idx)