Clustering
Salvatore Orlando
Data Mining. - S. Orlando 1
Cos’è un’analisi di clustering
•
Cluster: collezione di oggetti/dati
– Simili rispetto a ciascun oggetto nello stesso cluster
– Dissimili rispetto agli oggetti in altri cluster
• Analisi di clustering
– Raggruppare oggetti in cluster
• Clustering è anche definito come unsupervised classification:
– Non abbiamo classi predefinite
• Applicazioni tipiche
– Come uno strumento stand-alone per cercare di capire come i dati
sono distribuiti
– Come passo di preprocessing per altri algoritmi
Data Mining. - S. Orlando 2
Applicazioni
•
•
•
•
Image Processing & Pattern Recognition
Analisi di dati spaziali
– Creazione di mappe tematiche nei GIS
Scienze Economiche (market research)
WWW
– Classificazione di documenti
– Clustering di Weblog per scoprire gruppi di pattern accessi simili
Data 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 al loro uso all’interno
di database di 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 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
•
La qualità del risultato del clustering dipende
– dalla misura di similarità usata
– dallo specifico algoritmo usato
•
La qualità del clustering è anche misurato in base alla sua abilità di
scoprire
– alcuni o tutti i pattern nascosti
Data Mining. - S. Orlando 5
Requisiti di un buon metodo di clustering
•
Scalabilità
•
Abilità di trattare con tipi di attributi differenti
•
Scoprire cluster con forme arbitrarie
•
Dovrebbe essere minima la conoscenza di dominio per determinare gli
attributi in input
•
Robusto per poter trattare con rumori e outlier
•
Non sensibile 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 Mining. - S. Orlando 6
Tipi di dati
ƒ Matrice dei dati
– (two modes)
– n oggetti con p attributi
– Tabella relazionale
ƒ Matrice di dissimilarità
– (one mode)
– d(i, j) misura di
dissimilarità tra
oggetti i e i
– d(i, j) ≅ 0
 x 11

 ...
x
 i1
 ...
x
 n1
...
x 1f
...
...
...
...
x if
...
...
...
...
...
...
...
 0
 d(2,1)

 d(3,1 )

 :
 d ( n ,1)
x nf
0
d ( 3,2 )
:
d ( n ,2 )
0
:
...
x 1p 

... 
x ip 

... 
x np 







... 0 
oggetti molto simili
Data Mining. - S. Orlando 7
Misura la qualità del clustering
•
Metrica di Dissimilarità/Similarità:
– Similarità espressa in termini di una funzione di distanza:
d(i, j)
• Funzione qualità che misura la “bontà” di un cluster.
•
Le definizioni di funzioni di distanza sono molto differenti per
– interval-scaled, booleane, categoriche, ordinali, ecc.
•
Pesi dovrebbero essere associati con variabili differenti in base
all’applicazione o alla semantica dei dati
Data Mining. - S. Orlando 8
Tipi di dati
•
Variabili numeriche
•
Variabili binarie
•
Variabili categoriche: nominali, ordinali
•
Variabili di tipo misto
Data Mining. - S. Orlando 9
Variabili numeriche (interval-scaled)
•
Standardizzazione dei dati
– per evitare la dipendenza sull’unità di misura scelta per ogni variabile f
•
Calcola la deviazione
assoluta
s f = 1n (| x1 f −
m f | + | x2media:
− m f | +...+ | xnf − m f |)
f
dove:
m f = 1n (x1 f + x2 f
+ ... +
xnf )
.
•
Calcola la misura standardizzata (z-score)
•
La deviazione assoluta media è più robusta della deviazione standard
xif − m f
zif =
sf
– |xif - mf| non è elevato al quadrato, riducendo i problemi dovuti a outliers
Data Mining. - S. Orlando 10
Variabili numeriche: distanza
•
Distanze per misurare similarità o dissimilarità tra coppie oggetti
•
Minkowski distance
d (i, j) = q (| x − x |q + | x − x |q +...+ | x − x |q )
i1
j1
i2
j2
ip
jp
dove i = (xi1, xi2, …, xip) e j = (xj1, xj2, …, xjp) sono due oggetti pdimensionali, e q è un intero positivo
•
Se q = 1, d è la distanza Manhattan
d(i, j) =| x − x | +| x − x | +...+| x − x |
i1 j1 i2 j2
ip jp
Data Mining. - S. Orlando 11
Variabili numeriche: distanza (cont.)
• Se q = 2, d è la Distanza Euclidea:
d (i, j) = (| x − x |2 + | x − x |2 +...+ | x − x |2 )
i1
j1
i2
j2
ip
jp
•
Proprietà
– d(i,j) ≥ 0
– d(i,i) = 0
– d(i,j) = d(j,i)
– d(i,j) ≤ d(i,k) + d(k,j)
• Possiamo pesare le variabili, ottenendo così una misura di distanza
pesata
Data Mining. - S. Orlando 12
Variabili binarie
•
Una tabella di contingenza per coppie di dati binari:
Oggetto j
Oggetto i
1
0
sum
1
q
r
q+r
0
s
t
s +t
sum q + s r + t
•
p
Coefficiente di matching semplice (variabili simmetriche):
d ( i , j ) = r +p s
•
Coefficiente di Jaccard (variabili asimmetriche, valori 0 sono meno
significativi):
r+s
d (i , j ) = q +
r+s
Data Mining. - S. Orlando 13
Dissimilarità usando Jaccard
•
Esempio
Nome
Jack
Mary
Jim
Sesso
M
F
M
Febbre
Y
Y
Y
Tosse
N
N
P
Test-1
P
P
N
Test-2
N
N
N
Test-3
N
P
N
Test-4
N
N
N
– Sesso è un attributo simmetrico (non considerato)
– Gli altri attributi sono asimmetrici
– Y e P corrispondono a 1, mentre N corrisponde a 0
0 + 1
d ( jack , mary ) =
= 0 . 33
2 + 0 + 1
1 + 1
d ( jack , jim ) =
= 0 . 67
1 + 1 + 1
1 + 2
d ( jim , mary ) =
= 0 . 75
1 + 1 + 2
Data Mining. - S. Orlando 14
Variabili nominali
•
Una variabile che può avere più stati
– Es.: rosso, giallo, blu, verde
– Possiamo pensare ad una generalizzazione delle var. binarie, da 2 a n
• Anche le misure ottenute sono generalizzazioni
•
m: # di matches,
p: # totale di variabili
•
Possiamo decodificare le variabili nominali con un gran numero di variabili
binarie
−
m
p
d (i, j ) =
p
– 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 Mining. - S. Orlando 15
Variabili ordinali
•
Una variabile ordinale è in pratica una variabile nominale con un ordine tra i
valori assunti
– Può essere discreta o continua
– Possiamo assegnare un rango numerico (rank) ad ogni valore assunto
•
Possiamo così trattare tali variabili come interval-based
– rimpiazziamo xif con il suo rango, dove Mf sono i valori diversi assunti da
xif
rif ∈ {1,..., M f }
– Mappiamo i valori di ciascuna variabile sull’intervallo [0, 1] rimpiazzando l’
i-esimo valore della f-esima variabile con
z
if
r if − 1
=
M f − 1
– Possiamo quindi calcolare la dissimilarità tra variabili ordinali come se
fossero variabili numerico di tipo interval-scaled
Data Mining. - S. Orlando 16
Variabili numeriche (ratio-scaled)
•
Sono valori numerici misurati su una scala non lineare di valori
– Scala esponenziale
•
Questo può essere problematico per le misure di distanza associate, a
causa della distorsione della scala
– Distanze piccole tra valori consecutivi vicini allo zero
– Distanze grandi tra valori lontani dallo zero
•
Soluzioni
– applicare una trasformazione (logaritmica) in modo da trasfomarli in
interval-scaled, oppure
– considerare i valori come ordinali, assegnando un rango …
e applicare la distanza usata per variabili numeriche di tipo interval-scaled
Data Mining. - S. Orlando 17
Variabili di tipo diverso
•
Oggetti caratterizzati da p attributi diversi
– Numerici, nominali, ordinali, ecc.
• Si può usare una formula pesata per rappresentare gli effetti delle
distanze calcolate con metodi diversi
d (i, j ) =
Σ
δ
d
p
( f )
( f )
f = 1
ij
ij
p
( f )
f = 1
ij
Σ
δ
– δij(f) = 0
• se xif o xjf non esistono nei due oggetti i e j
• se xif = xjf = 0 ed f è binaria asimmetrica
– altrimenti
δij(f) = 1
Data Mining. - S. Orlando 18
Variabili di tipo diverso
d (i, j ) =
Σ
δ
d
p
( f )
( f )
f = 1
ij
ij
p
( f )
f = 1
ij
δ
Σ
– Se f è binaria o nominale:
dij(f) = 0 se xif = xjf ,
dij(f) = 1 altrimenti
– Se f è numerica interval-based: usa distanza normalizzata
d
( f )
ij
=
| x if − x jf |
max
h
x
hf
− min
h
x
hf
– f è ordinale o ratio-scaled: calcola i ranghi rif e tratta zif come numerica
interval-scaled
z if
=
r
M
−1
if
f
−1
– 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 asimmetrici
Data Mining. - S. Orlando 19
Una categorizzazione dei più importanti
metodi di clustering
•
Partitioning algorithms: Costruisci varie partizioni e poi valutali sulla base di
qualche criterio. Metodi iterativi.
•
Hierarchy 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 Mining. - S. Orlando 20
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
– Ciascun oggetto appartiene ad un solo cluster
•
Hierarchical clustering
– I cluster sono annidati, e organizzati all’interno di albero gerarchico
Data Mining. - S. Orlando 21
Partitional clustering
6
6
4
4
5
5
2
2
1
1
3
Punti originali
3
Partitional Clustering
Data Mining. - S. Orlando 22
Hierarchical Clustering
5
6
0.2
4
3
4
2
5
2
1
3
0.15
1
0.1
0.05
0
Traditional Hierarchical Clustering
1
3
2
5
4
6
Traditional Dendrogram
Data Mining. - S. Orlando 23
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 Mining. - S. Orlando 24
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 Mining. - S. Orlando 25
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 Mining. - S. Orlando 26
Tipi di Cluster: Contiguos Cluster
•
Contiguous Cluster (Nearest neighbor)
– Un cluster è costituito da un insiemi 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 Mining. - S. Orlando 27
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 Mining. - S. Orlando 28
Partitioning method
•
Partitioning method: Partiziona il database D di n oggetti in un insieme
di k cluster
•
Dato un k, trova un partizionamento in k cluster che ottimizza il criterio
di partizionamento scelto
– Ricerche dell’ottimo globale (non fattibili): enumerazione esaustiva
di tutte le partizioni possibili
– Metodi di ricerca euristici (più fattibili): 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 Mining. - S. Orlando 29
Algoritmo K-Means
•
Dato k, l’algoritmo k-means è implementato in passi iterativi:
Scegli in modo casuale k punti che rappresentano i centroidi
(means) iniziali dei cluster
Repeat
1. Assegna ciascun oggetto al cluster più vicino (il cui centro risulta il
più vicino all’oggetto dato)
2. Calcola i centroidi (punti medi) dei cluster.
Until Gli assegnamenti non cambiano (o cambiano poco)
Data Mining. - S. Orlando 30
Algoritmo K-Means
•
Esempio
Data Mining. - S. Orlando 31
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.
– Spesso termina su un ottimo locale. L’ ottimo globale può essere
trovato usando tecniche come: deterministic annealing e genetic
algorithm
• Debolezze
– 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 Mining. - S. Orlando 32
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 calculare i centroidi dei cluster
Data Mining. - S. Orlando 33
Valutare il clustering prodotto
•
La misura di valutazione più comune è
– Sum of the Squared Error (SSE)
•
Calcolo di SSE
– Per ciascun punto, l’errore è la distanza rispetto al centro (centroide,
medoide) del cluster di appartenenza
– Per ottenere SSE, eleviamo al quadrato e sommiamo i vari errori
– 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
• In ogni caso un buon clustering (con una valore piccolo di K) può
risultare avere un SSE migliore di un clustering cattivo (con un grande
valore di K)
Data Mining. - S. Orlando 34
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 Mining. - S. Orlando 35
Limiti di K-means: Dimensioni differenti
Original Points
K-means Clusters
Data Mining. - S. Orlando 36
Limiti di K-means: Densità differenti
Original Points
K-means Clusters
Data Mining. - S. Orlando 37
Limiti di K-means: Forme non globulari
Original Points
K-means Clusters
Data Mining. - S. Orlando 38
Aumentiamo K per superare i problemi di K-means
Original Points
K-means Clusters
Data Mining. - S. Orlando 39
Aumentiamo K per superare i problemi di K-means
Original Points
K-means Clusters
Data Mining. - S. Orlando 40
Aumentiamo K per superare i problemi di K-means
Original Points
K-means Clusters
Data Mining. - S. Orlando 41
Algoritmo K-Medoids
•
Trova oggetti rappresentanti, chiamati medoids, per ogni cluster cluster
– Rispetto a K-means, possiamo applicare l’algoritmo anche se il tipo di
dato non permette di definire la media (es. dati categorici)
– 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 del nuovo clustering, mantieni
la modifica
– PAM funziona bene per piccoli dataset, ma non scala bene
Data Mining. - S. Orlando 42
Algoritmo K-medoids
Scegli in modo arbitrario k medoids dagli oggetti da raggruppare
Repeat
1. Assegna i rimanenti oggetti al medoid più vicino (o più simile)
2. Seleziona in modo random un oggetto non-medoid (orandom) da scambiare
con oj (vecchio medoid)
3. Calcola il costo totale SSE relativo allo nuovo clustering ottenuto
scambiando oj con orandom
4. Se guadagno rispetto ad SSE, allora mantieni lo scambio
Until non riusciamo a modificare i medoid
Data Mining. - S. Orlando 43
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
Orandom
P riassegnato a Orandom
Oj
Orandom
P non viene riassegnato
P
Orandom
P riassegnato a Orandom
Oggetto
Medoid
Relazione prima dello scambio
Relazione dopo lo scambio
Data Mining. - S. Orlando 44
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 Mining. - S. Orlando 45
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 Mining. - S. Orlando 46
AGNES (Agglomerative Nesting)
•
Usa il metodo Single-Link (MIN) e la matrice delle distanze relative
•
Unisci i nodi che hanno la dissimilarità minima
•
Alla fine tutti i nodi appartengono allo stesso cluster
•
Sensibile a rumori e outlier
5
6
0.2
4
3
4
2
5
2
1
3
0.15
1
0.1
0.05
0
Hierarchical Clustering
1
3
2
5
4
6
Dendrogram
Data Mining. - S. Orlando 47
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 Mining. - S. Orlando 48
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 Mining. - S. Orlando 49
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 Mining. - S. Orlando 50
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
C5
C2
Proximity Matrix
Data Mining. - S. Orlando 51
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 Mining. - S. Orlando 52
Come definire la similarità Inter-Cluster ?
p1
Similarity?
p2
p3
p4 p5
...
p1
p2
p3
p4
•
MIN
•
MAX
.
•
Group Average
.
•
p5
Distance Between Centroids
.
Proximity Matrix
Data Mining. - S. Orlando 53
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 Mining. - S. Orlando 54
Come definire la similarità Inter-Cluster ?
p1
p2
p3
p4 p5
...
p1
p2
p3
p4
•
MIN
•
MAX
.
•
Group Average
.
p5
.
•
Distance Between Centroids
•
Other methods driven by an objective function
Proximity Matrix
– Ward’s Method uses squared error
Data Mining. - S. Orlando 55
Come definire la similarità Inter-Cluster ?
p1
p2
p3
p4 p5
...
p1
p2
p3
p4
•
MIN
•
MAX
.
•
Group Average
.
p5
∑ distance(p , p )
distance(Clusteri , Clusterj ) =
•
pi ∈Clusteri
p j ∈Clusterj
i
j
Proximity Matrix
.
|Clusteri |∗|Clusterj |
Distance Between Centroids
Data Mining. - S. Orlando 56
Confronto tra metodi gerarchici
1
3
5
5
1
2
2
1
2
3
4
4
MIN
6
5
5
MAX
2
3
3
4
6
1
4
1
5
2
5
2
3
3
4
Group Average
6
1
4
Data Mining. - S. Orlando 57
DIANA (Divisive Analysis)
•
Algoritmo gerarchico divisive introdotto nel 1990
•
Ordine inverso rispetto ad AGNES
•
Alla fine ciscun node forma un cluster
10
10
10
9
9
9
8
8
8
7
7
7
6
6
6
5
5
5
4
4
4
3
3
3
2
2
2
1
1
1
0
0
0
1
2
3
4
5
6
7
8
9
10
0
0
1
2
3
4
5
6
7
8
9
10
0
1
2
3
4
5
6
7
8
9
10
Data Mining. - S. Orlando 58
Complessità dei metodi gerarchici
•
Non scala bene: la complessità in tempo è O(n2), dove n è il numero totale di
oggetti
•
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 Mining. - S. Orlando 59
Metodi di clustering basati sulla densità
•
Clustering basato sulla densità
– Concetto di punti connessi sulla base della densità
•
Caratteristiche principali
– Scopre cluster di forma arbitraria
– Gestisce bene i rumori presenti nel dataset
– Singola scansione
– Abbiamo bisogno di parametri riguardanti la densità come condizione di
terminazione
Data Mining. - S. Orlando 60
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
•
Numero 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)
p
– 2) q è un punto core, ovvero:
|NEps (q)| ≥ MinPts
MinPts = 5
q
Eps = 1 cm
Data Mining. - S. Orlando 61
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 Mining. - S. Orlando 62
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à
Scopre cluster di forma arbitraria in database spaziali con rumore/outlier
•
Data Mining. - S. Orlando 63
DBSCAN: L’algoritmo
•
Seleziona arbitrariamente un punto p
•
Individua tutti i punti density-reachable da p rispetto a Eps e
MinPts.
•
Se p è un punto core, forma un cluster
•
Se p è un punto border, nessun punto è density-reachable da p,
per cui passa a considerare il prossimo punto del database.
•
Continua fino alla completa visita di tutti i punti
Data Mining. - S. Orlando 64
DBSCAN: esempio di funzionamento corretto
Clusters
Original Points
Data Mining. - S. Orlando 65
DBSCAN: punti core, border e noise
Point types: core,
border and noise
Original Points
Eps = 10, MinPts = 4
Data Mining. - S. Orlando 66
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 Mining. - S. Orlando 67