Clustering - Dipartimento di Scienze Ambientali, Informatica e

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