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";