Esplora DBSCAN per il clustering basato sulla densità e il rilevamento delle anomalie. Scopri come identifica forme arbitrarie e rumore nei set di dati insieme a Ultralytics .
DBSCAN (Density-Based Spatial Clustering of Applications with Noise) è un potente algoritmo di apprendimento non supervisionato utilizzato per identificare gruppi distinti all'interno dei dati in base alla densità. A differenza dei metodi di clustering tradizionali che presuppongono cluster sferici o richiedono un numero predeterminato di gruppi, DBSCAN individua regioni ad alta densità separate da aree a bassa densità. Questa capacità gli consente di individuare cluster di forme e dimensioni arbitrarie, rendendolo eccezionalmente efficace per l'analisi di complessi set di dati reali in cui la struttura sottostante è sconosciuta. Un vantaggio chiave di questo algoritmo è il suo rilevamento delle anomalie integrato, in quanto classifica automaticamente i punti nelle regioni a bassa densità come rumore piuttosto che inserirli forzatamente in un cluster.
L'algoritmo opera definendo un vicinato attorno a ciascun punto dati e contando quanti altri punti ricadono all'interno di tale vicinanza. Due iperparametri primari controllano questo processo, richiedendo un'attenta messa a punto degli iperparametri per adattarsi alle caratteristiche specifiche dei dati:
Sulla base di questi parametri, DBSCAN classifica ogni punto del set di dati in uno dei tre tipi seguenti:
minPts vicini all'interno del
eps raggio. Questi punti formano l'interno di un cluster.
eps raggio di un punto centrale ma hanno meno
di minPts i vicini stessi. Questi formano i bordi di un cluster.
Sebbene entrambi siano fondamentali per l' apprendimento automatico (ML), DBSCAN offre vantaggi distinti rispetto al clustering K-Means in scenari specifici . K-Means si basa sui centroidi e sulla distanza euclidea, spesso presupponendo che i cluster siano convessi o sferici. Ciò può portare a prestazioni scadenti su dati allungati o a forma di mezzaluna. Al contrario, l'approccio basato sulla densità di DBSCAN gli consente di seguire i contorni naturali della distribuzione dei dati.
Un'altra differenza significativa risiede nell'inizializzazione. K-Means richiede all'utente di specificare in anticipo il numero di cluster (k), il che può risultare difficile senza conoscenze preliminari. DBSCAN deduce il numero di cluster in modo naturale dalla densità dei dati. Inoltre, K-Means è sensibile ai valori anomali perché forza ogni punto in un gruppo, potenzialmente distorcendo i centri dei cluster. La capacità di DBSCAN di etichettare i punti come rumore impedisce che le anomalie dei dati contaminino i cluster validi, garantendo risultati più puliti per le attività a valle come la modellazione predittiva.
DBSCAN è ampiamente utilizzato nei settori che richiedono analisi spaziali e una gestione efficace del rumore.
Nei flussi di lavoro di visione artificiale, gli sviluppatori utilizzano spesso il
Piattaforma Ultralytics per addestrare i rilevatori di oggetti e quindi post-elaborare
i risultati. L'esempio seguente mostra come utilizzare il sklearn libreria per raggruppare i centroidi
degli oggetti rilevati. Ciò aiuta a raggruppare i rilevamenti spazialmente correlati, potenzialmente unendo più
riquadri di delimitazione per lo stesso oggetto o per identificare
gruppi di oggetti.
import numpy as np
from sklearn.cluster import DBSCAN
# Simulated centroids of objects detected by YOLO26
# [x, y] coordinates representing object locations
centroids = np.array(
[
[100, 100],
[102, 104],
[101, 102], # Cluster 1 (Dense group)
[200, 200],
[205, 202], # Cluster 2 (Another group)
[500, 500], # Noise (Outlier)
]
)
# Initialize DBSCAN with a radius (eps) of 10 and min_samples of 2
# This groups points close to each other
clustering = DBSCAN(eps=10, min_samples=2).fit(centroids)
# Labels: 0, 1 are cluster IDs; -1 represents noise
print(f"Cluster Labels: {clustering.labels_}")
# Output: [ 0 0 0 1 1 -1]
Sebbene DBSCAN sia un algoritmo classico, si abbina efficacemente al moderno deep learning. Ad esempio, le caratteristiche ad alta dimensionalità estratte da una rete neurale convoluzionale (CNN) possono essere ridotte utilizzando tecniche di riduzione della dimensionalità come PCA o t-SNE prima di applicare DBSCAN. Questo approccio ibrido consente di raggruppare dati immagine complessi in base alla somiglianza semantica piuttosto che alla sola posizione dei pixel. Ciò è particolarmente utile in scenari di apprendimento non supervisionato in cui i dati di addestramento etichettati sono scarsi, aiutando i ricercatori a organizzare in modo efficiente vasti archivi di immagini non etichettate.