## Background
Biodiversity research depends on understanding relationships across taxonomic ranks, but fine-grained annotations (genus, species) are expensive and often incomplete. Machine learning offers a way to extract structure from large image collections even when only coarse labels are available.

This challenge simulates that real-world scenario: you receive only family-level supervision, and your task is to discover deeper structure through clustering. The results will help test whether modern embedding methods can recover biological hierarchies when explicit labels are missing.

## Goal

* Learn image embeddings using contrastive learning with family priors, autoencoders, or other deep representation methods.

* Cluster images using algorithms such as k-means, hierarchical clustering, DBSCAN, or graph-based methods.

* Submit cluster assignments that will be compared against hidden genus- and species-level labels using Normalized Mutual Information (NMI).

## Data
Files provided to participants

- **metadata.csv** — metadata for the subset, containing:  
  - `hash_id` — anonymized identifier that links each row to an image in `images.zip`  
  - `family` — the only taxonomic label provided (genus and species are hidden for scoring)  
- **images.zip** — a zipped folder containing ~50,000 biodiversity images. Each file name corresponds to a unique `hash_id` listed in metadata.csv

This data was prepared from BioTrove using random sampling, with the following criteria:

* Each species has a minimum number of 10 images (median=14)
* Each genus a minimum of 2 species (median=3)
* Each family includes minimum of 3 genera (median=5)

The result is not perfectly balanced, but ensures meaningful coverage across taxonomic ranks for clustering.