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 Annullando le derivate di ∂L/∂µj e ∂L/∂ P̂j si ha: 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: d̄(C) = Corso di Apprendimento Automatico 1 |C| 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