
Il DBSCAN ("Density-Based Spatial Clustering of Applications with Noise") è un metodo di clustering proposto nel 1996 da Martin Ester, Hans-Peter Kriegel, Jörg Sander and Xiaowei Xu. È basato sulla densità perché connette regioni di punti con densità sufficientemente alta. DBSCAN è l'algoritmo più comunemente usato ed è anche il più citato nella letteratura scientifica.
DBSCAN usa una definizione di cluster basata sulla nozione di "density-reachability". Un punto formula_1 è direttamente raggiungibile da un punto formula_2 se la loro distanza è minore di un assegnato formula_3 (cioè, è parte del suo formula_3-vicinato) e se formula_2 è circondato da un sufficiente numero di punti, allora formula_2 e formula_1 possono essere considerati parti di un cluster. Il punto formula_1 è "density-reachable" da formula_2 se c'è una sequenza formula_10 di punti con formula_11 e formula_12 dove ogni formula_13 è density-reachable direttamente da formula_14. Si osservi che la relazione density-reachable non è simmetrica dato che formula_1 potrebbe situarsi su una periferia del cluster, avendo un numero insufficiente di vicini per considerarlo un elemento genuino del cluster. Di conseguenza la nozione "density-connected" diventa: due punti formula_2 e formula_1 sono density-connected se c'è un punto formula_18 tale che sia formula_18 e formula_2 sia formula_18 e formula_1 sono density-reachable.
Un cluster, che è un sotto-insieme dei punti del database, soddisfa due proprietà:
DBSCAN necessita di due parametri: formula_3 (eps) e del numero minimo di punti richiesti per formare un cluster (minPts). Si comincia con un punto casuale che non è stato ancora visitato. Viene calcolato il suo formula_3-vicinato e se contiene un numero sufficiente di punti viene creato un nuovo cluster. Se ciò non avviene il punto viene etichettato come rumore e successivamente potrebbe essere ritrovato in un formula_3-vicinato sufficientemente grande riconducibile ad un punto differente entrando a far parte di un cluster.
Se un punto è associato ad un cluster anche i punti del suo formula_3-vicinato sono parte del cluster. Conseguentemente tutti i punti trovati all'interno del suo formula_3-vicinato sono aggiunti al cluster, così come i loro formula_3-vicinati. Questo processo continua fino a quando il cluster viene completato. Il processo continua fino a quando non sono stati visitati tutti i punti.
 DBSCAN(D, eps, MinPts)
DBSCAN visita ogni punto del database, anche più volte nel caso di punti candidati a cluster differenti. Tuttavia per considerazioni pratiche la complessità temporale è per lo più governata dal numero di invocazioni a getVicini, in riferimento allo pseudo codice di cui sopra. DBSCAN esegue esattamente una invocazione per ogni punto e se viene utilizzata una struttura indicizzata che esegue un'interrogazione del vicinato in formula_29, si ottiene un tempo globale di esecuzione pari a formula_30. Senza l'uso di strutture indicizzate, il tempo di esecuzione è pari a formula_31. Spesso la matrice delle distanze di dimensione formula_32 viene creata per evitare appunto il ricalcolo delle distanze riducendo il tempo di elaborazione a spese della memoria utilizzata pari a formula_31.
DBSCAN presenta i seguenti vantaggi:
Il rilevamento del vicinato più vicino avviene nella funzione getVicini(P,epsilon). Per ogni punto P vengono determinati tutti gli altri punti che sono all'interno dell'intervallo epsilon, basandosi sulla funzione della distanza usata nell'algoritmo. L'analisi richiede che sia calcolata una matrice delle distanze per l'intero data set. La generazione della matrice delle distanze ha una complessità di formula_34dato che è necessaria solo una matrice triangolare superiore. All'interno della matrice delle distanze il vicinato più vicino può essere calcolato selezionando la tupla che ha come valori il minimo delle funzioni su riga e colonna. La ricerca ha spinto il rilevamento del vicinato, nei database tradizionali, per migliorare la velocità. Questi ultimi risolvono il problema utilizzando indici specificamente progettati per questo tipo di applicazioni.
Ogni processo di data mining ha il problema dei parametri. Ogni parametro influenza l'algoritmo in modo specifico. Per il DBSCAN i parametri epsilon e MinPnts sono necessari. I parametri devono essere specificati dall'utente dato che ogni data set richiede parametri differenti. Un valore iniziale per formula_3 può essere determinato come un k-distance graph. Come per le regole del pollice, formula_36 può essere derivato dal numero di dimensioni nel data set formula_37 come formula_38. Tuttavia valori maggiori sono usualmente migliori per data set con rumore.
Anche se questa stima dei parametri restituisce un insieme sufficiente di parametri, la classificazione risultante può rivelarsi diversa da ciò che si aspetta, pertanto la ricerca ha realizzato un'incrementale ottimizzazione dei parametri su particolari valori.
Per ogni oggetto vengono trovati i vicini che ricadono in un raggio dato come parametro in ingresso; se il numero di questi vicini è superiore ad un fattore di soglia, anch'esso fornito in input all'algoritmo, allora questi punti fanno parte del medesimo cluster di quello dell'oggetto che si sta osservando e in questo caso il punto è denominato core point.
Al termine dell'algoritmo ci potrebbero essere alcuni punti non appartenenti a cluster catalogati come "rumore".
Se c'è una catena di oggetti da attraversare (con i consueti vincoli) per raggiungere un punto "q" da uno "p", allora "q" sarà detto semplicemente rintracciabile.
Ultimo caso è quello in cui due oggetti "p" e "q" sono detti connessi: per essere definiti in tal modo, deve esistere un terzo punto "o", per cui "p" e "q" sono entrambi rintracciabili.


In statistica e apprendimento automatico, il clustering gerarchico è un approccio di clustering che mira a costruire una gerarchia di cluster. Le strategie per il clustering gerarchico sono tipicamente di due tipi:
Il risultato di un clustering gerarchico è rappresentato in un dendrogramma.
Per decidere quali cluster devono essere combinati (approccio agglomerativo) o quale cluster deve essere suddiviso (approccio divisivo) è necessario definire una misura di dissimilarità tra cluster. Nella maggior parte dei metodi di clustering gerarchico si fa uso di metriche specifiche che quantificano la distanza tra coppie di elementi e di un criterio di collegamento che specifica la dissimilarità di due insiemi di elementi (cluster) come funzione della distanza a coppie tra elementi nei due insiemi.
La scelta di una metrica appropriata influenza la forma dei cluster, poiché alcuni elementi possono essere più "vicini" utilizzando una distanza e più "lontani" utilizzandone un'altra. Per esempio, in uno spazio a 2 dimensioni, la distanza tra il punto (1, 1) e l'origine (0, 0) è 2, formula_1 or 1 se si utilizzando rispettivamente le norme 1, 2 o infinito.
Metriche comuni sono le seguenti:
Il criterio di collegamento ("linkage criterion") specifica la distanza tra insiemi di elementi come funzione di distanze tra gli elementi negli insiemi.
Dati due insiemi di elementi "A" e "B" alcuni criteri comunemente utilizzati sono:
dove "d" è la metrica prescelta per determinare la similarità tra coppie di elementi.
