Clustering Salvatore Orlando Data e Web Mining. - S. Orlando 1 Cos’è un’analisi di clustering • Obiettivo dell’analisi di clustering – Raggruppare oggetti in gruppi con un certo grado di omogeneità • Cluster: collezione di oggetti/dati – Simili rispetto a ciascun oggetto nello stesso cluster – Dissimili rispetto agli oggetti in altri cluster • Clustering è anche definito come unsupervised classification: – Come per la classificazione, lo scopo è segmentare i dati, ma senza assegnare etichette di classe – Non abbiamo infatti classi predefinite, ma ogni cluster può essere interpretata come una classe di oggetti simili • Applicazioni tipiche – Come uno strumento stand-alone per cercare di capire come i dati sono distribuiti – Come passo di preprocessing per altri algoritmi Data e Web Mining. - S. Orlando 2 Applicazioni • Image Processing & Pattern Recognition • Analisi di dati spaziali – Creazione di mappe tematiche nei GIS • Scienze Economiche (market research) • WWW – Raggruppamento di documenti simili – Clustering di Weblog per scoprire gruppi di pattern di accesso simili ad un sito Web Data e Web Mining. - S. Orlando 3 Esempi • Marketing: Scopri gruppi distinti, e poi usa questa conoscenza per sviluppare programmi di targeted marketing • Land use: Identifica aree terrestri simili rispetto ad osservazione della terra (satellite) • Assicurazioni: Identifica gruppi di assicurati con caratteristiche comuni • City-planning: Identifica gruppi di case sulla base di tipo, valore, e localizzazione geografica • Studi di terremoti: Clustering di epicentri Data e Web Mining. - S. Orlando 4 Bontà del clustering • Un buon metodo di clustering produrrà cluster di alta qualità con – Alta similarità intra-class – Bassa similarità inter-class Intra-cluster distances are minimized Inter-cluster distances are maximized Data e Web Mining. - S. Orlando 5 Bontà del clustering • La qualità del risultato del clustering dipende – dalla misura di similarità usata, o dallo specifico algoritmo usato • La qualità del clustering è anche misurato in base alla sua abilità di scoprire alcuni o tutti i pattern nascosti • Purtroppo la nozione di cluster può essere ambigua: How many clusters? Six Clusters Two Clusters Four Clusters Data e Web Mining. - S. Orlando 6 Requisiti di un buon metodo di clustering • Scalabilità • Abilità di trattare con tipi di attributi differenti • Scoprire cluster con forme arbitrarie • Minima conoscenza di dominio per determinare i migliori attributi in input • Robustezza per poter trattare con rumori e outlier • Non sensibilità all’ordinamento dei record in input • Capacità di trattare con alta dimensionalità • Capacità di incorporare vincoli specificati dagli utenti • Interpretabilità e usabilità dei risultati Data e Web Mining. - S. Orlando 7 Tipi di dati Matrice dei dati – n oggetti con p attributi – Tabella relazionale Matrice di dissimilarità o distanza – d(i, j) misura di dissimilarità tra oggetti i e j – d(i, j) ≅ 0 oggetti molto simili Data e Web Mining. - S. Orlando 8 Misura la qualità del clustering • Metrica di Dissimilarità/Similarità: – Similarità espressa anche in funzione della distanza: per esempio, per variabili numeriche: sim(i,j) = 1 / (1 + d(i,j)) (sim tende a 0 se d(i,j) diventa molto grande, sim=1 se d(i,j) è uguale a 0) • Le definizioni di funzioni di distanza sono molto differenti per i tipi di dati – interval-scaled, booleane, categoriche, ordinali, ecc. • Pesi potrebbero dover essere associati con variabili differenti in base all’applicazione o alla semantica dei dati • In funzione della misura di distanza, in alcuni casi sarà anche possibile misurare la qualità - bontà del risultato del clustering Data e Web Mining. - S. Orlando 9 Tipi di dati • Variabili numeriche • Variabili binarie • Variabili categoriche: nominali, ordinali • Variabili di tipo misto Data e Web Mining. - S. Orlando 10 Variabili numeriche (interval-scaled): Standardizzazione • Valori delle variabili/attributi misurati su scala lineare – Le differenze tra valori sono significative, indipendentemente dalle grandezze assolute dei valori in gioco • Necessario comunque standardizzare i dati – Per evitare dipendenze dall’unità di misura dalle variabile f – Calcola la deviazione assoluta media: dove mf è la media: – Calcola la misura standardizzata (z-score) zif=0 se xif=mf zif=±1 se |xif-mf | = |sf | – Deviazione assoluta media più robusta della deviazione standard • |xif - mf| non è elevato al quadrato, riducendo i problemi dovuti a outliers Data e Web Mining. - S. Orlando 11 Variabili numeriche: distanza • Distanze per misurare similarità o dissimilarità tra coppie oggetti • Minkowski distance dove i = (xi1, xi2, …, xip) e j = (xj1, xj2, …, xjp) sono due oggetti associati con vettori p-dimensionali, mentre q è un intero positivo • Se q = 1, d è la distanza Manhattan (L1 norm) – La distanza di Hamming, che è il numero di bits differenti tra due vettori binari, è una L1 norm Data e Web Mining. - S. Orlando 12 Variabili numeriche: distanza (cont.) • Se q = 2, d è la Distanza Euclidea (L2 norm): • Proprietà della distanza euclidea (spazio metrico) – d(i,j) ≥ 0 e d(i,i) = 0 (Positività) – d(i,j) = d(j,i) (Simmetria) – d(i,j) ≤ d(i,k) + d(k,j) (Disuguaglianza Triangolare) • q → ∞ “supremum” (Lmax norm, L∞ norm) – Massima differenza tra le varie componenti dei due vettori Data e Web Mining. - S. Orlando 13 Esempio di distanza di Minkowski Matrice di Distanza Data e Web Mining. - S. Orlando 14 Tutte le distanze sono metriche? • Non tutte le distanze sono metriche • Ad esempio, la distanza tra due variabili che esprimono le ore del giorno: – Stesso giorno o giorni consecutivi – d(1PM, 2PM) = 1 ora Non vale la proprietà di simmetria – d(2PM, 1PM) = 23 ore • Un altro esempio si distanza per cui non vale la proprietà di simmetria è la set difference tra due insiemi A e B, definito come – d(A,B) = |A-B| – Se A={1,2,3,4} e B={2,3,4} • d(A, B) = |A-B| = |{1}| = 1 • d(B, A) = |B-A| = |emptyset| = 0 • Un modo comune di rendere una misura simmetrica è la seguente, anche se certi casi potrebbe far perdere la semantica della misura stessa – d’(x, y) = d’(y, x) = (d(x, y) + d(y, x)) / 2 Data e Web Mining. - S. Orlando 15 Variabili binarie • Tabella di contingenza per due vettori binari i, j di p elementi: Oggetto j Oggetto i • Coefficiente di matching semplice (variabili simmetriche): sim(i, j)= q+t p • Coefficiente di Jaccard (variabili asimmetriche, valori 0 sono meno significativi): € Data e Web Mining. - S. Orlando 16 Dissimilarità usando Jaccard • Esempio – Y e P corrispondono a 1, mentre N corrisponde a 0 – Sesso è un attributo simmetrico (non considerato) – Gli altri attributi sono asimmetrici (valore N (0) è molto più probabile) Data e Web Mining. - S. Orlando 17 Cosine similarity • d1 e d2 sono “document vectors” – ciascun attributo è la frequenza di un dato termine del documento – vettori sparsi, le coppie 0-0 sono poco importanti – Cosine similarity (simile a Jaccard, per dati sparsi NON binari): cos( d1, d2 ) = (d1 • d2) / ( ||d1|| ||d2|| ) dove • indica il prodotto vettoriale, mentre ||d|| la lunghezza del vettore d. – misura del COSENO dell’angolo θ tra i due vettori • 90° = sim. uguale a 0 • Esempio: d1 = 3 2 0 5 0 0 0 2 0 0 d2 = 1 0 0 0 0 0 0 1 0 2 0° = similarità uguale a 1 θ d1 • d2= 3*1 + 2*0 + 0*0 + 5*0 + 0*0 + 0*0 + 0*0 + 2*1 + 0*0 + 0*2 = 5 ||d1|| = (3*3+2*2+0*0+5*5+0*0+0*0+0*0+2*2+0*0+0*0)0.5 = (42) 0.5 = 6.481 ||d2|| = (1*1+0*0+0*0+0*0+0*0+0*0+0*0+1*1+0*0+2*2) 0.5 = (6) 0.5 = 2.45 cos( d1, d2 ) = .31 Data e Web Mining. - S. Orlando 18 Pearson’s Correlation • La correlazione misura la relazione lineare tra due oggetti x e y, rappresentati con vettori di n misure numeriche rxy = !n i=1 (xi − x)(yi − y) (n − 1)sx sy sxe sy sono le deviazioni standard e x e y sono le medie dove • Nota che nella formula appare anche una misura nota come covarianza covxy = !n i=1 (xi − x)(yi − y) (n − 1) Data e Web Mining. - S. Orlando 19 Pearson’s Correlation • La correlazione va da -1 a 1 • Una correlazione di 1 (-1) significa che x e y hanno una correlazione perfetta positiva (negativa) 1. Es. di correlazione negativa = -1 (media = 0): x = (-3, 6, 0, 3, -6) xk = -3 yk y = (1, -2, 0, -1, 2) 2. Es. di correlazione positiva = 1: x = (3, 6, 0, 3, 6) xk = 3 yk y = (1, 2, 0, 1, 2) 3. Es. di correlazione = 0: x = (-3, -2, -1, 0, 1, 2, 3) yk = xk2 y = (9, 4, 1, 0, 1, 4, 9) La correlazione è ad esempio usata per confrontare due clienti che hanno effettuato il ranking dello stesso insieme di n prodotti: – Il vettore riporta i voti assegnati ai vari prodotti – Due clienti sono simili anche se il loro max e minimo voto assegnato ai vari prodotti non è identico (vedi esempio 1) • Data e Web Mining. - S. Orlando 20 Valutare la correlazione in modo visuale Scatter plots showing the similarity from –1 to 1. • • 21 coppie di vettori x e y, con 30 attributi casuali I plot “visualizzano” la correlazione tra coppie di attributi – Ogni cerchio corrisponde alla componente xi e yi dei due vettori, normalizzati in modo che cadano nell’intervallo [0-1] – Nota i valori della normalizzazione e la disposizione dei punti Data e Web Mining. - S. Orlando 21 Variabili nominali • Una variabile categorica che può avere più stati – Es.: rosso, giallo, blu, verde • Possiamo pensare ad una generalizzazione delle misure usate per le variabili binarie (da 2 valori ad n valori) considerando i mach – m : # di match, p : # totale di variabili sim(i, j)= m p • Possiamo codificare le variabili nominali con un gran numero di variabili binarie € – Una nuova var. binaria per ciascuno dei valori assunti da una variabile nominale – Possiamo così usare le stesse misure usate per le var. binarie Data e Web Mining. - S. Orlando 22 Variabili ordinali: trasformazione • Una variabile ordinale è in pratica una variabile nominale con un ordine tra i valori assunti • Assegniamo un rango numerico (rank) ad ogni valore assunto • Possiamo così trattare tali variabili, e calcolarne la dissimilarità, come se fossero interval-based – rimpiazziamo xif con il suo rango, dove Mf sono i valori diversi assunti da xif – possiamo trasformare i valori sull’intervallo [0, 1] rimpiazzando l’ iesimo valore della f-esima variabile con zif=0 se rif=1 zif=1 se rif=Mf Data e Web Mining. - S. Orlando 23 Variabili numeriche (ratio-scaled) • Sono valori numerici misurati su una scala non lineare di valori – Ad esempio, la crescita nel tempo di una popolazione di batteri – Scala esponenziale della misura y: y = A e±Bt • Questo può essere problematico per le misure di distanza associate, a causa della distorsione della scala – Es: distanze piccole tra valori campionati vicini allo zero, e distanze grandi tra valori lontani dallo zero • Soluzioni – applicare una trasformazione (logaritmica) in modo da trasformarli in interval-scaled, o – cosiderare i valori come ordinali, assegnando un rango … e applicare la distanza usata per variabili numeriche di tipo intervalscaled Data e Web Mining. - S. Orlando 24 Variabili di tipo diverso • Oggetti xi e xj caratterizzati da p attributi di tipo diversi – Numerici, nominali, ordinali, ecc. – xi = {xi1 xi2 …. xip } xj = {xj1 xj2 …. xjp } • Si può usare una formula pesata per rappresentare gli effetti delle distanze calcolate con metodi diversi (dove f è l’indice di un generico attributo) – δij(f) = 0 • se xif o xjf non esistono nei due oggetti i e j • se xif = xjf = 0 e l’attributo f è binario asimmetrico – altrimenti δij(f) = 1 Data e Web Mining. - S. Orlando 25 Variabili di tipo diverso – Se f è binario o nominale: dij(f) = 0 se xif = xjf , dij(f) = 1 altrimenti – Se f è numerico interval-scaled: usa distanza normalizzata – f è ordinale o ratio-scaled: calcola i ranghi rif e tratta zif come numerica interval-scaled – In pratica • tutti i vari dij(f) saranno compresi nell’intervallo [0-1] • il denominatore sarà maggiore del numeratore, e sarà uguale a p’, dove p’ < p è il numero di variabili che esistono in entrambi gli oggetti, e che non sono binarie asimmetriche Data e Web Mining. - S. Orlando 26 Curse (maledizione) of dimensionality • Quando le dimensioni (attributi) di un oggetto aumentano, i dati diventano sempre più sparsi nello spazio occupato • Le definizioni di distanza tra oggetti (ed anche di densità), critici per gli algoritmi di clustering e outlier detection, diventano meno significativi • 500 punti generati casualmente • Calcola la distanza max e min tra ogni coppia di punti (matrice di distanza) Data e Web Mining. - S. Orlando 27 Riduzione della dimensionalità • Scopo: – Evitare il fenomeno detto: curse of dimensionality – Ridurre tempo e spazio impiegato dagli algoritmi di mining – Permettere una più semplice visualizzazione dei dati – Per eliminare feature irrilevanti o rumore • Principali Tecniche dell’Algebra Lineare che si applicano a oggetti rappresentati come vettori – Principal Component Analysis (PCA) x2 – Singular Value Decomposition (SVD) • Scopo della PCA – Trovare un numero minore di dimensioni, su cui proiettare i punti originali, dove queste dimensioni catturano la più grande variazione nei dati (massimizzano la varianza) e x1 Data e Web Mining. - S. Orlando 28 Similarità vs. Dissimilarità • • Similarità – Misura numerica – Alta se gli oggetti sono più simili – Spesso nel range [0,1] Dissimilarità (distanza) – Misura numerica – Bassa quando gli oggetti sono differenti – Il minimo valore è spesso 0 – Il valore massimo spesso varia, a meno di normalizzazioni Data e Web Mining. - S. Orlando 29 Similarità vs. Dissimilarità • p e q sono valori di attributi di due oggetti Data e Web Mining. - S. Orlando 30 Una categorizzazione dei più importanti metodi di clustering • Partitional algorithms: Costruisci varie partizioni disgiunti e poi valutali sulla base di qualche criterio. Metodi iterativi. • Hierarchical algorithms: Crea una decomposizione gerarchica degli oggetti sulla base di qualche criterio • Density-based: basata su funzioni di densità degli oggetti • Grid-based: basata su una discretizzazione dello spazio multidimensionale (griglia composta da celle che ospitano i vari oggetti) • Model-based: Metodo statistico. Si ipotizza via via un modello per ciascun cluster: l’idea è quella di trovare il migliore assegnamento dei dati rispetto al modello Data e Web Mining. - S. Orlando 31 Partional vs. Hierarchical • Una prima distinzione è tra un tipo di clustering hierarchical o partitional • Partitional Clustering – Gli oggetti sono suddivisi in sottoinsiemi (cluster) che non si sovrappongono (disgiunti) – Ciascun oggetto appartiene ad un solo cluster • Hierarchical clustering – I cluster sono annidati, e organizzati all’interno di albero gerarchico Data e Web Mining. - S. Orlando 32 Partitional clustering Punti originali Partitional Clustering Data e Web Mining. - S. Orlando 33 Hierarchical Clustering Traditional Hierarchical Clustering Traditional Dendrogram Data e Web Mining. - S. Orlando 34 Altre caratterizzazioni dei metodi di clustering • Esclusivo vs. Non-esclusivo – Nel clustering non esclusivo, i punti possono appartenere a più cluster • Fuzzy vs. non-fuzzy – (fuzzy=sfuocato) – In fuzzy clustering, un punto appartiene ad ogni cluster con un peso compreso tra 0 e 1 – La somma dei pesi deve essere 1 – Probabilistic clustering • Parziale vs. completo – In alcuni casi vogliamo soltanto effettuare il clustering di una parte dei dati – Ad esempio, possiamo tralasciare punti che sono outliers rispetto agli altri Data e Web Mining. - S. Orlando 35 Tipi di Cluster: Ben-Separati • Cluster ben-separati – Un cluster è costituito da un insiemi di punti tali che per ogni punto appartenente ad un cluster, questo punto è più vicino (o più simile) ad ogni altro punto del proprio cluster rispetto a tutti gli altri punti Data e Web Mining. - S. Orlando 36 Tipi di Cluster: Center-based • Center-based – Un cluster è costituito da un insiemi di punti tali che per ogni punto appartenente ad un cluster, questo punto è più vicino (più simile) al “centro” del proprio cluster rispetto a tutti gli altri centri – Possibili centri: • Centroid: è una media di tutti i punti nel cluster • Medoid: il punto più rappresentativo Data e Web Mining. - S. Orlando 37 Tipi di Cluster: Contiguos Cluster • Contiguous Cluster (Nearest neighbor) – Un cluster è costituito da un insieme di punti tali che per ogni punto appartenente ad un cluster, questo punto è più vicino (più simile) ad uno o più punti appartenenti al proprio cluster rispetto a tutti gli altri punti Data e Web Mining. - S. Orlando 38 Tipi di Cluster: Density based • Density-based – Un cluster è una regione densa di punti – I cluster sono separati da regioni a bassa densità – Si usa questa nozione se i cluster sono irregolari, e se sono presenti rumori o outlier • Nota che, rispetto alla slide precedente – Le tre curve non formano dei cluster, e diventano rumore scartato dall’algoritmo – Non abbiamo il collegamento tra i due piccoli cluster circolari Data e Web Mining. - S. Orlando 39 Partitioning method • Partitioning method: Partiziona il database D di n oggetti in un insieme di k cluster • Dato un valore k, trova un partizionamento in k cluster che ottimizza il criterio di partizionamento scelto – Ricerche dell’ottimo globale (non computabili): enumerazione esaustiva di tutte le partizioni possibili – Metodi di ricerca euristici (minimo locale): algoritmi k-means e kmedoids – k-means (MacQueen’67): Ogni cluster è rappresentato dal centro (media) del cluster – k-medoids o PAM (Partition around medoids) (Kaufman & Rousseeuw’87): Ogni cluster è rappresentato da uno degli oggetti del cluster Data e Web Mining. - S. Orlando 40 Algoritmo K-Means • Dato k, l’algoritmo k-means è implementato in passi iterativi, ed individua cluster center-based: Scegli (in modo casuale) k punti che rappresentano i centroidi (means) iniziali dei cluster Repeat 1. Assegna ciascun oggetto al centro del cluster più vicino 2. Ricalcola i centroidi (punti medi) dei cluster trovati. Until Gli assegnamenti non cambiano (o cambiano poco) Data e Web Mining. - S. Orlando 41 Algoritmo K-Means • Esempio Data e Web Mining. - S. Orlando 42 Commenti sul K-Means • Forze – Relativamente efficiente: O(tknd), dove n è il # di oggetti, k è il # di cluster, t è il # di iterazioni, e d è il # di attributi. Normalmente abbiamo che k e t << n. Il calcolo può diventare oneroso per valori di d grandi. • Debolezze – Spesso termina su un ottimo locale. L’ ottimo globale può essere approssimato usando tecniche come: deterministic annealing e genetic algorithm – Può essere applicato solo quando il tipo di dato permette di definire la media (che serve per determinare i centroidi del cluster) • Problemi con dati categorici – Bisogna specificare in anticipo k, il numero di cluster – Ha altri problemi che dipendono dalle caratteristiche dei cluster presenti nei dati Data e Web Mining. - S. Orlando 43 Variazioni dei metodi K-Means • Esistono alcune varianti di k-means che hanno a che fare con – La selezione dei k means iniziali – Nuove misure di dissimilarità per trattare dati categorici – Strategie per calcolare i centroidi dei cluster Data e Web Mining. - S. Orlando 44 Due risultati differenti usando K-means Original Points Optimal Clustering Sub-optimal Clustering Data e Web Mining. - S. Orlando 45 L’importanza di scegliere i centroidi iniziali … Data e Web Mining. - S. Orlando 46 L’importanza di scegliere i centroidi iniziali … Data e Web Mining. - S. Orlando 47 Valutare il clustering prodotto • La misura di valutazione più comune è – Sum of the Squared Error (SSE) • Calcolo di SSE – Per ciascun punto p, l’errore è la distanza rispetto al centro (centroide, medoide) mi del cluster Ci di appartenenza – Per ottenere SSE, eleviamo al quadrato e sommiamo i vari errori • il quadrato può amplificare SSE in presenza di outlier SSE = k ! ! dist(p, mi ) 2 i=1 p∈Ci – Dati due clustering ottenuti con diversi run di K-means, possiamo scegliere quello che minimizza l’errore – Un modo semplicistico per ridurre SSE è aumentare K, il numero di cluster Data e Web Mining. - S. Orlando 48 Problemi legati ai cluster presenti nei dati • K-means ha problemi quando i cluster hanno differenti – Dimensioni – Densità – Forma non globulare • K-means ha ancora problemi quando i dati presentano outliers • Una soluzione è usare K alti (molti clusters) – I cluster trovati sono partizioni dei cluster effettivamente presenti – Necessario rimettere assieme le partizioni trovate Data e Web Mining. - S. Orlando 49 K-means e scelta iniziale dei centroidi • Possibili soluzioni – Run multiple – Campiona e usa un clustering gerarchico per determinare i centroidi iniziali – Seleziona più di K centroidi iniziali e poi seleziona tra questi • – Valutare la curva di SSE all’aumentare di K • – Seleziona quelli meglio separati (problemi con outlier) discusso in seguito Bisecting K-means (metodo gerarchico partitivo) Data e Web Mining. - S. Orlando 50 Limiti di K-means: Dimensioni differenti Original Points K-means Clusters Data e Web Mining. - S. Orlando 51 Limiti di K-means: Densità differenti Original Points K-means Clusters Data e Web Mining. - S. Orlando 52 Limiti di K-means: Forme non globulari Original Points K-means Clusters Data e Web Mining. - S. Orlando 53 Aumentiamo K per superare i problemi di K-means Original Points K-means Clusters Data e Web Mining. - S. Orlando 54 Aumentiamo K per superare i problemi di K-means Original Points K-means Clusters Data e Web Mining. - S. Orlando 55 Aumentiamo K per superare i problemi di K-means Original Points K-means Clusters Data e Web Mining. - S. Orlando 56 Pre e post processing per il K-means • Pre-processing – Normalizzare i dati – Rimuovere gli outlier • Post-processing – Eliminare i cluster piccoli che possono essere outlier – Spezzare i cluster ‘deboli’, es. con SSE relativamente alto – Unisci i cluster che sono ‘vicini’ e che hanno un SSE relativamente basso – E’ possibile usare queste strategie anche durante l’esecuzione Data e Web Mining. - S. Orlando 57 Bisecting K-means • Variante di of K-means che può produrre un clustering partitionale o gerarchico Data e Web Mining. - S. Orlando 58 Esempio di Bisecting K-means Data e Web Mining. - S. Orlando 59 Algoritmo K-medoids • Trova oggetti rappresentanti, chiamati medoids, per ogni cluster – Rispetto a K-means, possiamo applicare l’algoritmo anche se il tipo di dato non permette di definire la media (es. dati categorici) – Deve comunque essere possibile definire una nozione di distanza o similarità tra gli oggetti – Metodo più robusto in presenza di outliers • PAM (Partitioning Around Medoids, 1987) – Inizia da un insieme iniziale di medoids – Iterativamente tenta di • rimpiazzare uno dei medoid con un non-medoids • se il rimpiazzamento migliora la distanza totale SSE del nuovo clustering, mantieni la modifica – PAM funziona bene per piccoli dataset, ma non scala bene Data e Web Mining. - S. Orlando 60 Algoritmo K-medoids Scegli in modo arbitrario k medoids dagli oggetti da raggruppare Assegna i rimanenti oggetti al medoid più vicino (o più simile) Repeat 1. Seleziona in modo random un oggetto non-medoid (orandom) da scambiare con oj (vecchio medoid), e riassegna 2. Calcola il costo totale relativo allo nuovo clustering ottenuto scambiando oj con orandom 3. Se guadagno rispetto ad SSE, allora mantieni lo scambio Until non riusciamo a modificare i medoid Data e Web Mining. - S. Orlando 61 Casi possibili in seguito al riassegnamento di un medoid Scambiamo Oj con Orandom Oi P Oj Oi Oi Oj P Oi Oj P Orandom P riassegnato a Oi (cluster differente) Orandom P riassegnato a Orandom (stesso cluster) Oj Orandom P non viene riassegnato P Orandom P riassegnato a Orandom (cluster differente) Oggetto Medoid Relazione prima dello scambio Relazione dopo lo scambio Data e Web Mining. - S. Orlando 62 Hierarchical Clustering • Due tipi di clustering gerarchico – Agglomerative: • • • • Inizia con punti considerati come cluster individuali A ciascun passo, unisci le coppie di clusters più vicini Fino a quando rimane un solo cluster (o k cluster) E’ necessaria una nozione di prossimità tra cluster – Divisive: • • • • Inizia con un singolo cluster che ingloba tutti i punti A ciascun passo, spezza un cluster Fino a quando ogni cluster contiene un punto (o ci sono k cluster) E’ necessario scegliere quale cluster spezzare ad ogni passo • I metodi agglomerativi sono più usati Data e Web Mining. - S. Orlando 63 Hierarchical Clustering • • Usa la matrice delle distanze come criterio di clustering. Non bisogna specificare il numero k di cluster come input, ma è necessaria una condizione di terminazione Step 0 a b Step 1 Step 2 Step 3 Step 4 ab abcde c cde d de e Step 4 agglomerative (AGNES) Step 3 Step 2 Step 1 Step 0 divisive (DIANA) Data e Web Mining. - S. Orlando 64 AGNES (Agglomerative Nesting) • Usa la matrice delle distanze (di prossimità) e il metodo Single-Link (MIN distanza tra tutte le coppie di punti appartenenti a due cluster da unire) • Unisci i nodi (punti o cluster) che hanno la dissimilarità minima • Alla fine tutti i nodi appartengono allo stesso cluster • Sensibile a rumori e outlier 5 6 4 3 4 2 5 2 1 3 1 Hierarchical Clustering Dendrogram Data e Web Mining. - S. Orlando 65 Tipico algoritmo gerarchico agglomerativo • L’algoritmo è semplice 1. Calcola la matrice di prossimità 2. All’inizio, ogni punto è un singolo cluster 3. Repeat 4. Unisci i cluster più vicini 5. Aggiorna la matrice di prossimità 6. Until fino a quando rimane un singolo cluster • L’operazione chiave è il calcolo della vicinanza tra due cluster – Questo concetto di vicinanza costituisce la differenza principale tra algoritmi differenti Data e Web Mining. - S. Orlando 66 Algoritmo gerarchico agglomerativo: inizio • Iniziamo con cluster costituiti da punti individuali e una matrice di prossimità p1 p2 p3 p4 p5 ... p1 p2 p3 p4 p5 . . . Proximity Matrix Data e Web Mining. - S. Orlando 67 Algoritmo ger. agglomerativo: fase intermedia • Dopo qualche passo abbiamo dei cluster C1 C2 C3 C4 C5 C1 C3 C2 C4 C3 C4 C1 C5 C2 C5 Proximity Matrix Data e Web Mining. - S. Orlando 68 Algoritmo ger. agglomerativo: fase intermedia • Vogliamo unire C2 e C5, ma dobbiamo aggiornare la matrice C1 C2 C3 C4 C5 C1 C3 C2 C4 C3 C4 C1 C5 C2 C5 Proximity Matrix Data e Web Mining. - S. Orlando 69 Algoritmo ger. agglomerativo: dopo l’unione • Il problema è come aggiornare la matrice – Diverse misure per stabilire distanza/similarità C1 C1 C3 C2 U C5 C4 C2 U C5 C3 C4 ? ? ? ? ? C3 ? C4 ? C1 Proximity Matrix C2 U C5 Data e Web Mining. - S. Orlando 70 Come definire la similarità Inter-Cluster ? p1 Similarity? p2 p3 p4 p5 ... p1 p2 p3 p4 • MIN • MAX . • Group Average . • Distance Between Centroids p5 . Proximity Matrix Data e Web Mining. - S. Orlando 71 Come definire la similarità Inter-Cluster ? p1 p2 p3 p4 p5 ... p1 p2 p3 p4 • MIN • MAX . • Group Average . • Distance Between Centroids p5 . Proximity Matrix Data e Web Mining. - S. Orlando 72 Come definire la similarità Inter-Cluster ? p1 p2 p3 p4 p5 ... p1 p2 p3 p4 • MIN • MAX . • Group Average . • Distance Between Centroids p5 . Proximity Matrix Data e Web Mining. - S. Orlando 73 Come definire la similarità Inter-Cluster ? p1 p2 p3 p4 p5 ... p1 p2 p3 p4 • MIN • MAX . • Group Average . p5 Proximity Matrix . • Distance Between Centroids Data e Web Mining. - S. Orlando 74 Confronto tra metodi gerarchici 1 3 5 4 1 2 1 5 2 2 3 4 5 6 MIN MAX 5 2 3 3 4 6 1 4 1 5 2 5 4 2 3 3 6 Group Average 1 4 Data e Web Mining. - S. Orlando 75 DIANA (Divisive Analysis) • Algoritmo gerarchico divisive introdotto nel 1990 • Ordine inverso rispetto ad AGNES • Alla fine ciascun nodo forma un cluster Data e Web Mining. - S. Orlando 76 Complessità dei metodi gerarchici • Non scala bene: la complessità in tempo è O(n2), dove n è il numero totale di oggetti, poiché dobbiamo costruire la matrice completa delle distanze • Una volta che una decisione è stata presa relativamente all’agglomerazione/divisione di cluster, non possiamo disfarla • Schemi differenti hanno mostrato uno o più di questi problemi: – Sensibilità al rumore o agli outliers – Difficoltà nel gestire cluster di dimensioni differenti e forme convesse – Grandi cluster possono risultare suddivisi Data e Web Mining. - S. Orlando 77 Metodi di clustering basati sulla densità • Clustering basato sulla densità – Punti risultano “connessi”, ovvero assegnati allo stesso cluster, sulla base della densità • Caratteristiche principali – Scopre cluster di forma arbitraria – Gestisce bene i rumori/outlier presenti nel dataset – Singola scansione – Abbiamo bisogno di parametri riguardanti la densità come condizione di terminazione Data e Web Mining. - S. Orlando 78 Density-Based Clustering: Background • Due parametri per definire la densità: – Eps: Massimo raggio di vicinato di un certo punto – MinPts: Minimo numero di punti all’interno di un certo raggio Eps • Insiemi di punti all’interno di un certo raggio: – NEps(p): • {q ∈ D | dist(p,q) ≤ Eps} Directly density-reachable: Un punto p è directly density-reachable da un punto q rispetto a (Eps, MinPts) se – 1) p ∈ NEps(q) – 2) q è un punto core, ovvero: |NEps (q)| ≥ MinPts p q MinPts = 5 Eps = 1 cm Data e Web Mining. - S. Orlando 79 Density-Based Clustering: Background (II) • Density-reachable: (proprietà transitiva) – Un punto p è density-reachable da q se c’è una catena di punti p1, …, pn dove p1 = q e pn = p tali che pi+1 è directly density-reachable da pi • p p1 q Density-connected – Un punto p è density-connected ad un punto q se c’è un punto o tale che sia p e sia q sono density-reachable da o p q o Data e Web Mining. - S. Orlando 80 DBSCAN: Density Based Spatial Clustering of Applications with Noise • DBSCAN si basa sulla nozione di cluster basata sulla densità – Un cluster è definito come l’insieme massimo di punti connessi rispetto alla nozione di densità Data e Web Mining. - S. Orlando 81 DBSCAN • Un punto è un core point se ha un numero minimo di punti (MinPts) all’interno del suo raggio Eps – Questi punti diventeranno punti interni di un cluster. • Un border point ha meno di MinPts all’interno del suo Eps, ma esso è un “vicino” di un core point • Un noise point è un punto che non possiamo classificare né come core point e nè come border point Data e Web Mining. - S. Orlando 82 DBSCAN: L’algoritmo • Seleziona arbitrariamente un punto p • Se p è un punto core, individua tutti i punti densityreachable da p rispetto a Eps e MinPts, e forma un cluster – Aggiungi al cluster di p i punti directly density-reachable objects – Controlla ricorsivamente se tali punti sono a loro volta core, ecc. – Unisci via via i punti density-reachable • Se da p raggiungi un punto border p’ – nessun punto è density-reachable da p’ – per cui passa a considerare un altro punto del database non ancora considerato • Continua fino alla completa visita di tutti i punti Data e Web Mining. - S. Orlando 83 DBSCAN: esempio di funzionamento corretto Original Points Clusters Data e Web Mining. - S. Orlando 84 DBSCAN: punti core, border e noise Point types: core, border and noise Original Points Eps = 10, MinPts = 4 Data e Web Mining. - S. Orlando 85 DBSCAN: determinare EPS e MinPts • Idea: per i vari punti di un cluster, ci aspettiamo che i kth nearest neighbors stiano più o meno alla stessa distanza – • • Sempre che non ci sia un’alta variabilità della densità I punti Noise avranno il loro kth nearest neighbor ad una distanza più alta Allora, plottiamo le distanze (ordinate) di ogni punto dal suo kth nearest neighbor In questo caso, selezioniamo MinPts=4 e Eps=2800 Data e Web Mining. - S. Orlando 86 Commento sulla validità del clustering “The validation of clustering structures is the most difficult and frustrating part of cluster analysis. Without a strong effort in this direction, cluster analysis will remain a black art accessible only to those true believers who have experience and great courage.” Algorithms for Clustering Data, Jain and Dubes Data e Web Mining. - S. Orlando 87 Cluster trovati in Dati Random Random Points K-means DBSCAN Hierachical (MAX) Data e Web Mining. - S. Orlando 88 Cluster Validity • Come facciamo a validare la bontà di un cluster? • Perché valutare? – – – – Per evitare di trovare pattern quando invece trattasi di rumore Per comparare algoritmi diversi Per valutare due insiemi di cluster (due risultati globali) Per comparare due cluster Data e Web Mining. - S. Orlando 89 Cluster Validation: differenti aspetti • Determinare la clustering tendency di un data set – Una struttura non-random esiste realmente nei dati? – Qual è il numero corretto di cluster? • • Confrontare i risultati rispetto a conoscenze esterne Valutare i risultati con parametri interni, senza usare conoscenza pregressa • Nota che le stesse metodologie possono essere usate per confrontare due cluster, oppure due insiemi di cluster (clustering) ottenuti da un algoritmo Data e Web Mining. - S. Orlando 90 Misure per validare il clustering • External Index: – Misura quanto i cluster individuati corrispondono a etichette di classe fornite esternamente (conoscenza pregressa) • Entropia • Internal Index: – Misura la qualità del clustering senza informazione/ conoscenza esterna • Sum of Squared Error (SSE) • In letteratura sono spesso riferiti come criteri invece di indici – Comunque, il criterio è la strategia generale, mentre l’indice è la misura numerica che la implementa Data e Web Mining. - S. Orlando 91 Misurare la validità di un cluster con la correlazione (indice interno) • Due matrici – – • Calcola la correlazione tra due matrici – • Le matrici sono simmetriche, per cui solo la correlazione tra (n-1)/2 entry delle due matrici deve essere calcolata Alta correlazione – • Matrice di Prossimità (n×n) per gli n oggetti • Similarità tra ogni coppia di oggetti. Dovrebbe essere ≈ 1 per coppie che stanno nello stesso cluster Matrice di Incidenza (n×n) • Entry (i,j) = 1 : i due oggetti appartengono allo stesso cluster • Entry (i,j) = 0 : i due oggetti appartengono a cluster differenti I punti appartenenti allo stesso cluster sono vicini Misura non adatta per cluster costruiti sulla base della densità o contiguità spaziale dei punti Data e Web Mining. - S. Orlando 92 Misurare la validità di un cluster con la correlazione (indice interno) • Correlazione delle due matrici (incidenza e prossimità) per K-means su due diversi dataset Corr = -0.9235 Corr = -0.5810 Data e Web Mining. - S. Orlando 93 Uso della matrice di Similarità per validare il clustering in modo visuale • Basta ordinare righe (e colonne) rispetto alle etichette dei cluster Cluster 1 Cluster 2 Cluster 3 Data e Web Mining. - S. Orlando 94 Uso della matrice di Similarità per validare il clustering in modo visuale • I cluster in dati random non sono molto definiti K-means Data e Web Mining. - S. Orlando 95 Uso della matrice di Similarità per validare il clustering in modo visuale • La misura di similarità non è adatta per valutare DBSCAN DBSCAN Data e Web Mining. - S. Orlando 96 Misurare la validità di un cluster con SSE (indice interno) • Si può usare solo se è definito un prototipo (centroide/medoide) degli elementi del cluster • SSE è un buon indice per confrontare sia due clustering e sia due cluster • Può essere usato anche per stimare il numero di cluster ottimale nel K-means Calcola l’SSE per vari valori di K Scegli il K tale per cui l’angolazione della curva si stabilizza Data e Web Mining. - S. Orlando 97 Ancora misure interne: Cohesion e Separation overall validity = K ! validity(Ci ) 1=1 • Validity(Ci): Cohesion o Separation • Cluster Cohesion: Misura l’affinità tra gli oggetti di un cluster • Cluster Separation: Misura quanto i cluster sono distinti e ben separati rispetto agli altri cluster Data e Web Mining. - S. Orlando 98 Ancora misure interne: Cohesion e Separation • Prototype-Based Data e Web Mining. - S. Orlando 99 Ancora misure interne: Cohesion e Separation • Graph-Based Data e Web Mining. - S. Orlando 100 Ancora misure interne: Silhouette Coefficient • Il Silhouette Coefficient combina le idee della coesione e della separation (per singoli punti, cluster singoli, o risultati del clustering) • Per un punto i – Sia Ci il cluster di i – Calcola: ai = distanza media di i dagli altri punti di Ci – Calcola: bi = min per ogni cluster C, C≠Ci (distanza media di i dai punti del cluster C) – Silhouette Coefficient si per il punto i: si = (bi – ai) / max(ai, bi) Data e Web Mining. - S. Orlando 101 Ancora misure interne: Silhouette Coefficient • si = (bi – ai) / max(ai, bi) – Tra -1 e 1. – Caso -1 non desiderabile, perché questo succederebbe se ai > bi – Vorremmo avere un valore positivo (ovvero ai < bi ), con ai molto piccolo (≅ 0) • in questo caso si tende a 1 • Il coefficiente per un singolo cluster – media dei coefficienti di tutti i punti del cluster • Il coefficiente per un clustering completo – media dei coefficienti di tutti i punti Data e Web Mining. - S. Orlando 102 Misure esterne o supervised per cluster validity • Classification-based – Misure simili a quelle usate per valutare i classificatori sulla base della capacità di riconoscere correttamente l’appartenenza di un “test item” alla classe corretta – In questo vogliamo misurare la capacità dell’algoritmo di ritrovare le classi presenti nel test dataset • Come si fa a valutare? – si prende un dataset classificato, e quindi partizionato in classi disgiunte – si ignora l’etichetta classe – si clusterizza e si valuta il clustering ottenuto Data e Web Mining. - S. Orlando 103 Misure esterne o supervised per cluster validity • Misure dell’information retrieval – Precision e Recall • Data una query: – Tutti i documenti restituiti sono rilevanti? precision – Sono stati restituiti tutti i rilevanti? recall Se A sono i documenti restituiti e B i rivelanti • – – • | A B | precision = |A| | A B | recall = |B| C’è una misura che li mette assieme: € F (F-measure) che è la media armonica fra precision e recall – Misura – La media armonica € è più piccola della media aritmetica e geometrica 2 2 pr F= = 1 +1 p+ r p r Data e Web Mining. - S. Orlando 104 Misure esterne o supervised per cluster validity • Come usiamo precision, recall, F-measure per validare il risultato del clustering? • L’usiamo per validare un singolo cluster i rispetto alla classe j – parliamo di precisione pij e recall rij • • • • m è il numero totale di elementi da clusterizzare mi è il numero di elementi del cluster i mj è il numero di elementi della classe j mij è il numero di elementi del cluster i appartenenti alla classe j precision(i, j) = mij / mi recall(i, j) = mij / mj • Come estendiamo ad un clustering completo? – per ogni cluster scegliamo la massima precision, o la massima recall – sommiamo su tutti i cluster (precision, recall, F-measure) Data e Web Mining. - S. Orlando 105 Misure esterne o supervised per cluster validity • Purezza di un clustering: – stesso concetto della precisione – precision(i, j) = pij = mij / mi – ovvero, probabilità che un membro del cluster i appartenga alla classe j • • Purezza del cluster i: € Purezza del clustering: pi = max pij j uguale a 1 se tutti appartengono ad una sola classe K mi p = ∑ pi i=1 m Data e Web Mining. - S. Orlando 106 Misure esterne o supervised per cluster validity • Entropia di un clustering: – basato ancora sulla probabilità che un membro del cluster i appartenga alla classe j – pij = mij / mi L • Entropia del cluster i: ei = −∑ pij log pij j=1 K • Entropia del clustering: € mi e = ∑ ei i=1 m uguale a 0 se tutti appartengono ad una sola classe Data e Web Mining. - S. Orlando 107 External Measures of Cluster Validity: Entropy and Purity Data e Web Mining. - S. Orlando 108 External Measures of Cluster Validity: Correlazione tra Matrici di incidenza • Matrice di Incidenza per il clustering (n×n) – – • Matrice di Incidenza per le classi note (n×n) – – • • Entry (i,j) = 1 : i due oggetti appartengono allo stesso cluster Entry (i,j) = 0 : i due oggetti appartengono a cluster differenti Entry (i,j) = 1 : i due oggetti appartengono alla stessa classe Entry (i,j) = 0 : i due oggetti appartengono a classi differenti Possiamo calcolarne la correlazione Oppure misurare vicinanza tramite una misura di similarità per dati binari – f00 = numero di coppie i,j con classe differente e classe differente – f01 = numero di coppie i,j con classe differente e cluster uguale – f10 = numero di coppie i,j con classe uguale e cluster differente – f11 = numero di coppie i,j con classe uguale e cluster uguale f 11 jaccard _ sim = f 01+ f 10 + f 11 Data e Web Mining. - S. Orlando 109 Un tool per visualizzare il comportamento di algoritmi di clustering • http://www.cs.ualberta.ca/~yaling/Cluster/Applet/Code/Cluster.html Data e Web Mining. - S. Orlando 110 Conclusioni • • • • • • Le analisi di clustering raggruppano oggetti in base alla loro similarità Abbiamo visto che è possibile valutare la similarità rispetto a vari tipi di dati E’ possibile categorizzare gli algoritmi di clustering in metodi partitioning, hierarchical, density-based, grid-based, e model-based – Abbiamo solo visto una parte di questi metodi La scoperta di outlier è utile per vari campi, come scoperta di frodi ecc. – Algoritmi per la scoperta di outlier sono collegati a quelli di clustering – Esistono metodi basati sulla distanza, ma anche metodi basati su misure statistiche Clustering con vincoli – Le analisi di clustering possono avere vincoli da rispettare – Ad esempio, vincoli naturali esistono in database spaziali (ponti o strade in un GIS) che impediscono il clustering di oggetti “vicini” Clustering in database spazio-temporali – Necessitano di nuove nozioni di distanza, che considerino anche la dimensione tempo Data e Web Mining. - S. Orlando 111