DBSCAN (Density-Based Spatial Clustering of Applications with Noise)
Esplora DBSCAN per il clustering basato sulla densità e il rilevamento delle anomalie. Impara come identifica forme arbitrarie e rumore nei dataset insieme a Ultralytics YOLO26.
DBSCAN (Raggruppamento spaziale basato sulla densità delle applicazioni con rumore) è 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 predefinito di gruppi, DBSCAN individua regioni ad alta densità separate da aree a bassa densità. Questa capacità gli consente di scoprire cluster di forme e dimensioni arbitrarie, rendendolo particolarmente efficace per analizzare dataset del mondo reale in cui la struttura sottostante è sconosciuta. Un vantaggio fondamentale di questo algoritmo è il rilevamento integrato delle anomalie, poiché classifica automaticamente i punti nelle regioni a bassa densità come rumore invece di forzarli all'interno di un cluster.
Concetti e parametri fondamentali#
L'algoritmo opera definendo un vicinato attorno a ciascun punto dati e contando quanti altri punti rientrano in tale area. Due iperparametri principali controllano questo processo e richiedono un'attenta ottimizzazione degli iperparametri per adattarsi alle caratteristiche specifiche dei dati:
- Epsilon (eps): questo parametro specifica il raggio massimo attorno a un punto entro cui cercare i vicini. Definisce la distanza di "raggiungibilità".
- Punti minimi (minPts): imposta il numero minimo di punti dati richiesti all'interno del raggio Epsilon per formare una regione densa o un "nucleo".
In base a questi parametri, DBSCAN classifica ogni punto del dataset in una delle tre categorie seguenti:
-
Punti nucleo: punti che hanno almeno
minPtsvicini entro il raggioeps. Questi punti formano la parte interna di un cluster. -
Punti di bordo: punti che si trovano entro il raggio
epsdi un punto nucleo, ma che hanno personalmente meno diminPtsvicini. Questi punti formano i bordi di un cluster. -
Punti di rumore: punti che non sono né punti nucleo né punti di bordo. Vengono di fatto trattati come valori anomali, il che è utile per attività come il rilevamento dei valori anomali.
DBSCAN rispetto al clustering K-Means#
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, presupponendo spesso che i cluster siano convessi o sferici. Questo può comportare prestazioni scarse 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 riguarda l'inizializzazione. K-Means richiede che l'utente specifichi in anticipo il numero di cluster (k), il che può essere difficile in assenza di conoscenze preliminari. DBSCAN deduce naturalmente il numero di cluster dalla densità dei dati. Inoltre, K-Means è sensibile ai valori anomali perché forza ogni punto ad appartenere a un gruppo, distorcendo potenzialmente i centri dei cluster. La capacità di DBSCAN di etichettare i punti come rumore impedisce alle anomalie nei dati di contaminare i cluster validi, garantendo risultati più puliti per attività successive come la modellazione predittiva.
Applicazioni nel mondo reale#
DBSCAN è ampiamente utilizzato nei settori che richiedono analisi spaziali e una gestione robusta del rumore.
- Analisi geospaziale: nella pianificazione urbana e nella logistica, gli analisti utilizzano DBSCAN per raggruppare le coordinate GPS delle flotte di consegna o dei servizi di ride sharing. Identificando le zone di consegna ad alta densità, le aziende possono ottimizzare la pianificazione dei percorsi e l'ubicazione dei magazzini. Ad esempio, l'IA nella logistica spesso prevede il clustering delle fermate di consegna per migliorare l'efficienza.
- Rilevamento delle anomalie basato sulla visione: nel settore manifatturiero, i sistemi di ispezione visiva basati su modelli come YOLO26 possono rilevare difetti superficiali. DBSCAN può raggruppare le coordinate di questi difetti su una mappa del prodotto. I rilevamenti isolati possono essere ignorati come rumore del sensore, mentre i cluster densi indicano un difetto sistematico di produzione, attivando un avviso per l'ispezione della qualità.
Esempio di codice: clustering dei centroidi dei rilevamenti#
Nei flussi di lavoro di computer vision, gli sviluppatori utilizzano spesso la Ultralytics Platform per addestrare rilevatori di oggetti e poi post-elaborare i risultati. L'esempio seguente mostra come utilizzare la libreria sklearn per raggruppare i centroidi degli oggetti rilevati. Questo aiuta a raggruppare i rilevamenti correlati spazialmente, unendo potenzialmente più bounding box dello stesso oggetto o identificando 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]Integrazione con il deep learning#
Sebbene DBSCAN sia un algoritmo classico, si integra efficacemente con il deep learning moderno. 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 di immagini complessi in base alla similarità semantica anziché solo alla posizione dei pixel. È particolarmente utile negli 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 senza etichette.









