evo-mars-clustering-eval
SkillMediaCore clustering and evaluation utilities for Mars cloud annotations. Custom weighted Euclidean DBSCAN clustering, centroid computation, greedy bipartite matching, and per-image F1/delta scoring.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the evo-mars-clustering-eval skill
What this skill tells your AI
The instructions your AI receives, as published by openlair/openskill in tasks-evolved/mars-clouds-clustering/environment/skills/evo-mars-clustering-eval/SKILL.md and read by ahel’s review.
Core clustering and evaluation utilities for DBSCAN-based Mars cloud annotation clustering.
Key Functions
weighted_euclidean_pairwise(u, v, w)- Custom distance: sqrt((w*dx)^2 + ((2-w)*dy)^2)compute_precomputed_distance_matrix(X, w)- Build precomputed distance matrix for DBSCANrun_dbscan_and_get_centroids(X, eps, min_samples, dist_matrix)- Run DBSCAN, return centroidsgreedy_match(centroids, ground_truth, threshold=100.0)- Greedy bipartite matchingscore_image(citsci_points, expert_points, eps, min_samples, w)- Full per-image scoring
Usage
import sys
sys.path.insert(0, '/app/environment/skills/evo-mars-clustering-eval/scripts')
from utils import score_image, greedy_match, run_dbscan_and_get_centroids
f1, delta = score_image(citsci_xy, expert_xy, eps=10, min_samples=5, w=1.0)
Domain Rules
- DBSCAN uses precomputed distance matrix with custom weighted Euclidean metric
- Greedy matching uses standard Euclidean distance (not custom), max threshold 100px
- F1 = 2TP / (2TP + FP + FN), handles edge cases (both empty = 1.0)
- Delta = mean standard Euclidean distance of matched pairs, NaN if no matches
- Noise points (label -1) are excluded from centroid computation
Signals
- GitHub stars
- 89
- Forks
- 4
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
evo-mars-clustering-eval- Source
- github.com/openlair/openskill