Clustering
Corso di Apprendimento Automatico
Laurea Magistrale in Informatica
Nicola Fanizzi
Dipartimento di Informatica
Università degli Studi di Bari
3 febbraio 2009
Corso di Apprendimento Automatico
Clustering
Sommario
Introduzione
Clustering iterativo basato su distanza
k -M EANS e sue generalizzazioni: k -M EDOIDS e F UZZY
k -M EANS
Clustering gerarchico
Clustering incrementale
Clustering basato su probabilità
Modello misto
EM
Clustering Bayesiano
Corso di Apprendimento Automatico
Clustering
Introduzione
Le tecniche di clustering sono utili nei casi in cui
non ci siano classi da predire
Scopo: dividere le istanze in gruppi naturali
I cluster possono essere:
disgiunti vs. sovrapposti
deterministici vs. probabilistici
piatti vs. gerarchici
Gli algoritmi possono anche essere:
divisivi vs. agglomerativi
I cluster ottenuti con K - MEANS, presentato in seguito, sono
disgiunti, deterministici e piatti
Trattazioni sul clustering:
Corso di Apprendimento Automatico
[Jain and Dubes, 1988]
[Kaufman and Rousseeuw, 1990]
Clustering
Rappresentazione I
Rappresentazione
semplice 2D
Corso di Apprendimento Automatico
Diagramma di Venn
(cluster sovrapposti)
Clustering
Rappresentazione II
Assegnazione probabilistica
Corso di Apprendimento Automatico
Dendrogramma
Clustering
Prossimità I
Molti algoritmi si basano su nozioni di similarità o prossimità
Matrice:
D = (dij )i=1,...,N j=1,...,N
In genere D è simmetrica e ∀i = 1, . . . , N : dii = 0
Date p misure xih sulle istanze (i = 1, . . . , N e h = 1, . . . , p), si
definiscono p funzioni di (dis)similarità dh sull’h-esimo attributo,
ad es. dh (xih , xjh ) = (xih − xjh )2
Per cui la dissimilarità tra le istanze di indice i e j:
X
D(xih , xjh ) =
dh (xih , xjh )
h
Corso di Apprendimento Automatico
Clustering
Prossimità II
attributi quantitativi: d(xi , xj ) = l(|xi − xj |)
oppure la correlazione ρ(xi , xj )
attributi ordinali:
supponendo che si possano assumere M valori, questi
possono essere mappati su: i−1/2
M , per i = 1, . . . , M
e quindi usare misure quantitative
attributi categorici:
supponendo che si possano assumere M valori,
si può costruire una matrice L simmetrica a diagonali nulle
e tale che Lrs = 1 per r 6= s
o usare altre loss function
Corso di Apprendimento Automatico
Clustering
Prossimità III
Combinazione delle misure di dissimilarità
D(xi , xj ) =
X
wh · dh (xih , xjh )
h
con
P
h
wh = 1
Per la scelta dei pesi: wh = 1/sh
con
1 XX
sh = 2
(xih − xjh )2 = 2 · varh
N
i
j
varh stima sul campione della varianza dell’attributo h-esimo
Corso di Apprendimento Automatico
Clustering
Prossimità IV
Valori mancanti per un certo attributo:
eliminare le istanze
abbondanza di dati
considerare la media dei valori dell’attributo
oppure la mediana
o la moda
considerare il valore mancante un ulteriore valore speciale
Corso di Apprendimento Automatico
Clustering
k -M EANS
Clusterizzare dati in k gruppi (k predefinito):
1
Scegliere k centroidi
es. casualmente
2
Assegnare le istanze ai cluster
basandosi sulla distanza dai centroidi
3
4
Ri-calcolare i centroidi dei cluster
Tornare al passo 1
fino ad avverare un criterio di convergenza
Corso di Apprendimento Automatico
Clustering
k -M EANS – osservazioni I
L’algoritmo minimizza la distanza quadratica delle istanze
dai centroidi
I risultati possono variare significativamente
a seconda della scelta dei centri iniziali
può rimanere intrappolato in un minimo locale
Per incrementare la probabilità di trovare un ottimo globale:
far ripartire l’algoritmo con una diversa scelta di centroidi
Puo essere applicato ricorsivamente con k = 2
B ISECTING k - MEANS
Corso di Apprendimento Automatico
Clustering
k -M EANS – osservazioni II
centroidi iniziali
partizione iniziale
iterazione #2
iterazione #20
Corso di Apprendimento Automatico
Clustering
Calcolo veloce delle distanze I
Si possono usare kD-trees o ball trees
Costruire l’albero, che rimane statico, per tutte le istanze
In ogni nodo: immagazzinare il numero delle istanze e la
somma di tutte le istanze
Ad ogni iterazione, scendere nell’albero e trovare a quale
cluster ogni nodo appartenga
La discesa si può fermare non appena si trovi un nodo che
appartiene interamente ad un particolare cluster
Usare delle statistiche conservate in ogni nodo per
calcolare nuovi centri:
somma dei vettori, numero di punti, . . .
Corso di Apprendimento Automatico
Clustering
Calcolo veloce delle distanze II
Esempio
Corso di Apprendimento Automatico
Clustering
Quanti cluster ?
Come scegliere k in k -M EANS ?
Possibilità:
Scegliere k che minimizzi la distanza quadratica dai centri
mediata da un processo di cross-validation
Usare una distanza quadratica penalizzata sui dati di
training (es. usando un criterio MDL)
Applicare k -M EANS ricorsivamente con k = 2 e
usare un criterio di stop (es. basato su MDL)
I centroidi iniziali per i sotto-cluster possono essere scelti
lungo le direttrici di massima varianza nel cluster
(lontane dal centroide del cluster padre un’unitaà di
deviazione standard in ogni direzione)
Implementato nell’algoritmo X- MEANS
[Moore and Pelleg, 2000], nel quale si usa il BIC (Bayesian
Information Criterion [Kass and Wasserman, 1995]) invece
del MDL
Corso di Apprendimento Automatico
Clustering
k -M EDOIDS I
Generalizzazione del k -M EANS
in caso non si possano definire centroidi
Si utilizzano diversi rappresentanti dei cluster {mi , . . . , mk }
medoide del cluster Cj :
istanza del cluster che minimizza la distanza media dagli altri
mj = argmin
xr ∈Cj
Corso di Apprendimento Automatico
X
D(xr , xs )
xs ∈Cj
Clustering
k -M EDOIDS II
Algoritmo k -M EDOIDS
Inizializzare i medoidi: {mj }j=1,...,k
Ripetere
1
Minimizzare l’errore totale assegnando ogni istanza al
medoide (corrente) più vicino:
Per i = 1, . . . , N eseguire
C(i) ← argmin D(xi , mj )
1≤j≤k
2
Ricalcolare medoidi:
Per j = 1, . . . , k eseguire
mj ← argmin
xr ∈Cj
X
xs ∈Cj
Fino alla convergenza
Corso di Apprendimento Automatico
Clustering
D(xr , xs )
k -M EDOIDS III
Esempio dissimilarità tra nazioni
(da [Hastie et al., 2001])
matrice di prossimità riordinata
Corso di Apprendimento Automatico
Clustering
F UZZY k -M EANS I
Generalizzazione del k -M EANS:
grado di appartenenza ad al cluster i-esimo in [0, 1]
Corrisponde a P(Cj |xi , θ) (normalizzate)
Si utilizzano diversi rappresentanti dei cluster {µ1 , . . . , µk }
Funzione obiettivo da minimizzare:
XX
L=
(P(Cj |xi , θ))b kxi − µj k2
i
j
Annullando le derivate di ∂L/∂µj e ∂L/∂ P̂j si ha:
P
(P(Cj |xi ))b xi
µj = Pi
b
i (P(Cj |xi ))
1
(1/dij ) b−1
P(Cj |xi ) = P
1
b−1
r (1/dir )
Corso di Apprendimento Automatico
Clustering
dij = kxi −µj k2
F UZZY k -M EANS II
Algoritmo k - MEDOIDS
Inizializzare: µj e P(Cj |xi ) per i = 1, . . . , N, j = 1, . . . , k
Ripetere la classificazione delle istanze in base al
prototipo più vicino
1
2
ricalcolare ogni µj
ricalcolare le probabilità P(Cj |xi )
e normalizzarle
fino alla convergenza (nessun cambiamento)
Corso di Apprendimento Automatico
Clustering
Clustering gerarchico I
Algoritmi
top-down (divisivi): partono da un gruppo unico e lo
dividono ad ogni livello; il gruppo da dividere è quello meno
coeso
bottom-up (agglomerativi): si parte da gruppi composti
dalle singole istanze e che vengono fusi via via
gruppi con la più alta similarità
In genere questi algoritmi non richiedono k ma una misura
di dissimilarità tra gruppi
Degli N − 1 livelli scegliere quello con il clustering più
”naturale”; sono state proposte molte statistiche
[Bezdek and Pal, 1998, Halkidi et al., 2001]
Dunn, Hubert, Davies-Bouldin, Silhouette, Gap, . . .
Corso di Apprendimento Automatico
Clustering
Clustering gerarchico II
Corso di Apprendimento Automatico
Clustering
Approcci agglomerativi I
ad ogni livello occorre scegliere i cluster da fondere
dati due cluster Ci e Cj la loro dissimilarità si basa su
quella dei loro elementi:
single linkage (SL)
dSL (Ci , Cj ) =
min
d(xi , xj )
max
d(xi , xj )
xi ∈Ci ,xj ∈Cj
complete linkage (CL)
dCL (Ci , Cj ) =
xi ∈Ci ,xj ∈Cj
average group linkage (GL)
dGL (Ci , Cj ) =
Corso di Apprendimento Automatico
1
|Ci ||Cj |
X
xi ∈Ci ,xj ∈Cj
Clustering
d(xi , xj )
Approcci agglomerativi II
Corso di Apprendimento Automatico
Clustering
Approcci divisivi I
meno investigati dei precedenti
algoritmi ricorsivi ricavabili da k -means (k -medoids):
ad ogni livello si individua il cluster meno coeso da dividere
si applica un algoritmo per dividere questo cluster in k
sotto-cluster
fino ad avere diviso tutti i cluster o altro criterio di stop
scelta del cluster da dividere:
massimo diametro [Kaufman and Rousseeuw, 1990]:
∆(C) = max d(xi , xj )
xi ,xj ∈C
massima dissimilarità media:
d̄(C) =
Corso di Apprendimento Automatico
1
|C|
X
xi ∈C,xj ∈C
Clustering
d(xi , xj )
Approcci divisivi II
Corso di Apprendimento Automatico
Clustering
Approcci incrementali
Approccio euristico
C OBWEB
C LASSIT
[Fisher, 1987]
[Gennari et al., 1997]
Formare incrementalmente una gerarchia di cluster
Inizialmente:
l’albero consiste in un nodo-radice vuoto
Quindi:
Aggiungere istanze una alla volta
Aggiornare l’albero appropriatamente ad ogni passaggio
Per l’aggiornamento: trovare la foglia destra per un’instanza
Può comportare la ristrutturazione dell’albero
Decisioni sull’aggiornamento basate sul criterio di category
utility
Corso di Apprendimento Automatico
Clustering
Category Utility
Category utility [Gluck and Corter, 1985]
Loss function quadratica definita dalle probabilita condizionate:
P
CU(C1 , . . . , Ck ) =
l
P(Cl )
P P
i
j (P(ai
= vij | Cl )2 − P(ai = vij )2 )
k
Ogni istanza in una diversa categoria
=⇒ il numeratore diventa:
n−
P P
i
j
P(ai = vij )2
↑
numero di attributi
Corso di Apprendimento Automatico
Clustering
← massimo
Ristrutturazione: fusione e suddivisione
Evitare la dipendenza dall’ordine di presentazione delle istanze
Fusione
Calcolare la CU per tutte le coppie di nodi (costoso)
Trovare un nodo-ospite per la nuova istanza tra nodi allo
stesso livello: annotare nodo migliore + seconda scelta
nodo migliore: posto per l’istanza
(a meno che non si preferisca costruire un cluster proprio)
considerare la fusione del nodo ospite + seconda scelta
Suddivisione
identificare il miglior nodo-ospite
fusione svantaggiosa
considerare la suddivisione del nodo migliore
Corso di Apprendimento Automatico
Clustering
Esempio I
ID
a
b
c
d
e
f
g
h
i
j
k
l
m
n
Outlook Temp. Humidity Windy
Sunny
Hot
High
False
Sunny
Hot
High
True
Overcast Hot
High
False
Rainy
Mild
High
False
Rainy
Cool
Normal False
Rainy
Cool
Normal
True
Overcast Cool
Normal
True
Sunny
Mild
High
False
Sunny
Cool
Normal False
Rainy
Mild
Normal False
Sunny
Mild
Normal
True
Overcast Mild
High
True
Overcast Hot
Normal False
Rainy
Mild
High
True
Corso di Apprendimento Automatico
Clustering
Esempio II
ID
a
b
c
d
e
f
g
h
i
j
k
l
m
n
Outlook Temp. Humidity Windy
Sunny
Hot
High
False
Sunny
Hot
High
True
Overcast Hot
High
False
Rainy
Mild
High
False
Rainy
Cool
Normal False
Rainy
Cool
Normal
True
Overcast Cool
Normal
True
Sunny
Mild
High
False
Sunny
Cool
Normal False
Rainy
Mild
Normal False
Sunny
Mild
Normal
True
Overcast Mild
High
True
Overcast Hot
Normal False
Rainy
Mild
High
True
Corso di Apprendimento Automatico
Fusione
Clustering
Esempio III
ID Outlook Temp. Humidity Windy
A Sunny
Hot
High
False
B Sunny
Hot
High
True
C Overcast Hot
High
False
D Rainy
Mild
High
False
Corso di Apprendimento Automatico
Clustering
Attributi Numerici
Si assume una distribuzione
normale:
2
f (a) = √ 1 exp(− (a−µ)
)
2σ 2
(2π)σ
quindi
P
j
P(ai = vij )2 ⇔
R
f (ai )2 dai =
√1
2 πσi
pertanto
P
CU(C1 , C2 , . . . , Ck ) =
l
P(Cl )
P P
i
k
P
diventa CU(C1 , C2 , . . . , Ck ) =
2
2
j (P(ai =vij |Cl ) −P(ai =vij ) )
l
1
P(Cl ) 2√
π
P
1
i ( σil
− σ1 )
i
k
Problema: una sola instanza in un nodo porta a varianza
nulla
minima varianza pre-specificata
parametro acuity:
misura dell’errore in un singolo campione
Corso di Apprendimento Automatico
Clustering
Dataset IRIS
Corso di Apprendimento Automatico
Clustering
Cut-off
Corso di Apprendimento Automatico
Clustering
Clustering probabilistico
Problemi dell’approccio euristico:
Suddivisione in k cluster ?
Ordine degli esempi ?
Sono sufficienti le operazioni di ristrutturazione ?
Il risultato raggiunge almeno localmente la minima category
utility?
Prospettiva probabilistica =⇒
cercare i cluster più verosimili date le osservazioni
Inoltre: un’istanza appartiene ad ogni cluster
con una certa probabilità
Corso di Apprendimento Automatico
Clustering
Composizioni finite
Si modellano i dati usando una composizione (mixture) di
distribuzioni
Ogni cluster corrisponde ad una distribuzione
governa le probabilità dei valori degli attributi per quel
cluster
Finite mixtures: numero finito di cluster
Le singole distribuzioni sono (di solito) Normali
Si combinano le distribuzioni usando pesi relativi ai cluster
Corso di Apprendimento Automatico
Clustering
Modello composto a 2-classi
Corso di Apprendimento Automatico
Clustering
Uso del modello composto
Probabilità che l’istanza x appartenga al cluster A:
P(A | x) =
con
f (x; µ, σ) =
√1
2πσ
P(x | A)P(A)
f (x; µA , σA )pA
=
P(x)
P(x)
2
)
exp(− (x−µ)
2σ 2
Probabilità di un’istanza dati i cluster:
X
P(x | {C1 , . . . , Ck }) =
P(x | Ci )P(Ci )
i
Corso di Apprendimento Automatico
Clustering
Imparare i cluster
Si assuma:
di conoscere che il numero di cluster k
Imparare i cluster ?
determinare i loro parametri
ossia medie e deviazioni standard
Criterio di valutazione:
Probabilità dei dati di training dati i cluster
Algoritmo EM
trova un massimo locale della likelihood
Corso di Apprendimento Automatico
Clustering
Algoritmo EM I
EM = Expectation-Maximization
Generalizza K - MEANS in senso probabilistico
Procedura iterativa:
passo E expectation:
Calcolare la probabilità di appartenenza ai cluster per ogni
istanza
passo M maximization:
Stimare i parametri della distribuzione a partire dallle
probabilità determinate
Immagazzinare le probabilità come pesi delle istanze
Stop quando il miglioramento è trascurabile
Corso di Apprendimento Automatico
Clustering
Algoritmo EM II
Stimare i parametri dalle istanze pesate
µA =
σA =
w1 x1 + w2 x2 + · · · + wn xn
w1 + w2 + · · · + wn
w1 (x1 − µ)2 + w2 (x2 − µ)2 + · · · + wn (xn − µ)2
w1 + w2 + · · · + wn
Stop quando si satura la log-likelihood
Log-likelihood:
X
log(pA P(xi | A) + pB P(xi | B))
i
Corso di Apprendimento Automatico
Clustering
Estensione del modello composto
Più di due distribuzioni: facile
Parecchi attributi: facile – assumendone l’indipendenza
Attributi correlati: difficile
modello congiunto: distribuzione normale bivariata
con una matrice di covarianza (simmetrica)
n attributi: serve stimare n + n(n + 1)/2 parametri
Corso di Apprendimento Automatico
Clustering
Altre estensioni
Attributi nominali: facile se indipendenti
Attributi nominali correlati: difficile
Due attributi correlati =⇒ ν1 ν2 parametri
Valori mancanti: facile
Possibilità di usare altre distribuzioni diverse dalla normale:
log-normale se è dato un minimo predeterminato
log-odds se limitato superiormente ed inferiormente
Poisson per attributi che rappresentano conteggi interi
Usare la cross-validation per stimare k
Corso di Apprendimento Automatico
Clustering
Clustering Bayesiano
Problema: tanti parametri =⇒ EM soffre di
sovradattamento
Approccio Bayesiano: si attribuisce ad ogni parametro una
distribuzione di probabilità a priori
Si incorpora la probabilità a priori nel computo totale della
likelihood
Si penalizza l’introduzione di parametri
Es. lo stimatore di Laplace per attributi nominali
Si può anche avere una probabilità a priori sul numero di
cluster
Implementazione: AUTO C LASS
[Cheeseman and Stutz, 1995]
Corso di Apprendimento Automatico
Clustering
Discussione
Diminuisce la dipendenza tra attributi ?
passo di pre-elaborazione
Es. usare l’analisi delle componenti principali
Si può usare per completare i valori mancanti
Principale vantaggio del clustering probabilistico:
Si può stimare la likelihood dei dati
usabile poi per confrontare modelli differenti in modo
obiettivo
Corso di Apprendimento Automatico
Clustering
Clustering concettuale
In una seconda fase succesiva al clustering (non
supervisionato) è possibile interpretare i cluster tramite
l’apprendimento supervisionato
passo di post-elaborazione: conceptual clustering
[Stepp and Michalski, 1986]
Ogni cluster rappresenta una classe di istanze per la quale
costruire un concetto in forma insensionale
Per ogni cluster
es. positivi istanze del cluster
es. negativi istanze degli altri cluster disgiunti
Corso di Apprendimento Automatico
Clustering
Fonti
A.K. Jain, M.N. Murty, P.J. Flynn: Data Clustering: A
Review. ACM Computing Surveys, 31(3), 264–323, 1999
I. Witten & E. Frank: Data Mining: Practical Machine
Learning Tools and Techniques, Morgan Kaufmann
R. Duda, P. Hart, D. Stork: Pattern Classification, Wiley
T. Hastie, R. Tibshirani, J. Friedman: The Elements of
Statistical Learning, Springer
T. M. Mitchell: Machine Learning, McGraw Hill
Corso di Apprendimento Automatico
Clustering
Bibliografia I
Bezdek, J. and Pal, N. (1998).
Some new indexes of cluster validity.
IEEE Transactions on Systems, Man, and Cybernetics, 28(3):301–315.
Cheeseman, P. and Stutz, J. (1995).
Bayesian classification (AutoClass): Theory and results.
In Fayyad, U., Piatetsky-Shapiro, G., Smyth, P., and Uthurusamy, R.,
editors, Advances in Knowledge Discovery and Data Mining, pages
153–180. AAAI Press.
Fisher, D. (1987).
Knowledge acquisition via incremental conceptual clustering.
Machine Learning, 2(2):139–172.
Gennari, I., Langley, P., and Fisher, D. (1997).
Models of incremental concept formation.
Artificial Intelligence, 40:11–61.
Corso di Apprendimento Automatico
Clustering
Bibliografia II
Gluck, M. and Corter, J. (1985).
Information, uncertainty, and utility of categories.
In Proceedings of the Annual Conference of the Cognitive Science
Society, pages 283–287. Lawrence Erlbaum.
Halkidi, M., Batistakis, Y., and Vazirgiannis, M. (2001).
On clustering validation techniques.
Journal of Intelligent Information Systems, 17(2-3):107–145.
Jain, A. and Dubes, R. (1988).
Algorithms for Clustering Data.
Prentice Hall, Englewood Cliffs, NJ.
Kass, R. and Wasserman (1995).
A reference bayesian test for nested hypotheses and its relationship to
the Schwarz criterion.
Journal of the American Statistical Association, 90:928–934.
Corso di Apprendimento Automatico
Clustering
Bibliografia III
Kaufman, L. and Rousseeuw, P. (1990).
Finding Groups in Data: an Introduction to Cluster Analysis.
John Wiley & Sons.
Moore, A. and Pelleg, D. (2000).
X-means: Extending k-means with efficient estimation of the number of
clusters.
In Kaufmann, M., editor, Proceedings of the 17th International
Conference on Machine Learning, pages 727–734.
Stepp, R. E. and Michalski, R. S. (1986).
Conceptual clustering of structured objects: A goal-oriented approach.
Artificial Intelligence, 28(1):43–69.
Corso di Apprendimento Automatico
Clustering