Classificazione non supervisionata (Clustering)
Classificazione Non Supervisionata
(Clustering)
Con il termine Clustering [Jain99] [Duda01] (in italiano “addensamento”,
“raggruppamento”) si denota un famiglia di metodi non supervisionati (il
training set non è etichettato) in grado di individuare raggruppamenti
intrinseci (cluster) tra i dati nello spazio multidimensonale, e di creare in
corrispondenza di tali raggruppamenti le classi (incognite).
Non solo le classi del problema sono sconosciute, ma spesso nemmeno il
loro numero (s) è noto; ciò rende il problema molto complesso (NP hard).
Pur assumendo di conoscere s, il numero di soluzioni possibili è circa
sn/(s!), dove n è il numero di pattern (es: per n=100, s=5, soluzioni  1067).
D’altro canto il problema del clustering ha molteplici applicazioni in
diverse discipline (non solo PR, ma anche machine learning, data mining,
data base, ...) e pertanto ha sempre ricevuto un notevole interesse da parte
della comunità scientifica; la maggior parte delle soluzioni proposte
possono essere ricondotte alle due famiglie:
Clustering gerarchico: attraverso operazioni spesso di tipo “bottomup” organizza i dati in una sequenza innestata di gruppi che possono
essere visualizzati come un dendogramma (albero).
Clustering partizionale: individua solitamente attraverso algoritmi
euristici iterativi partizioni che minimizzano un dato criterio di
clustering: ad esempio la somma dei quadrati degli errori.
V&R
prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna
1
Classificazione non supervisionata (Clustering)
Criteri di clustering
I Criteri di clustering e algoritmi di clustering sono due cose ben distinte: i
primi descrivono cosa si vuol ottenere specificano il grado di ottimalità di
ogni soluzione ammissibile; i secondi, dato un criterio di clustering,
forniscono una procedura algoritmica per determinare soluzioni che lo
ottimizzano.
La maggior parte dei criteri di clustering sono definiti sulla base delle due
osservazioni seguenti: 1) i pattern all’interno dello stesso cluster devono
essere tra loro più simili rispetto a pattern appartenenti a cluster diversi; 2)
i cluster sono costituiti da nuvole di punti a densità relativamente elevata
separate da zone dove la densità e più bassa. Tra i diversi criteri possibili:
somma dei quadrati degli errori: minimizza i quadrati delle distanze
dai centri delle classi (detto anche criterio di minima varianza).
s
J e    x  xi ,
2
i 1 xPi
xi 
1
ni
x
xPi
altri criteri basati su varianza intraclasse: si tratta di una famiglia di
metodi tutti tesi a minimizzare la varianza all’interno delle classi:
1 s
J e   ni si ,
2 i 1
si 
  f s x,x' ,
n2
1
i
xPi x'Pi
ad esempio f s x , x'   x  x'
2
criteri basati su scattering: come nel caso di DA tendono a
minimizzare la varianza intra-classe e allo stesso tempo a
massimizzare quella inter-classe. La massimizzazione del funzionale
J1 descritto precedentemente (vedi DA) è considerato un buon
criterio di clustering.
V&R
prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna
2
Classificazione non supervisionata (Clustering)
Clustering gerarchico
Simile al modo di eseguire classificazione in tassonomia biologica, dove
ad esempio gli insetti vengono gerarchicamente classificati
specializzandone le specie a partire da famiglie molto ampie fino a
famiglie molto più ridotte.
Gli algoritmi possono essere bottom-up (agglomerativi) o top-down
(divisivi). Nel primo caso si parte cercando di aggregare singoli elementi e
ad ogni passo (livello) si aggregano in cluster gli elementi o i sotto-cluster
che sono tra loro più simili rispetto a una soglia (che dipende dal livello).
Nel secondo (più complesso e quindi meno utilizzato) si parte con un
singolo cluster e ad ogni livello si suddividono in sotto-cluster gli elementi
più diversi. In entrambi i casi il risultato può essere rappresentato
attraverso un dendogramma:
I metodi gerarchici (i più noti sono Single-Link e Complete-Link
[Duda01]) sono nella pratica utilizzati soprattutto quando i pattern sono
discretizzati e non appartengono a uno spazio metrico. In tal caso infatti
criteri di somiglianza “ad-hoc” possono essere implementati per
controllare l’aggregazione e la divisione.
V&R
prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna
3
Classificazione non supervisionata (Clustering)
Clustering partizionale iterativo
Gli algoritmi più comunemente utilizzati sono K-means (o la sua variante
Fuzzy K-means) e Expectation-Maximizaztion (EM).
K-means
(K-centri)
Si tratta di un metodo molto semplice computazionalmente e altrettanto
semplice da implementare, che ottimizza il criterio “somma dei quadrati
degli errori” :
Richiede in input il numero di cluster (s) e una soluzione iniziale
(partizione ). Fornisce buoni risultati a patto di fornire una
ragionevole soluzione di partenza e un numero adeguato di classi.
Il tipo di ottimizzazione è iterativa e locale; pertanto il metodo può
convergere a massimi locali della soluzione. La convergenza si
ottiene solitamente in pochi passi: < 10).
Identifica cluster iper-sferici nel caso in cui venga utilizzata la
distanza euclidea come misura di distanza tra i pattern o cluster iperellissoidali nel caso di distanza di Mahalanobis.
Nella sua versione base, l’algoritmo può essere così descritto:
Inizializza n, s, ={P1,...Ps}
do
{ calcola i centri dei cluster
x1 , x 2 ,...x s
ricalcola la partizione  riassegnando ogni pattern
al cluster per cui è minima la distanza dal centro.
} while (i cluster sono stati modificati)
I cluster vengono dunque iterativamente modificati a seguito del
ricalcolo del loro centro. L’algoritmo termina (converge) quando i centri
sono stabili e quindi le partizioni non cambiano.
V&R
prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna
4
Classificazione non supervisionata (Clustering)
K-means: un esempio (s = 3, n = 86)
soluzione iniziale
iterazione 1
iterazione 2
iterazione 4
iterazione 6
iter. 7 (convergenza)
(generato tramite l’applet: http://www.cs.mcgill.ca/~bonnef/project.html )
V&R
prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna
5
Classificazione non supervisionata (Clustering)
K-means: altri esempi
(generati tramite VA Lab)
3 classi – 8 iteraz.
Minimizzando
semplicemente le
distanze dai centri,
K-means non è in
grado di identificare
cluster dalla forma
non sferica.
11 classi – 31 iteraz.
anche in questo caso
non tutti i cluster
hanno forma sferica ...
V&R
prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna
6
Classificazione non supervisionata (Clustering)
K-means: varianti
Diverse varianti sono state proposte per risolvere il problema di generare
buone soluzioni iniziali e di determinare il numero di classi (clustering
validation).
Per minimizzare il rischio di convergenza verso minimi locali,
l’algoritmo può essere eseguito tante volte a partire da soluzioni
iniziali diverse: random, prodotte da un diverso euristico o magari da
un metodo evoluzionistico (algoritmo genetico).
Le tecniche di validazione tendono a valutare a posteriori la bontà
delle soluzioni prodotte per diversi valori di s, e a sceglierne una
sulla base di un criterio di validazione che tenga conto sia della bontà
della soluzione sia della sua complessità.
La variante Fuzzy del K-means consente a un pattern di appartenere con
un certo grado di probabilità a diverse classi. Pertanto, il criterio di
ottimizzazione diviene:
s
n

J fuz   P̂ wi | x j ,
i 1 j 1
b  x j  xi 2
dove P̂wi | x j ,  è la probabilità che dato il pattern xj e l’insieme  di
centri che definiscono la soluzione attuale, la classe di appartenenza sia wi;
b è un parametro che definisce quanto l’appartenenza ai diversi cluster
debba essere sfumata. Per dettagli implementativi si veda [Duda01].
Tale variante fornisce a volte una convergenza più robusta verso la
soluzione finale. D’altro canto uno svantaggio è legato al fatto che
l’appartenenza di un pattern a un cluster dipende implicitamente dal
numero di cluster, e se questo è specificato in modo incorretto si possono
ottenere cattive soluzioni.
V&R
prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna
7
Classificazione non supervisionata (Clustering)
Expectation Maximization (EM)
[Bilm98]
Si ipotizza che i dati nello spazio siano stati generati da un mix di
distribuzioni (“mixture” in inglese): ogni classe ha generato dati in
accordo con una specifica distribuzione, ma al termine della generazione i
pattern appaiono come prodotti da un’unica distribuzione multi-modale.
Obiettivo del clustering attraverso EM è quello di risalire (a partire dai
pattern del training set) ai parametri delle singole distribuzioni che li
hanno generati. A tal fine si ipotizza nota la forma delle distribuzioni e si
assume, per semplicità, che esse siano tutte dello stesso tipo. Il caso più
frequente è quello di mix di s distribuzioni multinormali (gaussiane), di
cui si vogliono stimare dai dati i parametri di definizione (s vettori medi +
s matrici di covarianza + s coefficienti ).
s
px |      i pi x | i 
i 1
i  μ i , i 
dove ={1, 2,...s, 1, 2,...s} è il vettore di parametri che definisce il
mix di distribuzioni.
EM è un particolare tipo di algoritmo che stima i parametri secondo il
criterio generale del maximum likelihood (in italiano “massima
verosimiglianza”).
V&R
prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna
8
Classificazione non supervisionata (Clustering)
EM: Maximum likelihood
Si assume che i pattern del training set X={x1,x2,...xn} siano indipendenti e
distribuiti con distribuzione p(.) controllata dal vettore di parametri .
Allora, la probabilità di aver ottenuto il training set X dal vettore di
parametri  è:
n
pX |     pxi |    L  | X 
i 1
La funzione L(|X) è detta likelihood dei parametri noti i dati. Il
likelihood è dunque visto come una funzione dei parametri a dati fissati; il
problema del maximum likelihood è quello di determinare il valore di
parametri che massimizza il likelihood:
*  arg max L  | X 

Spesso invece di massimizzare L(|X) viene massimizzato il logaritmo
del likelihood logL(|X) in quanto questo risulta più semplice dal punto di
vista numerico. D’altro canto essendo il logaritmo una funzione monotona
crescente, il risultato ottenuto è identico...
Ad esempio se p(.) è una distribuzione normale, il logaritmo del likelihood
assume la forma:
formula distribuzione normale
n
n
log L  | X   log  px    log px 
i 1
i 1
px  
1
2π 
d/2

1/ 2
 1

 exp  x  μ t  1 x  μ 
 2

e può essere massimizzato direttamente eguagliando a 0 le derivate rispetto
ai parametri incogniti (, ). Il valore ottenuto dalla massimizzazione è
quello atteso: ovvero  è la media dei vettori in X e  la loro matrice di
covarianza.
V&R
prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna
9
Classificazione non supervisionata (Clustering)
EM: Idea generale
Purtroppo la massimizzazione del likelihood non è sempre semplice come
nell’esempio precedente e tecniche particolari (come EM) devono essere
utilizzate per ottenere soluzioni al problema.
Expectation Maximization è un algoritmo nato per il calcolo del
maximum likelihood nel caso in cui i dati a disposizione X={x1,x2,...xn}
siano incompleti a causa della mancanza di alcuni valori y={y1,y2,...yn}.
Pertanto ogni pattern completo zi=[xi, yi], i=1..n è costituito da due parti di
cui solo la prima è nota. In realtà, nel caso di interesse (derivare i
parametri di un mix di distribuzioni gaussiane) i dati sono completi ma le
potenzialità di EM vengono utilizzate per rendere trattabile la complessità
della massimizzazione.
Obiettivo di EM è la massimizzazione del log-likelihood dei dati completi
o log-likelihood-completo = log L(|Z) = log L(|X,Y) = log p(X,Y | ).
A tal fine vengono eseguiti iterativamente (fino a convergenza) due passi:
Expectation: viene calcolato il valore atteso E(.) del log-likelihoodcompleto, dati il training set X e una stima di parametri i-1
all’iterazione corrente:

 
Q  | i 1  E log pX ,y | | X ,i 1

Il valor atteso (media) è calcolato rispetto alla variabile aleatoriaY
governata dalla distribuzione f(y|X, i-1) :

  log pX ,y |  f y | X, dy
E log pX ,y | | X ,i 1 
i 1
y
Maximization: determina il valore dei parametri che massimizzano il
valore atteso calcolato al passo di “Expectation”.

i  arg max Q ,i 1


V&R
prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna
10
Classificazione non supervisionata (Clustering)
EM: Mix di distribuzioni gaussiane
Il log-likelihood dei dati incompleti X è:
 s
log L  | X   log  pxi |    log    j p j xi |  j
 j 1
i 1
i 1

n

n





la cui massimizzazione diretta è molto difficile a causa della sommatoria
dentro al logaritmo.
Sfruttando le peculiarità di EM, si assume l’esistenza di una componente
nascosta yi (per ogni pattern) che indica quale delle s distribuzioni
gaussiane ha generato il pattern xi.
Assumendo di conoscere i valori di yi, i=1..n, il log-likelihood-completo
assume la forma:

n

log L  | X,y    log  yi p yi xi |  yi

i 1
sebbene gli yi non siano noti, una loro stima (o meglio una stima della loro
distribuzione) può essere derivata (teorema di Bayes) dai parametri g e
gi disponibili all’iterazione corrente:
(1)
p y | x ,   
g
i
i

 gy p yi x i |  gy

i
s
g
k 1 k

i

pk x i |  kg


p y | X ,
g
   p y | x ,  
n
g
i
i 1
i
a questo punto, il valore atteso del log-likelihood-completo può essere
espresso come:

  log L | X ,y  py | X ,  
Q  | i 1 
g
y
n
 n

   log  yi p yi xi |  yi   p yi | xi , g
y i 1
j 1






V&R
prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna
11
Classificazione non supervisionata (Clustering)
EM: Mix di distribuzioni gaussiane (2)
A seguito di alcuni passaggi (piuttosto ostici) durante i quali
l’ottimizzazione è eseguita eguagliando a 0 le derivate parziali rispetto ai
parametri incogniti si ottengono le seguenti formule per l’aggiornamento
incrementale dei parametri:
new
(2)  l

1 n
  p l | xi , g
n i 1

g


x
p
l
|
x
,


i
i
new
i 1
μl 
n
i1 pl | xi , g 
n
(3)
(4)
 lnew
 

n
i 1


 pl | x , 
p l | x i ,  g x i  μ lnew x i  μ lnew
n
i 1

T
g
i
In pratica, l’implementazione di EM può essere schematizzata come segue:
(esempio di implementazione: http://www-cse.ucsd.edu/users/ibayrakt/java/em/index.html)
Inizializza s, i (i=1..s), i={i, i} (i=1..s)
do { Expectation: calcola p(l| xi, g) per l=1..s, i=1..n
// formula (1)
Maximization: calcola newl, newl , newl per l=1..s // formule (2,3,4)
} while (i parametri i o i sono variati sostanzialmente)
L’algoritmo si dimostra convergere sempre, anche se per alcune soluzioni
iniziali la convergenza non è verso la soluzione ottima ma verso un
minimo locale. Come per k-means:
alcune soluzioni iniziali possono dare cattivi risultati
non è semplice determinare il numero ottimale di cluster
V&R
prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna
12
Classificazione non supervisionata (Clustering)
EM: Esempio
generato attraverso l’applet: [ http://www.etl.go.jp/~akaho/MixtureEM.html ]
[ http://diwww.epfl.ch/mantra/tutorial/english/gaussian/html/ ]
iter =1
iter =2
iter =4
iter =6
iter =8
iter =12
V&R
prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna
13
Classificazione non supervisionata (Clustering)
EM: altri esempi (1)
(generato tramite VA Lab)
3 classi – 40 iterazioni circa
A differenza di K-means, EM è in grado di identificare
nuvole gaussiane di punti a scale diverse
V&R
prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna
14
Classificazione non supervisionata (Clustering)
EM: altri esempi (2)
(generato tramite VA Lab)
11 classi – 200 iterazioni circa
V&R
prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna
15
Classificazione non supervisionata (Clustering)
Bibliografia
[Bilm98] J. A. Bilmes, “A Gentle Tutorial of the EM Algorithm and its Application for
Gaussian Mixture and Hidden Markov Models”, International Computer
Science Institute, TR ICSI-TR-97-021, 1998.
[Duda01] R.O. Duda, P.E. Hart e D.G. Stock, Pattern Classification, Wiley 2001.
[Jain99] A. K. Jain, M. M. Murth e P. J. Flynn, “Data Clustering: A Review”, ACM
Computing Reviews, Novembre 1999.
V&R
prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna
16