Data e Web Mining. - S. Orlando 2
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 3
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 4
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 5
Bontà del clustering
• Un buon metodo di clustering produrrà cluster di alta qualità con – Alta similarità intra-class – Bassa similarità inter-class
Inter-cluster distances are
maximized Intra-cluster distances are
minimized
Data e Web Mining. - S. Orlando 6
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?
Four Clusters Two Clusters
Six Clusters
Data e Web Mining. - S. Orlando 7
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 8
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 9
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 10
Tipi di dati
• Variabili numeriche
• Variabili binarie
• Variabili categoriche: nominali, ordinali
• Variabili di tipo misto
Data e Web Mining. - S. Orlando 11
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)
– Deviazione assoluta media più robusta della deviazione standard • |xif - mf| non è elevato al quadrato, riducendo i problemi dovuti a outliers
zif=0 se xif=mf
zif=±1 se |xif-mf | = |sf |
Data e Web Mining. - S. Orlando 12
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 13
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 15
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 – 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
Non vale la proprietà di simmetria
Data e Web Mining. - S. Orlando 16
Variabili binarie
• Tabella di contingenza per due vettori binari i, j di p elementi:
• Coefficiente di matching semplice (variabili simmetriche):
• Coefficiente di Jaccard (variabili asimmetriche, valori 0 sono meno significativi):
Oggetto i
Oggetto j
€
sim(i, j)= q+tp
Data e Web Mining. - S. Orlando 17
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 18
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 0° = similarità uguale a 1
• Esempio:
d1 = 3 2 0 5 0 0 0 2 0 0 d2 = 1 0 0 0 0 0 0 1 0 2
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 19
Pearson’s Correlation
• La correlazione misura la relazione lineare tra due oggetti x e y, rappresentati con vettori di n misure numeriche
dove e sono le deviazioni standard
e e sono le medie
• Nota che nella formula appare anche una misura nota come covarianza
x ysx sy
covxy =!n
i=1(xi ! x)(yi ! y)(n! 1)
rxy =!n
i=1(xi ! x)(yi ! y)(n! 1)sxsy
Data e Web Mining. - S. Orlando 20
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) y = (1, -2, 0, -1, 2)
2. Es. di correlazione positiva = 1: x = (3, 6, 0, 3, 6) y = (1, 2, 0, 1, 2)
3. Es. di correlazione = 0: x = (-3, -2, -1, 0, 1, 2, 3) 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)
xk = -3 yk
xk = 3 yk
yk = xk2
Data e Web Mining. - S. Orlando 21
Valutare la correlazione in modo visuale
• 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
Scatter plots showing the similarity from –1 to 1.
Data e Web Mining. - S. Orlando 22
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
• 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
€
sim(i, j)=mp
Data e Web Mining. - S. Orlando 23
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’ i-esimo valore della f-esima variabile con
zif=0 se rif=1
zif=1 se rif=Mf
Data e Web Mining. - S. Orlando 24
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 interval-scaled
Data e Web Mining. - S. Orlando 25
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 26
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 27
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 28
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) – 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)
x2
x1
e
Data e Web Mining. - S. Orlando 29
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 30
Similarità vs. Dissimilarità
• p e q sono valori di attributi di due oggetti
Data e Web Mining. - S. Orlando 31
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 multi-dimensionale (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 32
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 34
Hierarchical Clustering
Traditional Hierarchical Clustering Traditional Dendrogram
Data e Web Mining. - S. Orlando 35
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 36
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 37
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 38
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 39
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 40
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 k-
medoids – 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 41
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 43
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 44
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 45
Due risultati differenti usando K-means
Original Points Optimal Clustering Sub-optimal Clustering
Data e Web Mining. - S. Orlando 48
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
– 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
SSE =k!
i=1
!
p!Ci
dist(p, mi)2
Data e Web Mining. - S. Orlando 49
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 50
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 • Seleziona quelli meglio separati (problemi con outlier)
– Valutare la curva di SSE all’aumentare di K • discusso in seguito
– Bisecting K-means (metodo gerarchico partitivo)
Data e Web Mining. - S. Orlando 51
Limiti di K-means: Dimensioni differenti
Original Points K-means Clusters
Data e Web Mining. - S. Orlando 52
Limiti di K-means: Densità differenti
Original Points K-means Clusters
Data e Web Mining. - S. Orlando 53
Limiti di K-means: Forme non globulari
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
Aumentiamo K per superare i problemi di K-means
Original Points K-means Clusters
Data e Web Mining. - S. Orlando 57
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 58
Bisecting K-means
• Variante di of K-means che può produrre un clustering partitionale o gerarchico
Data e Web Mining. - S. Orlando 60
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 61
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 62
Casi possibili in seguito al riassegnamento di un medoid
Oggetto Medoid Relazione prima dello scambio Relazione dopo lo scambio
Oi Oj
Orandom
Scambiamo Oj con Orandom
Oi
Oj
Orandom
P riassegnato a Oi (cluster differente)
P
P
P riassegnato a Orandom (stesso cluster)
Oi
Oj
Orandom
P
P non viene riassegnato
Oi Oj
Orandom P
P riassegnato a Orandom (cluster differente)
Data e Web Mining. - S. Orlando 63
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 64
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 Step 1 Step 2 Step 3 Step 4
b
d c
e
a a b
d e c d e
a b c d e
Step 4 Step 3 Step 2 Step 1 Step 0
agglomerative (AGNES)
divisive (DIANA)
Data e Web Mining. - S. Orlando 65
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
Hierarchical Clustering Dendrogram
1
2
3
4
5
6
1
2 3 4
5
Data e Web Mining. - S. Orlando 66
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 67
Algoritmo gerarchico agglomerativo: inizio
• Iniziamo con cluster costituiti da punti individuali e una matrice di prossimità
p1
p3
p5
p4
p2
p1 p2 p3 p4 p5 . . .
.
.
. Proximity Matrix
Data e Web Mining. - S. Orlando 68
Algoritmo ger. agglomerativo: fase intermedia
• Dopo qualche passo abbiamo dei cluster
C2 C1
C1
C3
C5
C4
C2
C3 C4 C5
C1
C4
C2 C5
C3
Proximity Matrix
Data e Web Mining. - S. Orlando 69
Algoritmo ger. agglomerativo: fase intermedia
• Vogliamo unire C2 e C5, ma dobbiamo aggiornare la matrice
C2 C1
C1
C3
C5
C4
C2
C3 C4 C5
C1
C4
C2 C5
C3
Proximity Matrix
Data e Web Mining. - S. Orlando 70
Algoritmo ger. agglomerativo: dopo l’unione
• Il problema è come aggiornare la matrice – Diverse misure per stabilire distanza/similarità
C1
C4
C2 U C5
C3 ? ? ? ?
?
?
?
C2 U C5 C1
C1
C3
C4
C2 U C5
C3 C4
Proximity Matrix
Data e Web Mining. - S. Orlando 71
Come definire la similarità Inter-Cluster ?
p1
p3
p5
p4
p2
p1 p2 p3 p4 p5 . . .
.
.
.
Similarity?
• MIN
• MAX
• Group Average
• Distance Between Centroids Proximity Matrix
Data e Web Mining. - S. Orlando 72
Come definire la similarità Inter-Cluster ?
p1
p3
p5
p4
p2
p1 p2 p3 p4 p5 . . .
.
.
. Proximity Matrix
• MIN
• MAX
• Group Average
• Distance Between Centroids
Data e Web Mining. - S. Orlando 73
Come definire la similarità Inter-Cluster ?
p1
p3
p5
p4
p2
p1 p2 p3 p4 p5 . . .
.
.
. Proximity Matrix
• MIN
• MAX
• Group Average
• Distance Between Centroids
Data e Web Mining. - S. Orlando 74
Come definire la similarità Inter-Cluster ?
p1
p3
p5
p4
p2
p1 p2 p3 p4 p5 . . .
.
.
. Proximity Matrix
• MIN
• MAX
• Group Average
• Distance Between Centroids
Data e Web Mining. - S. Orlando 75
Confronto tra metodi gerarchici
Group Average
MIN MAX
1
2 3
4
5
6 1
2
5
3 4
1
2 3
4
5
6 1
2 5
3
4 1
2 3
4
5
6 1
2
3
4
5
Data e Web Mining. - S. Orlando 76
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 77
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 78
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 79
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 80
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
• 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 p1
p q
o
Data e Web Mining. - S. Orlando 81
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 82
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 83
DBSCAN: L’algoritmo
• Seleziona arbitrariamente un punto p
• Se p è un punto core, individua tutti i punti density-reachable 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 84
DBSCAN: esempio di funzionamento corretto
Original Points Clusters
Data e Web Mining. - S. Orlando 85
DBSCAN: punti core, border e noise
Original Points Point types: core, border and noise
Eps = 10, MinPts = 4
Data e Web Mining. - S. Orlando 86
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 87
“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
Commento sulla validità del clustering
Data e Web Mining. - S. Orlando 88
Cluster trovati in Dati Random
Random Points
K-means
DBSCAN
Hierachical (MAX)
Data e Web Mining. - S. Orlando 89
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 90
• 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
Cluster Validation: differenti aspetti
Data e Web Mining. - S. Orlando 91
• 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
Misure per validare il clustering
Data e Web Mining. - S. Orlando 92
• Due matrici – 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
• 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 – I punti appartenenti allo stesso cluster sono vicini
• Misura non adatta per cluster costruiti sulla base della densità o contiguità spaziale dei punti
Misurare la validità di un cluster con la correlazione (indice interno)
Data e Web Mining. - S. Orlando 93
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 94
• Basta ordinare righe (e colonne) rispetto alle etichette dei cluster
Uso della matrice di Similarità per validare il clustering in modo visuale
Cluster 1 Cluster 2
Cluster 3
Data e Web Mining. - S. Orlando 95
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 96
Uso della matrice di Similarità per validare il clustering in modo visuale
DBSCAN
• La misura di similarità non è adatta per valutare DBSCAN
Data e Web Mining. - S. Orlando 97
• 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
Misurare la validità di un cluster con SSE (indice interno)
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 98
• 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
Ancora misure interne: Cohesion e Separation
overall validity =K!
1=1
validity(Ci)
Data e Web Mining. - S. Orlando 101
• 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)
Ancora misure interne: Silhouette Coefficient
Data e Web Mining. - S. Orlando 102
• 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
Ancora misure interne: Silhouette Coefficient
Data e Web Mining. - S. Orlando 103
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 104
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
– precision =
– recall =
• C’è una misura che li mette assieme: – Misura F (F-measure) che è la media armonica fra precision e recall – La media armonica
è più piccola della media aritmetica e geometrica
€
| AB || A |
€
| AB ||B |
€
F =2
1p + 1r
=2prp + r
Data e Web Mining. - S. Orlando 105
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 106
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 =maxjpij
€
p =mi
mi=1
K
∑ pi
uguale a 1 se tutti appartengono ad una sola classe
Data e Web Mining. - S. Orlando 107
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
• Entropia del cluster i:
• Entropia del clustering: €
ei = − pijj=1
L
∑ log pij
€
e =mi
mi=1
K
∑ ei
uguale a 0 se tutti appartengono ad una sola classe
Data e Web Mining. - S. Orlando 109
External Measures of Cluster Validity: Correlazione tra Matrici di incidenza
• Matrice di Incidenza per il clustering (n×n) – Entry (i,j) = 1 : i due oggetti appartengono allo stesso cluster – Entry (i,j) = 0 : i due oggetti appartengono a cluster differenti
• Matrice di Incidenza per le classi note (n×n) – 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
€
jaccard _ sim =f11
f 01+ f10 + f11
Data e Web Mining. - S. Orlando 110
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 111
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