Cluster Analysis Fabio Ruini Abstract Scopo dell’analisi dei cluster (o clustering) è quello di classificare unità statistiche, per le quali sono state misurate le modalità di differenti variabili, in un numero inferiore e relativamente contenuto di gruppi, detti “cluster”. Alla base degli algoritmi di clustering vi è il concetto di distanza. L’obiettivo che ci si prefigge è infatti quello di massimizzare la distanza infra-gruppi e minimizzare, al tempo stesso, quella intragruppi. In questa breve tesina, si vedranno applicate le tecniche di cluster analysis ad un caso reale. Dato un insieme di foglie di iris, appartenenti a specie diverse, si dovrà stabilire il miglior raggruppamento possibile per esse. I risultati, al termine, saranno confrontati con quelli veri e verranno discusse eventuali discordanze. Introduzione Il dataset originale al centro della nostra analisi, consiste in un elenco, espresso in forma tabellare, di 150 foglie, appartenenti a specie diverse di iris. Per ciascuna foglia sono riportati i risultati relativi a quattro misurazioni effettuate su di essa, nonché la specie di iris a cui la foglia appartiene. Nella nostra analisi fingeremo tuttavia di ignorare quest’ultima informazione, in quanto il nostro obiettivo è proprio quello di individuare autonomamente la classificazione delle foglie, mediante tecniche di cluster analysis. Una volta terminato lo studio, i dati verranno sottoposti ad una analisi delle componenti principali e, sul dataset modificato, sarà effettuata una nuova analisi dei cluster. Le analisi sono state svolte con l’ausilio del pacchetto software Matlab. A tal fine è stato predisposto uno script (cluster_analysis.m), che effettua in maniera automatica tutte le operazioni necessarie, generando gli output grafici e mostrando a video le caratteristiche di quello che viene individuato come “miglior clustering possibile”. A questo script se ne abbina un secondo (pca.m), in grado di “risistemare” il dataset, mediante una Principal Component Analysis, prima della seconda analisi dei cluster. Descrizione del problema e teoria Il dataset IRIS, estrapolato dai dati originari, è una matrice di ordine 150x4. Ogni riga corrisponde ad una foglia, mentre le quattro colonne rappresentano i risultati derivanti da altrettante osservazioni effettuate sulla foglia in questione. Da un punto di vista tecnico, ricevuta in input la matrice delle osservazioni, lo script ha generato la matrice delle distanze (o matrice di dissimilarità), basandosi sul metodo delle distanze euclidee. E’ stato successivamente costruito l’albero gerarchico dei cluster e, da questo, si è tracciato il dendrogramma dei dati. Figura 1 – Dendrogramma dell’insieme dei dati Un ciclo iterativo ha quindi provveduto a segmentare il dataset, con un numero di clusters compreso tra 2 e 10. Per ognuna di queste clusterizzazioni sono state generate la matrice W (Within), la matrice B (Between) e la conseguente matrice T (derivante dalla somma di W e B). Queste tre matrici, per la cui elaborazione ci si è appoggiati al metodo del centroide, sono servite per calcolare gli indici MC (Marriott’s Criterion) e VRC (Variance Ratio Criterion), necessari per stabilire il numero ottimale di cluster in cui suddividere l’insieme dei dati: MC= g 2 VRC= det(W ) det(T ) traccia (W ) /( n − g ) traccia ( B ) /( g − 1) Figura 2 – Formule per il calcolo del Marriott’s Criterion e del Variance Ratio Criterion (W: matrice Within, B: matrice Between, T: matrice totale, g: numero dei clusters, n: numero di elementi interni al cluster) Lo script ha infine generato gli output grafici, utili per una più agevole comprensione dei risultati. Risultati Le analisi effettuate hanno portato a due conclusioni, diverse tra loro in funzione del criterio utilizzato per stabilire il numero ottimale di clusters in cui suddividere l’insieme dei dati. Utilizzando l’indice VRC è risultato che la miglior segmentazione sarebbe quella che divide il dataset in due clusters, contenenti rispettivamente gli elementi negli intervalli [1:50] e [51:150]. Figura 2 – Rappresentazione grafica della segmentazione del dataset in 2 clusters Diversamente, l’utilizzo dell’indice MC ha individuato in 3 il numero ottimale di sottoinsiemi da utilizzare per la segmentazione del dataset. Questi tre clusters sono così strutturati: • • • primo cluster: elementi compresi nell’intervallo [51:150], con l’eccezione delle osservazioni di numero 118 e 132; secondo cluster: elementi compresi nell’intervallo [118, 132]; terzo cluster: elementi compresi nell’intervallo [1:50]. Figura 3 – Rappresentazione grafica della segmentazione del dataset in 3 clusters Quest’ultima analisi concorda, almeno in termini di numero di clusters, con quella che è la reale classificazione delle piante in esame. Le 150 piante da classificare, infatti, appartengono a 3 specie diverse (setosa, versicolor e virginica) e sono ordinate sequenzialmente, dalla prima alla terza specie, in gruppi di 50. Figura 4 – Rappresentazione grafica della clusterizzazione “reale” Sul dataset è stata successivamente effettuata una analisi delle componenti principali (PCA), che, oltre a standardizzare i dati, ha ridotto a 2 il numero delle colonne della matrice. Sui nuovi valori sono state ripetute tutte le analisi eseguite in precedenza, compresi ovviamente il disegno del nuovo dendrogramma ed il calcolo degli indici MC e VRC. Figura 5 – Dendrogramma dell’insieme dei dati, dopo l’analisi delle componenti principali (PCA) In questo caso, sia il Marriott’s Criterion che il Variance Ratio Criterion hanno portato ai medesimi risultati. In entrambi i casi è infatti risultato che, per segmentare il dataset, il numero ottimale di clusters da utilizzare fosse 2. Nello specifico, i cluster generati dall’algoritmo contenevano rispettivamente le osservazioni comprese nell’intervallo [1:50] ed in quello [51:150]. Figura 6 – Rappresentazione grafica della segmentazione del dataset in 2 clusters, dopo l’analisi delle componenti principali (PCA) Conclusioni Le analisi svolte non hanno permesso di ricostruire con assoluta esattezza la classificazione delle piante oggetto d’esame. Gli algoritmi utilizzati hanno tuttavia approssimato con una certa correttezza il numero di categorie in cui suddividere il dataset, identificato in 2 o 3 a seconda dell’indice utilizzato come riferimento. Gli errori più vistosi sono stati compiuti sui dati centrali, corrispondenti alla specie di iris denominata “versicolor”. Nella classificazione a due cluster basata su VRC, tale categoria non è stata individuata. Al contrario, l’utilizzo del Marriott’s Criterion (prima che sui dati venisse applicata la principal component analysis) ha consentito l’identificazione di tre clusters: unico appunto il fatto che il gruppo centrale non contenesse altro che due elementi. In tutti i casi è stata individuata correttamente la categoria chiamata “setosa”, a cui appartenevano le prime 50 osservazioni del dataset. Tale successo è stato senz’altro favorito dalla terza e dalla quarta colonna della matrice, che per queste foglie riportavano valori delle osservazioni nettamente inferiori rispetto a quelli delle rimanenti 100. Bibliografia F. Pattarin, S. Paterlini, T. Minerva, “Clustering financial time series: an application to mutual funds style analysis”: http://www.elsevier.com/gej-ng/29/45/24/61/321/abstract.html C. Barbaranelli, “L’analisi dei cluster”: http://151.100.114.119/ausili/BARBARANELLI/analisi.dati%20Folder/anali si%20dei%20cluster.pdf “Cluster analysis” http://www.economiamc.org/repo/76/cluster+lucidi.pdf L. Cerbara, G. Iacovacci, “Cenni sulla cluster analysis”: http://www.irpps.cnr.it/irp_it/download/wp2_98.pdf Roadmap MATLAB - in particolare: "Getting started with Matlab (Version 6)"; "Using Matlab (Version 6)"; "Statistics Toolbox - for use with Matlab";