Issuu on Google+

Clustering Corso di Apprendimento Automatico Laurea Magistrale in Informatica Nicola Fanizzi Dipartimento di Informatica UniversitĂ  degli Studi di Bari

3 febbraio 2009

Corso di Apprendimento Automatico

Clustering


Sommario

Introduzione Clustering iterativo basato su distanza k -M EANS e sue generalizzazioni: k -M EDOIDS e F UZZY k -M EANS

Clustering gerarchico Clustering incrementale Clustering basato su probabilitĂ  Modello misto EM Clustering Bayesiano

Corso di Apprendimento Automatico

Clustering


Introduzione Le tecniche di clustering sono utili nei casi in cui non ci siano classi da predire Scopo: dividere le istanze in gruppi naturali I cluster possono essere: disgiunti vs. sovrapposti deterministici vs. probabilistici piatti vs. gerarchici

Gli algoritmi possono anche essere: divisivi vs. agglomerativi I cluster ottenuti con K - MEANS, presentato in seguito, sono disgiunti, deterministici e piatti

Trattazioni sul clustering:

Corso di Apprendimento Automatico

[Jain and Dubes, 1988] [Kaufman and Rousseeuw, 1990] Clustering


Rappresentazione I

Rappresentazione semplice 2D

Corso di Apprendimento Automatico

Diagramma di Venn (cluster sovrapposti)

Clustering


Rappresentazione II

Assegnazione probabilistica

Corso di Apprendimento Automatico

Dendrogramma

Clustering


Prossimità I Molti algoritmi si basano su nozioni di similarità o prossimità Matrice: D = (dij )i=1,...,N j=1,...,N In genere D è simmetrica e ∀i = 1, . . . , N : dii = 0 Date p misure xih sulle istanze (i = 1, . . . , N e h = 1, . . . , p), si definiscono p funzioni di (dis)similarità dh sull’h-esimo attributo, ad es. dh (xih , xjh ) = (xih − xjh )2 Per cui la dissimilarità tra le istanze di indice i e j: X D(xih , xjh ) = dh (xih , xjh ) h

Corso di Apprendimento Automatico

Clustering


Prossimità II

attributi quantitativi: d(xi , xj ) = l(|xi − xj |) oppure la correlazione ρ(xi , xj ) attributi ordinali: supponendo che si possano assumere M valori, questi possono essere mappati su: i−1/2 M , per i = 1, . . . , M e quindi usare misure quantitative attributi categorici: supponendo che si possano assumere M valori, si può costruire una matrice L simmetrica a diagonali nulle e tale che Lrs = 1 per r 6= s o usare altre loss function

Corso di Apprendimento Automatico

Clustering


Prossimità III Combinazione delle misure di dissimilarità D(xi , xj ) =

X

wh · dh (xih , xjh )

h

con

P

h

wh = 1

Per la scelta dei pesi: wh = 1/sh con 1 XX sh = 2 (xih − xjh )2 = 2 · varh N i

j

varh stima sul campione della varianza dell’attributo h-esimo

Corso di Apprendimento Automatico

Clustering


ProssimitĂ  IV

Valori mancanti per un certo attributo: eliminare le istanze abbondanza di dati

considerare la media dei valori dell’attributo oppure la mediana o la moda

considerare il valore mancante un ulteriore valore speciale

Corso di Apprendimento Automatico

Clustering


k -M EANS

Clusterizzare dati in k gruppi (k predefinito): 1 Scegliere k centroidi es. casualmente 2

Assegnare le istanze ai cluster basandosi sulla distanza dai centroidi

3 4

Ri-calcolare i centroidi dei cluster Tornare al passo 1 fino ad avverare un criterio di convergenza

Corso di Apprendimento Automatico

Clustering


k -M EANS – osservazioni I L’algoritmo minimizza la distanza quadratica delle istanze dai centroidi I risultati possono variare significativamente a seconda della scelta dei centri iniziali

può rimanere intrappolato in un minimo locale

Per incrementare la probabilità di trovare un ottimo globale: far ripartire l’algoritmo con una diversa scelta di centroidi Puo essere applicato ricorsivamente con k = 2 B ISECTING k - MEANS Corso di Apprendimento Automatico

Clustering


k -M EANS – osservazioni II centroidi iniziali

partizione iniziale

iterazione #2

iterazione #20

Corso di Apprendimento Automatico

Clustering


Calcolo veloce delle distanze I

Si possono usare kD-trees o ball trees Costruire l’albero, che rimane statico, per tutte le istanze In ogni nodo: immagazzinare il numero delle istanze e la somma di tutte le istanze Ad ogni iterazione, scendere nell’albero e trovare a quale cluster ogni nodo appartenga La discesa si può fermare non appena si trovi un nodo che appartiene interamente ad un particolare cluster Usare delle statistiche conservate in ogni nodo per calcolare nuovi centri: somma dei vettori, numero di punti, . . .

Corso di Apprendimento Automatico

Clustering


Calcolo veloce delle distanze II Esempio

Corso di Apprendimento Automatico

Clustering


Quanti cluster ? Come scegliere k in k -M EANS ? Possibilità: Scegliere k che minimizzi la distanza quadratica dai centri mediata da un processo di cross-validation Usare una distanza quadratica penalizzata sui dati di training (es. usando un criterio MDL) Applicare k -M EANS ricorsivamente con k = 2 e usare un criterio di stop (es. basato su MDL) I centroidi iniziali per i sotto-cluster possono essere scelti lungo le direttrici di massima varianza nel cluster (lontane dal centroide del cluster padre un’unitaà di deviazione standard in ogni direzione) Implementato nell’algoritmo X- MEANS [Moore and Pelleg, 2000], nel quale si usa il BIC (Bayesian Information Criterion [Kass and Wasserman, 1995]) invece del MDL Corso di Apprendimento Automatico

Clustering


k -M EDOIDS I

Generalizzazione del k -M EANS in caso non si possano definire centroidi Si utilizzano diversi rappresentanti dei cluster {mi , . . . , mk } medoide del cluster Cj : istanza del cluster che minimizza la distanza media dagli altri mj = argmin xr ∈Cj

Corso di Apprendimento Automatico

X

D(xr , xs )

xs ∈Cj

Clustering


k -M EDOIDS II Algoritmo k -M EDOIDS Inizializzare i medoidi: {mj }j=1,...,k Ripetere 1

Minimizzare l’errore totale assegnando ogni istanza al medoide (corrente) più vicino: Per i = 1, . . . , N eseguire C(i) ← argmin D(xi , mj ) 1≤j≤k

2

Ricalcolare medoidi: Per j = 1, . . . , k eseguire mj ← argmin xr ∈Cj

X xs ∈Cj

Fino alla convergenza Corso di Apprendimento Automatico

Clustering

D(xr , xs )


k -M EDOIDS III Esempio dissimilaritĂ  tra nazioni

(da [Hastie et al., 2001])

matrice di prossimitĂ  riordinata Corso di Apprendimento Automatico

Clustering


F UZZY k -M EANS I Generalizzazione del k -M EANS: grado di appartenenza ad al cluster i-esimo in [0, 1] Corrisponde a P(Cj |xi , θ) (normalizzate) Si utilizzano diversi rappresentanti dei cluster {µ1 , . . . , µk } Funzione obiettivo da minimizzare: XX L= (P(Cj |xi , θ))b kxi − µj k2 i

j

ˆ j si ha: Annullando le derivate di ∂L/∂µj e ∂L/∂ P P (P(Cj |xi ))b xi µj = Pi b i (P(Cj |xi ))

1

(1/dij ) b−1 P(Cj |xi ) = P 1 b−1 r (1/dir )

Corso di Apprendimento Automatico

Clustering

dij = kxi −µj k2


F UZZY k -M EANS II

Algoritmo k - MEDOIDS Inizializzare: µj e P(Cj |xi ) per i = 1, . . . , N, j = 1, . . . , k Ripetere la classificazione delle istanze in base al prototipo più vicino 1 2

ricalcolare ogni µj ricalcolare le probabilità P(Cj |xi ) e normalizzarle

fino alla convergenza (nessun cambiamento)

Corso di Apprendimento Automatico

Clustering


Clustering gerarchico I

Algoritmi top-down (divisivi): partono da un gruppo unico e lo dividono ad ogni livello; il gruppo da dividere è quello meno coeso bottom-up (agglomerativi): si parte da gruppi composti dalle singole istanze e che vengono fusi via via gruppi con la più alta similarità

In genere questi algoritmi non richiedono k ma una misura di dissimilarità tra gruppi Degli N − 1 livelli scegliere quello con il clustering più ”naturale”; sono state proposte molte statistiche [Bezdek and Pal, 1998, Halkidi et al., 2001] Dunn, Hubert, Davies-Bouldin, Silhouette, Gap, . . .

Corso di Apprendimento Automatico

Clustering


Clustering gerarchico II

Corso di Apprendimento Automatico

Clustering


Approcci agglomerativi I ad ogni livello occorre scegliere i cluster da fondere dati due cluster Ci e Cj la loro dissimilarità si basa su quella dei loro elementi: single linkage (SL) dSL (Ci , Cj ) =

min

d(xi , xj )

max

d(xi , xj )

xi ∈Ci ,xj ∈Cj

complete linkage (CL) dCL (Ci , Cj ) =

xi ∈Ci ,xj ∈Cj

average group linkage (GL) dGL (Ci , Cj ) =

Corso di Apprendimento Automatico

1 |Ci ||Cj |

X xi ∈Ci ,xj ∈Cj

Clustering

d(xi , xj )


Approcci agglomerativi II

Corso di Apprendimento Automatico

Clustering


Approcci divisivi I meno investigati dei precedenti algoritmi ricorsivi ricavabili da k -means (k -medoids): ad ogni livello si individua il cluster meno coeso da dividere si applica un algoritmo per dividere questo cluster in k sotto-cluster fino ad avere diviso tutti i cluster o altro criterio di stop

scelta del cluster da dividere: massimo diametro [Kaufman and Rousseeuw, 1990]: ∆(C) = max d(xi , xj ) xi ,xj ∈C

massima dissimilarità media: 1 ¯ d(C) = |C|

Corso di Apprendimento Automatico

X xi ∈C,xj ∈C

Clustering

d(xi , xj )


Approcci divisivi II

Corso di Apprendimento Automatico

Clustering


Approcci incrementali Approccio euristico C OBWEB C LASSIT

[Fisher, 1987] [Gennari et al., 1997]

Formare incrementalmente una gerarchia di cluster Inizialmente: l’albero consiste in un nodo-radice vuoto

Quindi: Aggiungere istanze una alla volta Aggiornare l’albero appropriatamente ad ogni passaggio Per l’aggiornamento: trovare la foglia destra per un’instanza Può comportare la ristrutturazione dell’albero

Decisioni sull’aggiornamento basate sul criterio di category utility

Corso di Apprendimento Automatico

Clustering


Category Utility Category utility [Gluck and Corter, 1985] Loss function quadratica definita dalle probabilita condizionate: P CU(C1 , . . . , Ck ) =

l

P(Cl )

P P i

j (P(ai

= vij | Cl )2 − P(ai = vij )2 ) k

Ogni istanza in una diversa categoria =⇒ il numeratore diventa: n−

P P i

j

P(ai = vij )2

↑ numero di attributi

Corso di Apprendimento Automatico

Clustering

← massimo


Ristrutturazione: fusione e suddivisione

Evitare la dipendenza dall’ordine di presentazione delle istanze Fusione Calcolare la CU per tutte le coppie di nodi (costoso) Trovare un nodo-ospite per la nuova istanza tra nodi allo stesso livello: annotare nodo migliore + seconda scelta nodo migliore: posto per l’istanza (a meno che non si preferisca costruire un cluster proprio) considerare la fusione del nodo ospite + seconda scelta

Suddivisione identificare il miglior nodo-ospite fusione svantaggiosa considerare la suddivisione del nodo migliore

Corso di Apprendimento Automatico

Clustering


Esempio I

ID a b c d e f g h i j k l m n

Outlook Temp. Humidity Windy Sunny Hot High False Sunny Hot High True Overcast Hot High False Rainy Mild High False Rainy Cool Normal False Rainy Cool Normal True Overcast Cool Normal True Sunny Mild High False Sunny Cool Normal False Rainy Mild Normal False Sunny Mild Normal True Overcast Mild High True Overcast Hot Normal False Rainy Mild High True

Corso di Apprendimento Automatico

Clustering


Esempio II ID a b c d e f g h i j k l m n

Outlook Temp. Humidity Windy Sunny Hot High False Sunny Hot High True Overcast Hot High False Rainy Mild High False Rainy Cool Normal False Rainy Cool Normal True Overcast Cool Normal True Sunny Mild High False Sunny Cool Normal False Rainy Mild Normal False Sunny Mild Normal True Overcast Mild High True Overcast Hot Normal False Rainy Mild High True

Corso di Apprendimento Automatico

Fusione

Clustering


Esempio III ID Outlook Temp. Humidity Windy A Sunny Hot High False B Sunny Hot High True C Overcast Hot High False D Rainy Mild High False

Corso di Apprendimento Automatico

Clustering


Attributi Numerici Si assume una distribuzione normale: 2 f (a) = √ 1 exp(− (a−µ) ) 2σ 2 (2π)σ

quindi

P

j

P(ai = vij )2 ⇔

R

f (ai )2 dai =

√1 2 πσi

pertanto P

CU(C1 , C2 , . . . , Ck ) =

l

P(Cl )

P P i

k P

diventa CU(C1 , C2 , . . . , Ck ) =

2 2 j (P(ai =vij |Cl ) −P(ai =vij ) )

l

1 P(Cl ) 2√ π

P

1 i ( σil

− σ1 ) i

k

Problema: una sola instanza in un nodo porta a varianza nulla minima varianza pre-specificata parametro acuity: misura dell’errore in un singolo campione Corso di Apprendimento Automatico

Clustering


Dataset IRIS

Corso di Apprendimento Automatico

Clustering


Cut-off

Corso di Apprendimento Automatico

Clustering


Clustering probabilistico

Problemi dell’approccio euristico: Suddivisione in k cluster ? Ordine degli esempi ? Sono sufficienti le operazioni di ristrutturazione ? Il risultato raggiunge almeno localmente la minima category utility?

Prospettiva probabilistica =⇒ cercare i cluster più verosimili date le osservazioni Inoltre: un’istanza appartiene ad ogni cluster con una certa probabilità

Corso di Apprendimento Automatico

Clustering


Composizioni finite

Si modellano i dati usando una composizione (mixture) di distribuzioni Ogni cluster corrisponde ad una distribuzione governa le probabilitĂ  dei valori degli attributi per quel cluster

Finite mixtures: numero finito di cluster Le singole distribuzioni sono (di solito) Normali Si combinano le distribuzioni usando pesi relativi ai cluster

Corso di Apprendimento Automatico

Clustering


Modello composto a 2-classi

Corso di Apprendimento Automatico

Clustering


Uso del modello composto

Probabilità che l’istanza x appartenga al cluster A: P(A | x) = con f (x; µ, σ) =

√1 2πσ

P(x | A)P(A) f (x; µA , σA )pA = P(x) P(x) 2

) exp(− (x−µ) 2σ 2

Probabilità di un’istanza dati i cluster: X P(x | {C1 , . . . , Ck }) = P(x | Ci )P(Ci ) i

Corso di Apprendimento Automatico

Clustering


Imparare i cluster

Si assuma: di conoscere che il numero di cluster k

Imparare i cluster ? determinare i loro parametri ossia medie e deviazioni standard

Criterio di valutazione: ProbabilitĂ  dei dati di training dati i cluster

Algoritmo EM trova un massimo locale della likelihood

Corso di Apprendimento Automatico

Clustering


Algoritmo EM I

EM = Expectation-Maximization Generalizza K - MEANS in senso probabilistico Procedura iterativa: passo E expectation: Calcolare la probabilità di appartenenza ai cluster per ogni istanza passo M maximization: Stimare i parametri della distribuzione a partire dallle probabilità determinate

Immagazzinare le probabilità come pesi delle istanze Stop quando il miglioramento è trascurabile

Corso di Apprendimento Automatico

Clustering


Algoritmo EM II Stimare i parametri dalle istanze pesate µA =

σA =

w1 x1 + w2 x2 + · · · + wn xn w1 + w2 + · · · + wn

w1 (x1 − µ)2 + w2 (x2 − µ)2 + · · · + wn (xn − µ)2 w1 + w2 + · · · + wn

Stop quando si satura la log-likelihood Log-likelihood: X

log(pA P(xi | A) + pB P(xi | B))

i

Corso di Apprendimento Automatico

Clustering


Estensione del modello composto

PiÚ di due distribuzioni: facile Parecchi attributi: facile – assumendone l’indipendenza Attributi correlati: difficile modello congiunto: distribuzione normale bivariata con una matrice di covarianza (simmetrica) n attributi: serve stimare n + n(n + 1)/2 parametri

Corso di Apprendimento Automatico

Clustering


Altre estensioni

Attributi nominali: facile se indipendenti Attributi nominali correlati: difficile Due attributi correlati =⇒ ν1 ν2 parametri

Valori mancanti: facile Possibilità di usare altre distribuzioni diverse dalla normale: log-normale se è dato un minimo predeterminato log-odds se limitato superiormente ed inferiormente Poisson per attributi che rappresentano conteggi interi

Usare la cross-validation per stimare k

Corso di Apprendimento Automatico

Clustering


Clustering Bayesiano

Problema: tanti parametri =⇒ EM soffre di sovradattamento Approccio Bayesiano: si attribuisce ad ogni parametro una distribuzione di probabilità a priori Si incorpora la probabilità a priori nel computo totale della likelihood Si penalizza l’introduzione di parametri

Es. lo stimatore di Laplace per attributi nominali Si può anche avere una probabilità a priori sul numero di cluster Implementazione: AUTO C LASS [Cheeseman and Stutz, 1995]

Corso di Apprendimento Automatico

Clustering


Discussione

Diminuisce la dipendenza tra attributi ? passo di pre-elaborazione Es. usare l’analisi delle componenti principali

Si può usare per completare i valori mancanti Principale vantaggio del clustering probabilistico: Si può stimare la likelihood dei dati usabile poi per confrontare modelli differenti in modo obiettivo

Corso di Apprendimento Automatico

Clustering


Clustering concettuale

In una seconda fase succesiva al clustering (non supervisionato) è possibile interpretare i cluster tramite l’apprendimento supervisionato passo di post-elaborazione: conceptual clustering [Stepp and Michalski, 1986] Ogni cluster rappresenta una classe di istanze per la quale costruire un concetto in forma insensionale Per ogni cluster es. positivi istanze del cluster es. negativi istanze degli altri cluster disgiunti

Corso di Apprendimento Automatico

Clustering


Fonti

A.K. Jain, M.N. Murty, P.J. Flynn: Data Clustering: A Review. ACM Computing Surveys, 31(3), 264–323, 1999 I. Witten & E. Frank: Data Mining: Practical Machine Learning Tools and Techniques, Morgan Kaufmann R. Duda, P. Hart, D. Stork: Pattern Classification, Wiley T. Hastie, R. Tibshirani, J. Friedman: The Elements of Statistical Learning, Springer T. M. Mitchell: Machine Learning, McGraw Hill

Corso di Apprendimento Automatico

Clustering


Bibliografia I Bezdek, J. and Pal, N. (1998). Some new indexes of cluster validity. IEEE Transactions on Systems, Man, and Cybernetics, 28(3):301–315. Cheeseman, P. and Stutz, J. (1995). Bayesian classification (AutoClass): Theory and results. In Fayyad, U., Piatetsky-Shapiro, G., Smyth, P., and Uthurusamy, R., editors, Advances in Knowledge Discovery and Data Mining, pages 153–180. AAAI Press. Fisher, D. (1987). Knowledge acquisition via incremental conceptual clustering. Machine Learning, 2(2):139–172. Gennari, I., Langley, P., and Fisher, D. (1997). Models of incremental concept formation. Artificial Intelligence, 40:11–61.

Corso di Apprendimento Automatico

Clustering


Bibliografia II Gluck, M. and Corter, J. (1985). Information, uncertainty, and utility of categories. In Proceedings of the Annual Conference of the Cognitive Science Society, pages 283–287. Lawrence Erlbaum. Halkidi, M., Batistakis, Y., and Vazirgiannis, M. (2001). On clustering validation techniques. Journal of Intelligent Information Systems, 17(2-3):107–145. Jain, A. and Dubes, R. (1988). Algorithms for Clustering Data. Prentice Hall, Englewood Cliffs, NJ. Kass, R. and Wasserman (1995). A reference bayesian test for nested hypotheses and its relationship to the Schwarz criterion. Journal of the American Statistical Association, 90:928–934.

Corso di Apprendimento Automatico

Clustering


Bibliografia III

Kaufman, L. and Rousseeuw, P. (1990). Finding Groups in Data: an Introduction to Cluster Analysis. John Wiley & Sons. Moore, A. and Pelleg, D. (2000). X-means: Extending k-means with efficient estimation of the number of clusters. In Kaufmann, M., editor, Proceedings of the 17th International Conference on Machine Learning, pages 727–734. Stepp, R. E. and Michalski, R. S. (1986). Conceptual clustering of structured objects: A goal-oriented approach. Artificial Intelligence, 28(1):43–69.

Corso di Apprendimento Automatico

Clustering


http://lacam.di.uniba.it:8000/~nico/corsi/aa/clu