Clustering

In statistica, il clustering o analisi dei gruppi (dal termine inglese cluster analysis, introdotto da Robert Tryon nel 1939) è un insieme di tecniche di analisi multivariata dei dati volte alla selezione e raggruppamento di elementi omogenei in un insieme di dati.

Le tecniche di clustering si basano su misure di similarità tra gli elementi. In molti approcci tale similarità è concepita in termini di una distanza in uno spazio multidimensionale. La qualità dei raggruppamenti ottenuti dagli algoritmi di clustering dipende molto dalla scelta dello spazio di rappresentazione degli individui da raggruppare, ad esempio spazi metrici dotati di una distanza). Gli algoritmi di clustering possono raggruppare gli elementi sulla base della loro distanza reciproca, quindi l'appartenenza a un cluster dipende da una nozione di similarità dell'elemento rispetto al cluster.

Tecniche

Esistono varie classificazioni delle tecniche di clustering comunemente utilizzate. Una prima categorizzazione dipende dalla possibilità che uno stesso elemento possa o meno essere assegnato a più cluster:

  • clustering esclusivo: ogni elemento può essere assegnato ad uno e ad un solo gruppo. Quindi i cluster risultanti non possono avere elementi in comune. Questo approccio è detto anche hard clustering.
  • clustering non-esclusivo, in cui un elemento può appartenere a più cluster con gradi di appartenenza diversi. Questo approccio è noto anche con il nome di soft clustering o fuzzy clustering, dal termine usato per indicare la logica fuzzy.

Un'altra suddivisione delle tecniche di clustering tiene conto del tipo di algoritmo utilizzato per dividere lo spazio:

  • clustering partizionale (detto anche non gerarchico, o k-clustering), in cui per definire l'appartenenza ad un gruppo viene utilizzata una distanza da un punto rappresentativo del cluster (centroide, medioide, ecc.), avendo prefissato il numero di gruppi della partizione risultato. Si tratta di derivazioni del più noto algoritmo di clustering, quello detto delle k-means, introdotto da MacQueen nel 1967.
  • Clustering gerarchico, in cui viene costruita una gerarchia di partizioni caratterizzate da un numero (de)crescente di gruppi, visualizzabile mediante una rappresentazione ad albero (dendrogramma), in cui sono rappresentati i passi di accorpamento/divisione dei gruppi.

Queste due suddivisioni sono del tutto trasversali, e molti algoritmi nati come "esclusivi" sono stati in seguito adattati nel caso "non-esclusivo" e viceversa.

Clustering partizionale

Gli algoritmi di clustering di questa famiglia creano una partizione delle osservazioni minimizzando una funzione di costo come la seguente:

dove è il numero dei cluster, è il -esimo cluster e è la funzione di costo associata al singolo cluster. L'algoritmo più famoso appartenente a questa famiglia è il k-means, proposto da MacQueen nel 1967. Un altro algoritmo abbastanza conosciuto appartenente a questa classe è il Partitioning Around Medoids (PAM).

Clustering spettrale

Nel clustering spettrale si raggruppano i dati analizzando le loro connessioni (in una struttura di grafo). Gli algoritmi relativi si articolano in diversi passaggi: si parte da una matrice di adiacenza pesata di un grafo, dove ogni elemento misura quanto sono vicini e connessi due punti (es. tramite un kernel RBF); da questa si calcola la matrice laplaciana: , dove è la matrice dei gradi (la somma delle connessioni di ciascun nodo). Spesso se ne usa una versione normalizzata.; a si applica la decomposizione spettrale, proiettando i dati in uno spazio a dimensione inferiore in cui i cluster diventano linearmente separabili; infine si applica un algoritmo standard, come il K-Means, sui dati trasformati per assegnare le etichette finali.

Grazie alla riduzione non lineare della dimensionalità si riesce a separare i dati in cluster complessi, ad esempio concentrici o non lineari.

Clustering gerarchico

Le tecniche di clustering gerarchico non producono un partizionamento piatto dei punti, ma una rappresentazione gerarchica ad albero.

Questi algoritmi sono a loro volta divisi in due classi:

  • Agglomerativo - Questi algoritmi assumono che inizialmente ogni cluster (foglia) contenga un singolo punto; ad ogni passo, poi, vengono fusi i cluster più "vicini" fino ad ottenere un singolo grande cluster. Questi algoritmi necessitano di misure per valutare la similarità tra cluster, per scegliere la coppia di cluster da fondere ad ogni passo.
  • Divisivo - Questi algoritmi, invece, partono considerando lo spazio organizzato in un singolo grande cluster contenente tutti i punti, e via via lo dividono in due. Ad ogni passo viene selezionato un cluster in base ad una misura, ed esso viene suddiviso in due cluster più piccoli. Normalmente viene fissato un numero minimo di punti sotto il quale il cluster non viene ulteriormente suddiviso (nel caso estremo questo valore è 1). Questi tipi di algoritmi necessitano di definire una funzione per scegliere il cluster da suddividere.

Una rappresentazione grafica del processo di clustering è fornita dal dendrogramma.

Misure utilizzate nel clustering gerarchico

In entrambi i tipi di clustering gerarchico sono necessarie funzioni per selezionare la coppia di cluster da fondere ("agglomerativo"), oppure il cluster da dividere ("divisivo").

Nel primo caso, sono necessarie funzioni che misurino la similarità (o, indistintamente, la distanza) tra due cluster, in modo da fondere quelli più simili. Le funzioni utilizzate nel caso agglomerativo sono:

  • Single-link proximity
Calcola la distanza tra i due cluster come la distanza minima tra elementi appartenenti a cluster diversi:
  • Average-link proximity
Questa funzione calcola la distanza tra i due cluster come la media delle distanze tra i singoli elementi:
  • Complete-link proximity
Questa funzione calcola la distanza tra i due cluster come la distanza massima tra elementi appartenenti ai due cluster:
  • Distanza tra centroidi
La distanza tra i due cluster coincide con la distanza calcolata tra i centroidi (o medioidi):
  • Indice di Dunn
L'indice di Dunn mira a identificare cluster densi e ben separati. È definito come il rapporto tra la minima distanza inter-cluster e la massima distanza intra-cluster. Per ogni partizione del cluster, l'indice di Dunn può essere calcolato con la seguente formula:[1]
dove rappresenta la distanza tra i cluster e e misura la distanza intra-cluster del cluster . La distanza inter-cluster tra due cluster può essere una qualsiasi misura di distanza, come la distanza tra i centroidi dei cluster. Allo stesso modo, la distanza intra-cluster può essere misurata in vari modi, come la distanza massima tra qualsiasi coppia di elementi nel cluster . Poiché il criterio interno cerca cluster con un'alta somiglianza intra-cluster e una bassa somiglianza inter-cluster, gli algoritmi che producono cluster con un alto indice di Dunn sono più desiderabili[2].

Nei casi precedenti, indica una qualsiasi funzione distanza su uno spazio metrico.

Invece nel clustering divisivo è necessario individuare il cluster da suddividere in due sottogruppi. Per questa ragione sono necessarie funzioni che misurino la compattezza del cluster, la densità o la sparsità dei punti assegnati ad un cluster. Le funzioni normalmente utilizzate nel caso divisivo sono:

  • Average internal similarity
Questa funzione valuta la similarità media tra i documenti interni ad un cluster: più sono tra loro dissimili (valori bassi di similarità), più il cluster è da suddividere in sottogruppi:
  • Maximum internal distance
Questa funzione valuta la distanza massima tra due punti interni ad un cluster. Tale valore è noto anche come 'diametro del cluster': più tale valore è basso, più il cluster è compatto:

Clustering basato sulla densità

Nel Clustering basato sulla densità, il raggruppamento avviene analizzando l'intorno di ogni punto dello spazio. In particolare, viene considerata la densità di punti in un intorno di raggio fissato.

Un esempio è il metodo DBSCAN.

Algoritmi

Algoritmi di clustering molto popolari sono i seguenti:

QT clustering

Il QT (Quality Threshold) Clustering[3] è un metodo alternativo di partizionare i dati, inventato per il clustering dei geni. Richiede più potenza di calcolo rispetto al K-Means, ma non richiede di specificare il numero di cluster a priori, e restituisce sempre lo stesso risultato quando si ripete diverse volte.

L'algoritmo è:

  • L'utente sceglie un diametro massimo per i cluster.
  • Costruzione di un cluster candidato per ogni punto, includendo il punto più vicino, il prossimo più vicino, e così via, fino a che il diametro del cluster non supera la soglia.
  • Salvataggio del cluster candidato con la maggior parte dei punti come primo vero cluster, e rimozione di tutti i punti nel cluster da ulteriori considerazioni.
  • Ricorsione col ridotto insieme di cluster.

La distanza tra un punto ed un gruppo di punti è calcolata usando il concatenamento completo, cioè come la massima distanza dal punto di ciascun membro del gruppo (si veda il "Clustering gerarchico agglomerativo" sulla distanza tra i cluster nella sezione clustering gerarchico).

Note

  1. ↑ J. Dunn, Well separated clusters and optimal fuzzy partitions, in Journal of Cybernetics, vol. 4, 1974, pp. 95-104, DOI:10.1080/01969727408546059.
  2. ↑ (EN) Dunn index in Python, su Python.Engineering, 13 dicembre 2022.
  3. ↑ Heyer et al., 1999

Bibliografia

  • (EN) Trevor Hastie, Robert Tibshirani e Jerome Friedman, 14.3 Cluster Analysis, in The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Second Edition, Springer, 2009, ISBN 978-0-387-84858-7.
  • Kevin P. Murphy, 21. Clustering, in Probabilistic machine learning: an introduction, collana Adaptive computation and machine learning, Third printing, The MIT Press, 2025, ISBN 978-0-262-04682-4.
  • Ethem Alpaydın, 7. Clustering, in Introduction to machine learning, collana Adaptive computation and machine learning, 4ª ed., The MIT Press, 2020, ISBN 978-0-262-04379-3.

Voci correlate

Altri progetti

Collegamenti esterni

Controllo di autoritàThesaurus BNCF 43938 · LCCN (EN) sh85027250 · BNF (FR) cb12124521b (data) · J9U (EN, HE) 987007283912705171