Sei sulla pagina 1di 7

CLUSTER ANALYSIS

Con il termine clustering si fa riferimento allo studio di gruppi di elementi le cui caratterizzazioni e il cui numero non sono noti a priori. Proprio in questo differisce rispetto ai problemi di classificazione, per i quali, dato un training set, si vuole procedere a classificare un nuovo elemento. Le analisi di clustering si basano sulle definizioni di similitudine o di distanze (dissimilitudini).

DEFINIZIONE DI SIMILARIT E DISSIMILARIT SIMILARIT Dati due elementi x, y p , si definisce similarit una funzione S : p p [0,1] che rispetta le seguenti propriet: (1)simmetria: S ( x, y ) = S ( y , x ) (2)identit: S ( x, x ) = 1

DISSIMILARIT Sono costituite mediamente sul concetto di distanza d : p p [0, +] e rispettano mediamente alcune delle seguenti propriet: (1)simmetria: d ( x, y ) = d ( y , x ) (2) d ( x, x ) = 0 (3) d ( x, y ) = 0 x = y (4)dis. triangolare: d ( x, y ) d ( x, z ) + d ( z, x ) (5) d ( x, y ) max {d ( x, z ), d ( z, y )} (1) (3) e (4) identificano una metrica; (1) (2) e (4) identificano una pseudometrica; (1) (3) e (5) identificano una ultrametrica. Esempi di dissimilarit sono: distanze euclidee (anche su dati standardizzati); distanze di Mahalanobis (se la matrice di varianza covarianza fosse data); distanze di Minkowsky:

p m d= | xi yi |m ( x, y ) i =1 con m crescente si d maggiore peso alla presenza di valori elevati;


distanza di Canberra: x y d ( x, y ) = xi + yi i i i Il peso al denominatore (a meno di una costante) il valor medio dei due valori delle due osservazioni. x, y p +

dist(data.set, method='euclidean') crea le matrici di distanza con metodo segnalato; altri metodi sono 'manhattan' (Minkowsky con m=1), 'canberra',

TRATTAZIONE DI DATI BINARI In caso di dati binari, la distanza euclidea fornisce una misura del numero di discordanze fra due unit statistiche. In questi casi pu essere interessante pesare in modo differente corrispondenze e discordanze (es. dare un peso differente ai valori 0-0 rispetto ai valori 1-1).

Per fare questo utile introdurre una tabella di contingenza per i valori osservati

e introdurre metriche volte allo specifico caso, come ad esempio:

TRASFORMAZIONE DELLE METRICHE sempre possibile derivare una metrica di similarit da una metrica di distanza. Un esempio di trasformazione :

A partire da una matrice di similarit, invece, possibile definire una matrice di dissimilarit solo se la prima definita non negativa e se i valori vengono riscalati con S ( x, x ) = 1

METODI DI CLUSTERING GERARCHICO Metodi nei quali esiste un ordine di aggregazione (o separazione) degli elementi nei vari gruppi. A partire dalla selezione della definizione di distanza (o similarit), esistono due macro vie di procedimento: algoritmi gerarchici agglomerativi: in principio vengono creati tanti cluster quanti sono gli elementi del dataset; vengono poi uniti gli elementi e, successivamente, i gruppi che presentano le maggiori similitudini (o le minori distanze) fino ad ottenere un unico gruppo; algoritmi gerarchici divisivi: si procede in modo inverso, partendo da un unico gruppo e separando via via i punti (o i gruppi di punti) che presentano le maggiori differenze. Il risultato di questi algoritmi illustrato in un grafo detto dendrogramma, che mostra le distanze cui due punti (o gruppi) si uniscono (o separano) fra loro.

Per i generici passi di un algoritmo gerarchico agglomerativo, vedere pag. 681 JW. Oltre alla definizione della metrica di distanza fra due punti, poich si debbono raggruppare fra loro gruppi di punti, occorre definire quale concetto di distanza fra gruppi di punti considerare. A seconda della definizione di distanza di gruppo nascono metodi di agglomerazione differenti (v. dopo). Poich oltre allispezione grafica non sono a disposizione informazioni sulla correttezza dei raggruppamenti, buona norma provare differenti metodi con differenti definizioni di distanze. Se questi evidenziano sostanzialmente gli stessi gruppi, v buona evidenza di un buon raggruppamento. La stabilit del raggruppamento pu essere testata tramite differenti jittering del dataset e applicazione in serie degli algoritmi di clustering. Se i raggruppamenti non variano, i gruppi sono stabili.

Gli algoritmi sono sensibili alla presenza di outliers e distanze identiche nella matrice delle distanze (ties) che possono portare a soluzioni differenti a partire dagli stessi dati. in questi casi condurre un attenta analisi del dataset e delle differenti soluzioni generate, in modo da determinare la pi sensata a livello razionale. Un metodo per analizzare la bont del clustering il confronto fra la matrice delle distanze dei punti del dataset e la matrice delle distanze cui si uniscono due punti nellutilizzo dellalgoritmo di clustering, detta matrice delle distanze cofenetiche. Per unanalisi quantitativa si definisce lindice di correlazione fra le due matrici; se questo elevato significa che la struttura di dissimilarit viene colta dallalgoritmo e il raggruppamento affidabile. Il coefficiente di correlazione cofenetico viene definito identificando nel seguente modo: per ogni coppia (i, j ) si considerano la distanze fra i punti Dij e la distanza cui si uniscono Dij ; definiti i valori medi per entrambe le variabili e le relative deviazioni standard, lindice viene calcolato come:

(D
i, j

ij

D )( D ij D )

D D
SINGLE LINKAGE (O NEAREST NEIGHBOR) pag. 682 Dati due gruppi di punti si considera come definizione di distanza fra questi, la minima distanza (o la maggiore similitudine) fra le possibili coppie dei due gruppi. Questo metodo soffre di un problema noto come chaining, ovvero la tendenza a identificare come cluster a parte sequenze di punti disposte in linea. Non inoltre in grado di distinguere fra gruppi poco separati. Tuttavia lunico metodo che riesce a distinguere gruppi non ellissoidali. Il metodo sensibile solo allordinamento dei punti per distanza e non al magnitudo di questa; lutilizzo infatti di distanze differenti, che tuttavia preservino lordinamento degli stessi, porta agli stessi risultati.

COMPLETE LINKAGE (FURTHEST NEIGHBOR) P. 685 La distanza fra due gruppi data dalla massima distanza esistenze fra tutte le possibili coppie dei due. Il metodo assicura che la distanza fra tutti i punti sia compresa entro certi valori. Il metodo sensibile solo allordinamento dei punti per distanza e non al magnitudo di questa (vedi single linkage) e privilegia strutture ellissoidali. AVERAGE LINKAGE - P. 690 La distanza fra due gruppi data dalla media delle distanze di ogni coppia di punti. Questo metodo sensibile al magnitudo della distanza, al contrario dei precedenti, e privilegia strutture ellissoidali.

METODO DI CLUSTERING GERARCHICO DI WARD Questo metodo prevede di minimizzare la perdita di informazione nelle operazioni di raggruppamento, dove per informazione si intende la variabilit intra-gruppi. Un clustering perfetto infatti porterebbe ad una variabilit interna ai gruppi molto bassa e ad una variabilit fra i gruppi (esterna) elevata. Nelle operazioni di clustering agglomerativo, tuttavia, al diminuire del numero dei gruppi, la variabilit intra-gruppo aumenta e diminuisce quella esterna. Il metodo di Ward prevede di minimizzare questo fenomeno cercando di raggruppare fra loro punti che uniformizzino la variabilit interna. Definita la somma degli errori quadratici ESS=

(x
i j

ij

x i ) '( x ij x i ) come la somma delle

covarianze intra-gruppo (a meno di un fattore moltiplicativo, con i indicante il gurppo i-esimo individuato, j punto j-esimo appartenente al gruppo i, x i centroide del gruppo), ad ogni iterazione si considerano tutte le possibili unioni e si calcola lESS derivante per ognuna di esse; confrontandola con lESS delliterazione precedente si procede con lunione che minimizza lincremento di ESS. I dendrogrammi che vengono generati da questo metodo, riportano sulle ordinate il valore di ESS cui si uniscono i gruppi.

hclust(dist, method='single')

a partire dalla matrice delle distanze memorizzata in dist, esegue il clustering gerarchico secondo metodo indicato in method: single, average, complete, ward. ordine di aggregazione delle unit statistiche distanza cui avvengono le unioni ordine di disegno dei punti per il dedrogramma (problemi di sovrapposizione) disegna il dendrogramma relativo relativo alla classificazione memorizzata in hclust disegna sul dendrogramma una linea che taglia lo stesso in corrispondenza di k raggruppamenti salva un vettore etichetta che identifica quali punti appartengono a quale categoria, posto il numero di categorie pari a k. calcola la matrice delle distanze cofenetiche calcolo della correlazione fra le matrici delle distanze e delle distanze cofenetiche

hclust$merge hclust$heigth hclust$order plot(hclust) rect.hclust(hclust, k=2) i <- cutree(hclust, k=2)

cophenetic(hclust) cor(coph,dist)

METODI DI CLUSTERING NON GERARCHICO: METODO K-MEDIE Il metodo procede nella definizione iterativa di centroidi (medie) dei gruppi identificati e alla riassegnazione dei punti del dataset ai gruppi per vicinanza ai centroidi: i gruppi sono costituiti dai punti pi vicini ai centroidi. Occorre fin dal principio indentificare il numero di raggruppamenti del dataset (input del problema), che determina il numero di centroidi del sistema. Alla prima iterazione i centrodi sono selezionati in modo casuale. Per testare la stabilit dellalgoritmo bene ripetere la procedura con centroidi differenti. Questo metodo limitato dalla scelta iniziale del numero di classi in cui dividere il dataset. Poich non nota a priori la struttura delle osservazioni, opportuno effettuare pi classificazioni con un numero di centroidi differente. Un metodo per la scelta del numero dei gruppi pu essere il confronto fra la variabilit totale (somma) intra-gruppo (within) e esterna (between) determinata dal numero di raggruppamenti differenti: allaumentare del numero di gruppi, la covarianza between aumenta e si riduce invece quella within (i gruppi sono pi omogenei internamente e pi eterogenei esternamente). Potrebbe essere opportuno selezionare un numero di gruppi tale per cui, allaumentare degli stessi, il decremento di covarianza within (o laumento di covarianza between espresse in funzione della covarianza totale within + between) non sensibilmente significativo (metodo del gomito). Si procede pertanto alladozione dellalgoritmo per un numero di gruppi crescente e ad osservare come queste covarianze variano.

NB: da un punto di vista computazionale questo metodo molto pi oneroso rispetto ai metodi gerarchici.

kmeans(dataset, centers=2) kmeans $cluster kmeans $centers kmeans $totss kmeans $withinss kmeans $tot.withinss kmeans $betweenss kmeans $size

applicazione dellalgoritmo k-medie al dataset con k centroidi etichette di appartenenza ai cluster centri dei cluster tot. sum of squares (ESS metodo Ward) sum of squares nei cluster sum(sum of squares nei cluster) sum of squares tra i cluster dimensione dei cluster

Metodo per la determinazione del numero di classi da formare: b <- w <- NULL for(k in 1:10){ result.k <- kmeans(dataset, k) w <- c(w, sum(result.k$wit)) b <- c(b, result.k$bet) } x11()
matplot(1:10, b/(w+b), pch='', xlab='clusters', ylab='between/tot', main='Scelta di k - cov between', ylim=c(0,1))

lines(1:10, b/(w+b), type='b', lwd=2) x11()


matplot(1:10, w/(w+b), pch='', xlab='clusters', ylab='within/tot', main='Scelta di k- cov within', ylim=c(0,1))

lines(1:10, w/(w+b), type='b', lwd=2)

Potrebbero piacerti anche