Introduzione alla Cluster Analysis

La cluster analysis, anche nota come clustering, fa parte di una categoria più ampia all’interno del machine learning chiamata “Apprendimento non supervisionato”. Per comprendere appieno il contesto, è opportuno fare un passo indietro e delineare la differenza con l’apprendimento supervisionato.

L’apprendimento supervisionato si basa sull’utilizzo di dati etichettati, nei quali l’algoritmo “apprende” in modo iterativo dai dati di addestramento, formulando previsioni e aggiustando le risposte di conseguenza. Sebbene i modelli di apprendimento supervisionato tendano ad ottenere previsioni più accurate, richiedono un intervento umano significativo per l’etichettatura accurata dei dati. Ad esempio, un modello di apprendimento supervisionato può fare previsioni su quanto tempo una persona impiega per andare al lavoro basandosi sull’orario, il meteo, le condizioni di traffico eccetera. Prima di dare una risposta accurata, però, il modello deve essere addestrato per sapere che la pioggia incide sul tempo trascorso in macchina.
Al contrario, i modelli di apprendimento non supervisionato operano in autonomia per rivelare la struttura intrinseca dei dati non etichettati: i dati utilizzati sono costituiti solo da caratteristiche. In questo caso l’intervento umano è comunque richiesto, anche se in misura minore, per validare le variabili output. A titolo esemplificativo, un modello di apprendimento non supervisionato potrebbe individuare che gli acquirenti online tendono ad acquistare gruppi specifici di prodotti in periodi simili. Tuttavia, sarà compito di un analista confermare la raccomandazione di mostrare, ad esempio, articoli per bambini quando un utente appartenente a quel gruppo sta acquistando pannolini.

In altre parole, l’apprendimento non supervisionato impiega algoritmi di machine learning per esaminare e raggruppare dati non etichettati e il clustering ne costituisce una pratica fondamentale, permettendo di identificare relazioni e strutture tra i dati.

> Scopri il corso di Clustering e Analisi Dati 

Che cos’è il clustering

Dato un dataset complesso, il clustering raggruppa i dati simili. L’obiettivo della cluster analysis è dividere un dataset in gruppi (detti cluster), in modo tale che i dati all’interno di ciascun cluster siano più simili tra loro rispetto a quelli presenti in altri cluster. Il processo è spesso utilizzato nella data analisi esplorativa e può aiutare ad identificare pattern o relazioni non immediatamente evidenti tra i dati analizzati. Esistono molti algoritmi usati per la cluster analysis e la scelta di un algoritmo o di un altro dipende dai requisiti specifici dell’analisi e dalla natura dei dati.

Consideriamo ad esempio un dataset composto da immagini di felini, con informazioni relative a gatti, tigri, leoni e così via. Il compito del clustering consiste nell’aggregare tutti i leoni in uno stesso cluster, i gatti in un altro, senza alcuna conoscenza pregressa sul concetto di “gatto” o “leone”, poiché i dati non sono etichettati. Inoltre, l’analisi mira a individuare eventuali anomalie, che nel nostro esempio può essere la presenza dell’immagine di un elefante.

Il clustering è uno strumento fondamentale di scoperta della conoscenza ed è utilizzato in moltissimi settori, quali la medicina, la finanza, il marketing, il web mining ed è chiaramente fondamentale per l’apprendimento automatico e gli algoritmi di intelligenza artificiale. La cluster analysis fornisce un modo per identificare autonomamente pattern e relazioni in dati complessi, permettendo di formulare ipotesi sulla loro struttura e di effettuare previsioni relative a classi di oggetti.

Principali applicazioni della cluster analysis

Facciamo qualche esempio per capire meglio come si può applicare la cluster analysis ai vari settori e quali obiettivi può avere:

  • Nel campo del marketing, il clustering è spesso utilizzato per la segmentazione di clienti e utenti. L’analisi può essere basata su diversi parametri, come il comportamento di acquisto, dati demografici o altre caratteristiche rilevanti. Le informazioni così ottenute vengono utilizzate per la creazione di campagne mirate o lo sviluppo di nuovi prodotti, adattati alle esigenze specifiche di determinati gruppi di utenti.
  • Il clustering è anche utilizzato nel riconoscimento e nella compressione delle immagini: raggruppando pixel con proprietà simili, è possibile identificare oggetti e pattern all’interno delle immagini. Allo stesso modo, la cluster analysis facilita l’identificazione dei colori principali, consentendo di organizzare gli altri colori in base al grado di somiglianza. Questo processo contribuisce alla compressione delle immagini, sostituendo i valori di ciascun pixel con quelli dei colori principali, semplificandone la rappresentazione.
  • La cluster analysis è anche utilizzata in biologia e in medicina per identificare geni associati con specifiche malattie, oppure per raggruppare i pazienti che hanno caratteristiche cliniche simili. Questo può aiutare nella diagnosi e nel trattamento del paziente e consente una personalizzazione più informata delle cure.
  • Nei social network, la cluster analysis è impiegata per aggregare individui con connessioni sociali e caratteristiche simili. Questa pratica non solo facilita la comprensione delle dinamiche delle reti sociali, ma permette anche l’individuazione di eventuali sottogruppi all’interno di reti più estese.
  • Infine, il clustering si rivela efficace nel rilevare anomalie nei dati. Questa capacità trova applicazioni in diverse situazioni, come l’identificazione di transazioni finanziarie fraudolente, la rivelazione di pattern inusuali nel traffico di rete o il riconoscimento di valori anomali in dati medici.

Tipologie e algoritmi di clustering

La scelta dell’algoritmo

La rilevanza del clustering nel contesto dell’analisi dati è ampiamente riconosciuta, ma va sottolineato che il clustering è un processo soggettivo e i cluster in output dipendono fortemente dalla natura dello specifico algoritmo di clustering prescelto. Cambiando l’algoritmo o variandone i parametri, si possono ottenere risultati estremamente differenti.
Questo sottolinea l’importanza di una selezione accorta dell’algoritmo di clustering in base agli obiettivi specifici dell’analisi. Inoltre, è necessario valutare se l’algoritmo è in grado di gestire le dimensioni del dataset: nell’apprendimento non supervisionato i set di dati possono raggiungere facilmente dimensioni massicce con milioni di esempi, ma non tutti gli algoritmi di clustering sono in grado di scalare in modo efficiente.

Tipologie e Algoritmi di clustering Tradizionali

Esistono diverse tipologie di clustering, ognuna delle quali è più adatta a una particolare distribuzione di dati. Vediamo quali sono quelli più popolari e tradizionali.

K-means

Il clustering basato su centroidi organizza i dati in cluster non gerarchici: K-means è l’algoritmo più noto di questo gruppo. Prima di applicare l’algoritmo, si determina il numero di cluster desiderato (K). I centroidi, che rappresentano i centri di ciascun cluster, vengono posizionati inizialmente in modo casuale nello spazio di dati. Per ogni punto nel set di dati, si calcola la distanza dai centroidi e si assegna il punto al cluster il cui centroide è più vicino. Dopo l’assegnazione, si ricalcolano i centroidi come media di tutti i punti assegnati a ciascun cluster. Questi passaggi si ripetono finché i centroidi smettono di muoversi in modo significativo, garantendo che siano al “centro” dei rispettivi cluster.
L’obiettivo principale di K-Means è minimizzare la varianza all’interno di ciascun cluster, rendendoli più coerenti. Questi algoritmi sono semplici ed efficienti, ma molto sensibili alle condizioni iniziali e tendono a preferire cluster della stessa dimensione.

Gerarchico

Gli algoritmi gerarchici di clustering, noti anche come clustering basato sulla connessione, si basano sull’idea che gli oggetti sono più simili tra loro se vicini, rispetto ad oggetti lontani. Questi algoritmi appunto connettono “oggetti” per formare “cluster” basandosi sulla distanza.
All’inizio, ogni punto dati è considerato un cluster separato. Si calcola poi la distanza tra tutti i possibili coppie di cluster. I due cluster più simili vengono uniti in un nuovo cluster, processo che continua fino a raggiungere un numero desiderato di cluster o fino a quando tutti i punti sono raggruppati in un unico grande cluster. Durante questo processo, viene costruito un dendrogramma, una rappresentazione ad albero della gerarchia di clustering.
L’algoritmo gerarchico può essere “agglomerativo” (dal basso verso l’alto), come descritto sopra, o “divisivo” (dall’alto verso il basso), dove si inizia con un unico cluster contenente tutti i dati e si divide progressivamente in sotto-cluster. L’algoritmo gerarchico è flessibile e può essere utilizzato in diversi contesti, ma può richiedere più risorse computazionali rispetto a K-Means, specialmente su grandi set di dati.

Clustering basato sulla densità e DBSCAN

L’ultimo algoritmo tradizionale di clustering che andiamo a discutere è DBSCAN (Density-Based Spatial Clustering of Applications with Noise). Si tratta di un algoritmo di clustering basato sulla densità, che risulta utile in situazioni in cui i cluster possono avere forme e dimensioni diverse.
Questo algoritmo si basa su due parametri: epsilon, che definisce la distanza massima tra due punti per considerarli parte dello stesso cluster e il numero minimo di punti all’interno di epsilon per considerare un cluster valido (MinPts).
Si parte da un punto casuale che viene classificato come punto principale, di confine o di rumore. Nel caso in cui il punto sia identificato come punto principale, viene creato un nuovo cluster, e tutti i punti raggiungibili da esso entro una determinata distanza (epsilon) vengono assegnati a questo cluster. Nel caso di un punto di confine, invece, il punto viene assegnato al cluster più prossimo. Questo processo si ripete iterativamente fino a quando tutti i punti sono stati assegnati a un cluster o etichettati come punti di rumore. In altre parole, DBSCAN forma cluster basati sulla densità e permette la creazione di cluster di forma arbitraria e viene ampiamente utilizzato per gestire anomalie e punti isolati (rumore) nei dati.

La natura soggettiva e l’instabilità intrinseca del clustering, sono elementi ampiamente riconosciuti che hanno stimolato l’evoluzione dell‘analisi di clustering multipla. Questa filosofia si basa sull’idea che un singolo clustering per un insieme di dati sia eccessivamente restrittivo. Al contrario, ciò che ci si dovrebbe aspettare è la presenza di molteplici raggruppamenti alternativi per ogni insieme di dati. Ciascuno di questi raggruppamenti alternativi corrisponde ad una diversa disposizione degli oggetti, offrendo così prospettive, visioni o ipotesi diverse sulla natura stessa dei dati.
La soggettività del processo e la sensibilità ai parametri evidenziano la necessità di un approccio flessibile, che possa adattarsi alle sfumature dei dati e alle diverse interpretazioni degli stessi. L’emergere dell’analisi di clustering multipla costituisce un passo avanti verso una comprensione più approfondita e completa della struttura dei dati. Questa prospettiva apre la porta a una gamma più ampia di interpretazioni e scoperte, consentendo agli analisti di esplorare le molteplici sfumature nascoste nei dataset.

Fonti: 

Bailey, J. (2018). Alternative clustering analysis: A Review – University of Melbourne. https://people.eng.unimelb.edu.au/baileyj/papers/chapter-21.pdf

Data Mining – cluster analysis. (2023, February 1). https://www.geeksforgeeks.org/data-mining-cluster-analysis/

HP, S. (2021, March 5). Cluster analysis: https://medium.com/mlearning-ai/cluster-analysis-6757d6c6acc9

Sarah, M. (2024, January 2). A comprehensive guide to cluster analysis: Applications, best practices and resources. https://www.displayr.com/understanding-cluster-analysis-a-comprehensive-guide/

Xu, D., & Tian, Y. (2015, August 12). A comprehensive survey of clustering algorithms – annals of data science. https://link.springer.com/article/10.1007/s40745-015-0040-1