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