HDBSCAN

2.5.6

HDBSCAN

Ενημέρωση 2025-11-05 Ανάγνωση 3 λεπτά
Σύνοψη
  • Ο HDBSCAN γενικεύει τον DBSCAN εξερευνώντας μια ιεραρχία κατωφλίων πυκνότητας, επιτρέποντας συστάδες με διαφορετικές πυκνότητες και αυτόματα χαρακτηρίζοντας δείγματα χαμηλής πυκνότητας ως θόρυβο.
  • Δύο ρυθμίσεις ελέγχουν τη συμπεριφορά: min_cluster_size (η μικρότερη ουσιαστική συστάδα) και min_samples (πόσο αυστηρός είναι ο ορισμός πυρήνα). Δείγματα με ετικέτα -1 αντιμετωπίζονται ως θόρυβος.
  • Ο αλγόριθμος κατασκευάζει ένα δέντρο ελάχιστης έκτασης χρησιμοποιώντας αποστάσεις αμοιβαίας προσεγγισιμότητας, το συμπυκνώνει και κατατάσσει τις συστάδες κατά εμμονή για να αποφασίσει ποιες επιβιώνουν.
  • Ο HDBSCAN ενσωματώνεται άψογα με το UMAP ή άλλους αλγορίθμους εκμάθησης πολλαπλοτήτων: εκτελέστε UMAP για μείωση διαστασιμότητας και στη συνέχεια ομαδοποιήστε τις ενσωματώσεις με HDBSCAN για να ανιχνεύσετε φυσικές ομάδες.

Εισαγωγή #

Αυτή η μέθοδος πρέπει να ερμηνεύεται μέσα από τις υποθέσεις της, τις συνθήκες δεδομένων και τον τρόπο με τον οποίο οι επιλογές παραμέτρων επηρεάζουν τη γενίκευση.

Αναλυτική Επεξήγηση #

1. Επισκόπηση #

Ο κλασικός DBSCAN βασίζεται σε μία μοναδική ακτίνα eps· η επιλογή τιμής κατάλληλης για κάθε περιοχή είναι δύσκολη όταν οι πυκνότητες διαφέρουν. Ο HDBSCAN αφαιρεί το eps και αντ’ αυτού σαρώνει όλες τις τιμές ακτίνας, κατασκευάζοντας μια ιεραρχία συστάδων. Από αυτή την ιεραρχία εξάγει τις πιο ανθεκτικές συστάδες — εκείνες που παραμένουν ακέραιες σε ένα ευρύ φάσμα επιπέδων πυκνότητας.

Βασικές παράμετροι:

  • min_cluster_size: ο ελάχιστος αριθμός σημείων που κάνει μια συστάδα αξιόλογη.
  • min_samples: πόσοι γείτονες χρειάζονται ώστε ένα σημείο να είναι πυρήνας (προεπιλογή min_cluster_size). Μεγαλύτερες τιμές κάνουν τον αλγόριθμο πιο συντηρητικό.
  • cluster_selection_method: "eom" (excess of mass) προτιμά σταθερές συστάδες, ενώ "leaf" κρατά τα πιο λεπτομερή φύλλα.

2. Απόσταση πυρήνα και αμοιβαία προσεγγισιμότητα #

Για κάθε σημείο (x) υπολογίζουμε την απόσταση πυρήνα

$$ d_{\mathrm{core}}(x) = \text{distance to the } \texttt{min\_samples}\text{-th nearest neighbour}. $$

Η απόσταση αμοιβαίας προσεγγισιμότητας μεταξύ (x) και (y) είναι

$$ d_{\mathrm{mreach}}(x, y) = \max\left\{ d_{\mathrm{core}}(x),\; d_{\mathrm{core}}(y),\; \lVert x - y \rVert \right\}. $$

Ο HDBSCAN κατασκευάζει ένα ελάχιστο δέντρο επικάλυψης πάνω σε αυτές τις αποστάσεις, συμπυκνώνει την ιεραρχία και αναθέτει σε κάθε συστάδα ένα σκορ εμμονής (ολοκληρωμένη σταθερότητα). Συστάδες με υψηλή εμμονή αναφέρονται· δείγματα που δεν ανήκουν ποτέ σε μια ανθεκτική συνιστώσα χαρακτηρίζονται ως θόρυβος ((-1)).

3. Παράδειγμα σε Python #

Χρησιμοποιήστε τη βιβλιοθήκη hdbscan (εγκατάσταση μέσω pip install hdbscan) για ομαδοποίηση ενός συνόλου δεδομένων δύο μισοφέγγαρων:

import numpy as np
import matplotlib.pyplot as plt
import hdbscan
from sklearn.datasets import make_moons

X, _ = make_moons(n_samples=400, noise=0.08, random_state=42)

clusterer = hdbscan.HDBSCAN(
    min_cluster_size=20,
    min_samples=10,
    cluster_selection_method="eom",
)
labels = clusterer.fit_predict(X)

plt.figure(figsize=(6, 5))
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap="tab10", s=20)
plt.title("HDBSCAN clustering result")
plt.xlabel("feature 1")
plt.ylabel("feature 2")
plt.grid(alpha=0.2)
plt.show()

print("Cluster persistence:", clusterer.cluster_persistence_)
print("Noise points:", np.sum(labels == -1))

Η cluster_persistence_ δείχνει ποιες συστάδες είναι οι πιο σταθερές· αν η εμμονή είναι χαμηλή, σκεφτείτε να αυξήσετε το min_cluster_size ή να μειώσετε τον θόρυβο στα δεδομένα.

4. Πρακτικές συμβουλές #

  • Κανονικοποιήστε τα χαρακτηριστικά πριν από την ομαδοποίηση — οι μέθοδοι βάσει απόστασης είναι ευαίσθητες στην κλίμακα.
  • Αν θέλετε περισσότερες συστάδες, μειώστε το min_cluster_size ή αλλάξτε σε cluster_selection_method="leaf".
  • Για να αφαιρέσετε μικρά θορυβώδη τμήματα, κρατήστε το min_cluster_size υψηλό και το min_samples μέτριο (π.χ. 5–10).
  • Συνδυάστε με UMAP: προσαρμόστε το UMAP για προβολή δεδομένων υψηλής διαστασιμότητας σε 2–10 διαστάσεις και στη συνέχεια εκτελέστε HDBSCAN στην ενσωμάτωση για εύρωστες μη εποπτευόμενες γραμμές παραγωγής.

5. Αναφορές #

  • Campello, R. J. G. B., Moulavi, D., Zimek, A., & Sander, J. (2013). Density-Based Clustering Based on Hierarchical Density Estimates. PAKDD.
  • McInnes, L., Healy, J., & Astels, S. (2017). hdbscan: Hierarchical Density Based Clustering. Journal of Open Source Software.
  • scikit-learn developers. (2024). Clustering. https://scikit-learn.org/stable/modules/clustering.html