data mining - unich.it · 2020. 2. 3. · 03/02/20 data mining - analisi di raggruppamento 11 altre...
TRANSCRIPT
Data MiningAnalisi di raggruppamento (Clustering)
Prof. Gianluca AmatoCorso di Laurea Magistrale in “Digital Marketing”
Università “G. d’Annunzio” di Chieti-PescaraUltimo aggiornamento: 3 feb 2020
03/02/20 Data Mining - Analisi di raggruppamento 2
Introduzione
03/02/20 Data Mining - Analisi di raggruppamento 3
Cosa è l’analisi di raggruppamento?
● Detta anche cluster analysis.● Trovare gruppi di oggetti tali che oggetti nello stesso gruppo
siano tra di loro simili (o in qualche modo correlati), mentre oggetti in gruppi distinti siano diversi (o non correlati).
Inter-cluster distances are maximized
Intra-cluster distances are
minimized
03/02/20 Data Mining - Analisi di raggruppamento 4
Applicazioni della cluster analysis
● Comprensione (understanding)
● Raggruppare documenti correlati, raggrupprare geni e proteine che hanno funzionalità simili, raggruppare titoli azionari in base alla loro fluttuazione, raggruppare clienti in base ai loro acquisti
● Riepilogo (summarization)● Analisi che restituiscono
prototipi di cluster● Ridurre la dimensione di
grandi insiemi di dati (riduzione della numerosità)
Clustering precipitation in Australia
Discovered Clusters Industry Group
1 Applied-Matl-DOWN,Bay-Network-Down,3-COM-DOWN,
Cabletron-Sys-DOWN,CISCO-DOWN,HP-DOWN, DSC-Comm-DOWN,INTEL-DOWN,LSI-Logic-DOWN,
Micron-Tech-DOWN,Texas-Inst-Down,Tellabs-Inc-Down, Natl-Semiconduct-DOWN,Oracl-DOWN,SGI-DOWN,
Sun-DOWN
Technology1-DOWN
2 Apple-Comp-DOWN,Autodesk-DOWN,DEC-DOWN,
ADV-Micro-Device-DOWN,Andrew-Corp-DOWN, Computer-Assoc-DOWN,Circuit-City-DOWN,
Compaq-DOWN, EMC-Corp-DOWN, Gen-Inst-DOWN, Motorola-DOWN,Microsoft-DOWN,Scientific-Atl-DOWN
Technology2-DOWN
3 Fannie-Mae-DOWN,Fed-Home-Loan-DOWN, MBNA-Corp-DOWN,Morgan-Stanley-DOWN
Financial-DOWN
4 Baker-Hughes-UP,Dresser-Inds-UP,Halliburton-HLD-UP,
Louisiana-Land-UP,Phillips-Petro-UP,Unocal-UP, Schlumberger-UP
Oil-UP
03/02/20 Data Mining - Analisi di raggruppamento 5
Cosa non è la cluster analysis?
● Semplici raggruppamenti e aggregazioni● Raggruppare un insieme di dati sulla base di specifiche ben definite
– Dividere gli studenti in gruppi sulla base della prima lettera del cognome
– Dividere i clienti sulla base della provincia di residenza– Ad esempio, quello che si può fare con i nodi GroupBy e Pivoting di
KNIME● Nella cluster analysis, i raggruppamenti vengono creati sulla base
dei dati● Raggruppamento e Classificazione
● Nell’analisi classificazione abbiamo un attributo che vogliamo predirre, nell’analisi di raggruppamento no.
● La classificazione si chiama anche apprendimento supervisionato, mentre la cluster analysis è apprendimento non supervisionato.
03/02/20 Data Mining - Analisi di raggruppamento 6
Tipi di clustering
03/02/20 Data Mining - Analisi di raggruppamento 7
La nozione di cluster è ambigua
Quanti cluster ci sono?
Four Clusters Two Clusters
Six Clusters
03/02/20 Data Mining - Analisi di raggruppamento 8
Tipi di raggruppamento
● Un raggruppamento (clustering) è un insieme di gruppi (cluster).
● Importante distinzione tra raggruppamento basato su partizioni e gerarchico.
● Raggruppamento basato su partizioni● Divisione degli oggetti in sottoinsiemi non sovrapposti
tali che ogni oggetto si trova in esattamente un sottoinsieme.
● Raggruppamento gerarchico● Un insieme di gruppi annidati organizzati ad albero.
03/02/20 Data Mining - Analisi di raggruppamento 9
Clustering basato su partizioni
Original Points A Partitional Clustering
03/02/20 Data Mining - Analisi di raggruppamento 10
Clustering gerarchico
Hierarchical Clustering
Another Hierarchical Clustering Another Dendrogram
Dendrogram
p4p1
p3
p2
p4 p1
p3
p2
p4p1 p2 p3
p4p1 p2 p3
03/02/20 Data Mining - Analisi di raggruppamento 11
Altre proprietà di un clustering
● Esclusivo vs non esclusivo● In un raggruppamento non esclusivo, lo stesso oggetto
può appartenere a più cluster● Può rappresentare classi multiple o punti “sulla
frontiera” tra due cluster● Fuzzy vs non fuzzy
● Nel clustering fuzzy, un oggetto appartiene ad ogni cluster con un peso compreso tra 0 e 1
● Analogo è il caso del clustering probabilistico● Parziale vs completo
● Nel clustering parziale, alcuni oggetti possono non appartenere a nessun cluster
03/02/20 Data Mining - Analisi di raggruppamento 12
Tipi di cluster
03/02/20 Data Mining - Analisi di raggruppamento 13
Tipi di cluster
● Cluster ben separati● Cluster basati su prototipi● Cluster basati sulla contiguità● Cluster basati sulla densità● Cluster concettuali● Cluster descritti da una funzione obiettivo
03/02/20 Data Mining - Analisi di raggruppamento 14
Tipi di cluster: ben separati
● Un cluster è un insieme di punti tale che ogni punto nel cluster è più vicino (o più simile) ad ogni altro punto dello stesso cluster rispetto a qualsiasi altro punto che non sta nel cluster.
3 cluster ben separati
03/02/20 Data Mining - Analisi di raggruppamento 15
Tipi di cluster: basati su prototipi
● Un cluster è un insieme di oggetti tali che ogni oggetto del cluster è più vicino (o più simile) al “prototipo” del cluster piuttosto che al prototipo di un altro cluster.● Il prototipo del cluster è spesso il centroide, ovvero la
media di tutti i punti del cluster● Se non il centroide non esiste, ad esempio perché ci
sono attributi categoriali, si usa il medoide, il punto più “rappresentativo” del cluster.
4 cluster basati su centroidi
03/02/20 Data Mining - Analisi di raggruppamento 16
Tipi di cluster: basati sulla contiguità
● Un cluster è un insieme di punti tale che ogni punto in un cluster è più vicino (o più simile) a uno o più punti dello stesso cluster rispetto a qualsiasi punto di un altro cluster.
8 cluster basati sulla contiguità
03/02/20 Data Mining - Analisi di raggruppamento 17
Tipi di cluster: basati sulla densità
● Un cluster è una regione densa di punti, che è separata dagli altri cluster da regioni a bassa densità.
● Usato quando i cluster hanno forma irregolare o intrecciata e inoltre sono presenti rumore e outlier.
6 cluster basati sulla densità
03/02/20 Data Mining - Analisi di raggruppamento 18
Tipi di cluster: cluster concettuali
● Un cluster è un insieme di punti che condividono qualche proprietà o rappresentano un particolare concetto.
● Ovviamente intendiamo proprietà e concetti più complessi di quelli dei clustering precedenti
● Si sconfina facilmente nel settore della pattern recognition (riconoscimento di facce, gatti, etc.. dalle foto)
2 cerchi sovrapposti
03/02/20 Data Mining - Analisi di raggruppamento 19
Tipi di cluster: funzione obiettivo
● Cluster che minimizzano o massimizzano una data funzione obiettivo● Ad esempio, la somma delle distanze tra punti dello
stesso cluster.● Una variante di questo metodo prevede di partire da
un modello probabilistico parametrico e trovare i parametri che meglio si adattano ai dati● Tipicamente si tratta di mixture models, ovvero modelli
in cui si assume che i dati provengano da una mistura di distribuzioni di probabilità.
03/02/20 Data Mining - Analisi di raggruppamento 21
Algoritmi di clustering
03/02/20 Data Mining - Analisi di raggruppamento 22
Caratteristiche dei dati in input
● Tipo della misura di prossimità o densità● Fondamentale per il clustering● Dipende dai dati e dalle applicazioni
● Caratteristiche dei dati che influenzano la misura di prossimità e/o la densità● Dimensionalità
– Sparsità● Tipi degli attributi● Relazioni speciali tra i dati
– Ad esempio, autocorrelazione● Distribuzione dei dati
● Rumore e outlier● Spesso interferiscono con le operazioni dell’algoritmo di clustering.
03/02/20 Data Mining - Analisi di raggruppamento 23
Algoritmi di clustering
● Ce ne sono di vari tipi. Noi studieremo queste tre tipologie:● K-means e le sue varianti● Clustering gerarchico● Clustering basato sulla densità
03/02/20 Data Mining - Analisi di raggruppamento 24
Algoritmi di clusteringK-means
03/02/20 Data Mining - Analisi di raggruppamento 25
K-means
● Clustering basato sulle partizioni● Il numero di cluster K va specificato in anticipo● Ogni cluster è associato con il suo centroide● Ogni punto è assegnato al cluster che ha il centroide
più vicino
03/02/20 Data Mining - Analisi di raggruppamento 26
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
yIteration 1
Esempio di clustering K-means
03/02/20 Data Mining - Analisi di raggruppamento 27
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
yIteration 2
Esempio di clustering K-means
03/02/20 Data Mining - Analisi di raggruppamento 28
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
yIteration 3
Esempio di clustering K-means
03/02/20 Data Mining - Analisi di raggruppamento 29
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
yIteration 4
Esempio di clustering K-means
03/02/20 Data Mining - Analisi di raggruppamento 30
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
yIteration 5
Esempio di clustering K-means
03/02/20 Data Mining - Analisi di raggruppamento 31
Esempio di clustering K-means
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
yIteration 6
03/02/20 Data Mining - Analisi di raggruppamento 32
Esempio di clustering K-means
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 1
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 3
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 4
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 5
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
xy
Iteration 6
03/02/20 Data Mining - Analisi di raggruppamento 33
K-means: dettagli
● I centroidi iniziali sono scelti a caso● i cluster prodotti variano ad ogni esecuzione
● Il centroide può essere rimpiazzato da altri punti centrali● ad esempio il punto mediano
● Per molte combinazioni di misure di prossimità e definizione del centroide, l’algoritmo converge, ovvero è assicurata la sua terminazione
● Ad esempio, quando il centroide è la media e la distanza è quella euclidea.
● La maggior parte dei cambiamenti avvengono nelle prime iterazioni:● Spesso la condizione di terminazione “Until the centroids don’t change”
è cambiata in “Until relatively few points change clusters”● La complessità è O(n * K * I * d)
● n = numero di punti, K = numero di clusterI = numero di iterazioni, d = numero di attributi
03/02/20 Data Mining - Analisi di raggruppamento 34
Valutare il risultato di K-means
● Si usa di solito la Sum of Squared Error (SSE)● Per ogni punto, l’errore è la distanza dal centroide del proprio
cluster● Per ottenere l’SSE sommiamo il quadrato degli errori
dove x è un punto del cluster C i e mi è il centroide di Ci
● Dati due insiemi di cluster, preferiamo quello con l’errore minimo● Una maniera per ridurre l’SSE è aumentare K, il numero di
cluster– Tuttavia, un buon clustering con un valore basso di K può avere
SSE minore di un pessimo clustering con alto valore di K
SSE=∑i=1
K
∑x∈C i
dist 2(mi , x)
03/02/20 Data Mining - Analisi di raggruppamento 35
Due differenti clustering
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Sub-optimal Clustering
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Optimal Clustering
Original Points
03/02/20 Data Mining - Analisi di raggruppamento 36
Limitazioni di K-means
● K-means ha problemi quando i cluster● Differiscono per dimensione● Differiscono per densità● Hanno forma non sferica
● K-means ha problemi quando i dati● Presentano outlier
03/02/20 Data Mining - Analisi di raggruppamento 37
Cluster di dimensioni differenti
Original Points K-means (3 Clusters)
03/02/20 Data Mining - Analisi di raggruppamento 38
Cluster di densità differente
Original Points K-means (3 Clusters)
03/02/20 Data Mining - Analisi di raggruppamento 39
Cluster di forma non sferica
Original Points K-means (2 Clusters)
03/02/20 Data Mining - Analisi di raggruppamento 40
Superare le limitazioni di K-means
● Usare più cluster del voluto● Trova parti di cluster che poi vanno messi assieme
Original Points K-means Clusters
03/02/20 Data Mining - Analisi di raggruppamento 41
Superare le limitazioni di K-means
Original Points K-means Clusters
03/02/20 Data Mining - Analisi di raggruppamento 42
Superare le limitazioni di K-means
Original Points K-means Clusters
03/02/20 Data Mining - Analisi di raggruppamento 43
Scelta dei centroidi iniziali
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
yIteration 1
03/02/20 Data Mining - Analisi di raggruppamento 44
Scelta dei centroidi iniziali
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
yIteration 2
03/02/20 Data Mining - Analisi di raggruppamento 45
Scelta dei centroidi iniziali
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
yIteration 3
03/02/20 Data Mining - Analisi di raggruppamento 46
Scelta dei centroidi iniziali
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
yIteration 4
03/02/20 Data Mining - Analisi di raggruppamento 47
Scelta dei centroidi iniziali
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
yIteration 5
03/02/20 Data Mining - Analisi di raggruppamento 48
Scelta dei centroidi iniziali
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
yIteration 6
03/02/20 Data Mining - Analisi di raggruppamento 49
Scelta dei centroidi iniziali
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 1
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
xy
Iteration 2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 3
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 4
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 5
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
xy
Iteration 6
03/02/20 Data Mining - Analisi di raggruppamento 50
Scelta dei centroidi iniziali
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
yIteration 1
03/02/20 Data Mining - Analisi di raggruppamento 51
Scelta dei centroidi iniziali
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
yIteration 2
03/02/20 Data Mining - Analisi di raggruppamento 52
Scelta dei centroidi iniziali
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
yIteration 3
03/02/20 Data Mining - Analisi di raggruppamento 53
Scelta dei centroidi iniziali
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
yIteration 4
03/02/20 Data Mining - Analisi di raggruppamento 54
Scelta dei centroidi iniziali
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
yIteration 5
03/02/20 Data Mining - Analisi di raggruppamento 55
Scelta dei centroidi iniziali
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 1
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 3
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 4
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
xy
Iteration 5
03/02/20 Data Mining - Analisi di raggruppamento 56
Problemi nella scelta dei centroidi
● Se ci sono K cluster “veri”, la probabilità p di selezionare per caso un centroide per ogni cluster è bassa● Assumendo che tutti i cluster veri abbiano dimensione
n, allora
● Per esempio, se K=10, allora la probabilità è 10!/1010 = 0.00036
● Talvolta i centroidi si risistemeranno da soli, ma altre volte no
● Consideriamo un esempio con 5 paia di cluster
P=numero di modi per selezionare un centroide per ogni cluster
numero di modi per selezionare K centroidi=K !nK
(nK )K=
K !
K K
03/02/20 Data Mining - Analisi di raggruppamento 57
Esempio con 10 cluster
● Partendo con due centroidi iniziali in un cluster per ogni coppia di cluster
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
yIteration 1
03/02/20 Data Mining - Analisi di raggruppamento 58
Esempio con 10 cluster
● Partendo con due centroidi iniziali in un cluster per ogni coppia di cluster
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
yIteration 2
03/02/20 Data Mining - Analisi di raggruppamento 59
Esempio con 10 cluster
● Partendo con due centroidi iniziali in un cluster per ogni coppia di cluster
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
yIteration 3
03/02/20 Data Mining - Analisi di raggruppamento 60
Esempio con 10 cluster
● Partendo con due centroidi iniziali in un cluster per ogni coppia di cluster
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
yIteration 4
03/02/20 Data Mining - Analisi di raggruppamento 61
Esempio con 10 cluster
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
y
Iteration 1
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
y
Iteration 2
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
y
Iteration 3
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
y
Iteration 4
03/02/20 Data Mining - Analisi di raggruppamento 62
Esempio con 10 cluster
● Alcune coppie di cluster hanno tre centroidi iniziali, mentre altre ne hanno uno solo
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
yIteration 1
03/02/20 Data Mining - Analisi di raggruppamento 63
Esempio con 10 cluster
● Alcune coppie di cluster hanno tre centroidi iniziali, mentre altre ne hanno uno solo
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
yIteration 2
03/02/20 Data Mining - Analisi di raggruppamento 64
Esempio con 10 cluster
● Alcune coppie di cluster hanno tre centroidi iniziali, mentre altre ne hanno uno solo
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
yIteration 3
03/02/20 Data Mining - Analisi di raggruppamento 65
Esempio con 10 cluster
● Alcune coppie di cluster hanno tre centroidi iniziali, mentre altre ne hanno uno solo
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
yIteration 4
03/02/20 Data Mining - Analisi di raggruppamento 66
Esempio con 10 cluster
● Alcune coppie di cluster hanno tre centroidi iniziali, mentre altre ne hanno uno solo
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
y
Iteration 1
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
y
Iteration 2
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
y
Iteration 3
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
y
Iteration 4
03/02/20 Data Mining - Analisi di raggruppamento 67
Scegliere i centroidi iniziali
● Esecuzioni multiple● Aiuta, ma le probabilità non sono dalla nostra parte
● Usare un algoritmo di clustering gerarchico per scegliere i centroidi iniziali
● Selezionare un centroide alla volta, e scegliere quelli successivi in maniera che siano più separati possibili● Rischio di scegliere outlier come centroidi● Meglio partire da un campione dei dati invece che
dall’insieme completo per ridurre il rischio di selezionare degli outlier
● K-means++
03/02/20 Data Mining - Analisi di raggruppamento 68
K-means++
● Approccio più lento di K-means, ma produce risultati migliori in termini di SSE
● Per selezionare un insieme iniziale di centroidi, fare quanto segue:
● Selezionare un punto iniziale causale per il primo centroide● Per K-1 passi
– Per ognuno degli N punti x1, …, xi ,…, xN dell’insieme di dati, trovare la distanza minima tra il punto e i centroidi correntemente selezionati C1… Cj
– Seleziona in maniera casuale un nuovo centroide scegliendo un punto xi con probabiltà
min jd2(C j , xi)
∑i
min jd2(C j , xi)
03/02/20 Data Mining - Analisi di raggruppamento 69
Cluster vuoti
● K-means può generare dei cluster vuoti
Empty Cluster
6.5 9 10 15 16 18.5X X X
7.75 12.5 17.25
6.5 9 10 15 16 18.5X X X6.8 13 18
03/02/20 Data Mining - Analisi di raggruppamento 70
Gestire i cluster vuoti
● Generare un nuovo cluster quando se ne origina uno vuoto● Scegliere come centroide il punto che contribuisce
maggiormente all’SSE● Scegliere casualmente un centroide dal cluster con il
maggiore SSE
03/02/20 Data Mining - Analisi di raggruppamento 72
Pre-processing e post-processing
● Pre-processing per migliorare la qualità del clustering● Eliminare gli outliers
● Post-processing per migliorare la qualità del clustering● Incrementare il numero di cluster
– Applicare le tecniche viste prime nel caso di formazione di cluster vuoti
● Diminuire il numero di cluster– Fondere cluster che sono “vicini” e che hanno SSE basso– Eliminare cluster piccoli (che possono rappresentare
outlier) e riassegnare i punti ad altri cluster
03/02/20 Data Mining - Analisi di raggruppamento 73
Bisecting K-means
● Variante di K-means che produce un clustering basato su partizioni o gerarchico
● Eventualmente, si può fare un ultimo passaggio con k-means standard partendo dai centroidi trovati dal bisecting k-means per ridurre l’SSE.
CLUTO: http://glaros.dtc.umn.edu/gkhome/cluto/cluto/overview
Esegue vari tentativi ad ogni bisezione
03/02/20 Data Mining - Analisi di raggruppamento 74
Bisecting K-means: esempio
03/02/20 Data Mining - Analisi di raggruppamento 75
Bisecting K-means: esempio
03/02/20 Data Mining - Analisi di raggruppamento 76
Bisecting K-means: esempio
03/02/20 Data Mining - Analisi di raggruppamento 77
Bisecting K-means: esempio
03/02/20 Data Mining - Analisi di raggruppamento 78
Bisecting K-means: esempio
03/02/20 Data Mining - Analisi di raggruppamento 79
Bisecting K-means: esempio
03/02/20 Data Mining - Analisi di raggruppamento 80
Bisecting K-means: esempio
03/02/20 Data Mining - Analisi di raggruppamento 81
Bisecting K-means: esempio
03/02/20 Data Mining - Analisi di raggruppamento 82
Bisecting K-means: esempio
03/02/20 Data Mining - Analisi di raggruppamento 83
Bisecting K-means: esempio
Passo finale con K-means standard
03/02/20 Data Mining - Analisi di raggruppamento 84
Algoritmi di clusteringClustering gerarchico
03/02/20 Data Mining - Analisi di raggruppamento 85
Clustering gerarchico
● Produce un insieme di cluster annidato organizzati sotto forma di albero
● Può essere visualizzato con un dendogramma● Un diagramma simile ad un albero che registra le
fusioni e le suddivisioni di cluster
1 3 2 5 4 60
0.05
0.1
0.15
0.2
1
2
3
4
5
6
1
23 4
5
03/02/20 Data Mining - Analisi di raggruppamento 86
Vantaggi del clustering gerarchico
● Non si deve specificare in anticipo il numero di cluster● Il numero di cluster desiderato può essere ottenuto
“tagliando” il dendogramma ad una altezza opportuna● I cluster possono corrispondere a tassonomie
significative● Ad esempio nelle scienze biologiche (ordine, famiglia,
classe, specie, …)
03/02/20 Data Mining - Analisi di raggruppamento 87
Tipi di clustering gerarchico
● Agglomerativo● Inizia con tanti cluster quanti sono i punti● Ad ogni passo, si fonde la coppia di cluster più simili,
fino a che non è rimasto un solo cluster● Divisivo
● Inizia con un cluster che comprende tutti i punti● Ad ogni passo, si divide un cluster in una coppia di
cluster, finché ogni cluster contiene un solo punto
03/02/20 Data Mining - Analisi di raggruppamento 88
Clustering agglomerativo
● La tecnica più popolare● L’algoritmo di base è semplice
1)Calcola la matrice delle distanze o di prossimità
2)Assegna ogni punto ad un cluster diverso
3)Ripeti
1)Fondi i due cluster più simili
2)Aggiorna la matrice di prossimità
4)Finché rimane solo un cluster● L’operazione chiave è il calcolo della prossimità tra due
cluster● Approcci differenti danno origine a comportamenti diversi
03/02/20 Data Mining - Analisi di raggruppamento 89
Situazione di partenza
● Inizia con un cluster per ogni punto e la matrice di prossimità originaria
p1
p3
p5
p4
p2
p1 p2 p3 p4 p5 . . .
.
.
. Proximity Matrix
...p1 p2 p3 p4 p9 p10 p11 p12
03/02/20 Data Mining - Analisi di raggruppamento 90
Situazione intermedia
● Dopo alcune fusioni abbiamo ottenuto alcuni cluster
C1
C4
C2 C5
C3
C2C1
C1
C3
C5
C4
C2
C3 C4 C5
Proximity Matrix
...p1 p2 p3 p4 p9 p10 p11 p12
03/02/20 Data Mining - Analisi di raggruppamento 91
Prima della fusione
● Vogliamo fondare i due cluster più vicini (C2 e C5) e aggiornare la matrice di prossimità● Quali sono i cluster più vicini?
C1
C4
C2 C5
C3
C2C1
C1
C3
C5
C4
C2
C3 C4 C5
Proximity Matrix
...p1 p2 p3 p4 p9 p10 p11 p12
03/02/20 Data Mining - Analisi di raggruppamento 92
Dopo la fusione
● La domanda è “come aggiornare la matrice di prossimità?”
C1
C4
C2 U C5
C3? ? ? ?
?
?
?
C2 U C5C1
C1
C3
C4
C2 U C5
C3 C4
Proximity Matrix
...p1 p2 p3 p4 p9 p10 p11 p12
03/02/20 Data Mining - Analisi di raggruppamento 93
Distanza inter-cluster
● MIN● MAX● Media● Distanza tra centroidi● Altri metodi dati da una funzione obiettivo
● Il metodo di Ward usa l’errore quadratico (SSE)
p1
p3
p5
p4
p2
p1 p2 p3 p4 p5 . . .
.
.
.
Similarity?
Proximity Matrix
03/02/20 Data Mining - Analisi di raggruppamento 94
Distanza inter-cluster
● MIN● MAX● Media● Distanza tra centroidi● Altri metodi dati da una funzione obiettivo
● Il metodo di Ward usa l’errore quadratico (SSE)
p1
p3
p5
p4
p2
p1 p2 p3 p4 p5 . . .
.
.
.Proximity Matrix
03/02/20 Data Mining - Analisi di raggruppamento 95
Distanza inter-cluster
● MIN● MAX● Media● Distanza tra centroidi● Altri metodi dati da una funzione obiettivo
● Il metodo di Ward usa l’errore quadratico (SSE)
p1
p3
p5
p4
p2
p1 p2 p3 p4 p5 . . .
.
.
.Proximity Matrix
03/02/20 Data Mining - Analisi di raggruppamento 96
Distanza inter-cluster
● MIN● MAX● Media● Distanza tra centroidi● Altri metodi dati da una funzione obiettivo
● Il metodo di Ward usa l’errore quadratico (SSE)
p1
p3
p5
p4
p2
p1 p2 p3 p4 p5 . . .
.
.
.Proximity Matrix
03/02/20 Data Mining - Analisi di raggruppamento 97
Distanza inter-cluster
● MIN● MAX● Media● Distanza tra centroidi● Altri metodi dati da una funzione obiettivo
● Il metodo di Ward usa l’errore quadratico (SSE)
p1
p3
p5
p4
p2
p1 p2 p3 p4 p5 . . .
.
.
.Proximity Matrix
03/02/20 Data Mining - Analisi di raggruppamento 98
MIN (Single Link)
● La prossimità di due cluster è basata sui due punti più vicini● Se pensiamo di avere un valore di distanza che cresce
progressivamente, due gruppi vengono fusi appena anche una sola coppia di punti è sotto la distanza fissata
● Esempio:
Distance Matrix:
03/02/20 Data Mining - Analisi di raggruppamento 99
MIN (Single Link)
Nested Clusters Dendrogram
1
2
3
4
5
6
1
2
3
4
5
3 6 2 5 4 10
0.05
0.1
0.15
0.2
03/02/20 Data Mining - Analisi di raggruppamento 100
Vantaggi di MIN
● Si adatta a forme non globulari
Original Points Six Clusters
03/02/20 Data Mining - Analisi di raggruppamento 101
Svantaggi di MIN
● Sensibile a rumore ed outlier
Original Points
Two Clusters
• Sensitive to noise and outliersThree Clusters
03/02/20 Data Mining - Analisi di raggruppamento 102
MAX (Complete Linkage)
● La prossimità di due cluster è basata sulla coppia di punti più distanti● Se pensiamo di avere un valore di distanza che cresce
progressivamente, due gruppi vengono fusi appena tutte le coppie di punti sono sotto la distanza fissata
Distance Matrix:
03/02/20 Data Mining - Analisi di raggruppamento 103
MAX (Complete Linkage)
Nested Clusters Dendrogram
3 6 4 1 2 50
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
1
2
3
4
5
6
1
2 5
3
4
03/02/20 Data Mining - Analisi di raggruppamento 104
Vantaggi di MAX
● Meno suscettibile a rumore e outlier
Original Points Two Clusters
03/02/20 Data Mining - Analisi di raggruppamento 105
Svantaggi di MAX
● Tende a spezzare i cluster più grandi● Tende a preferire cluster di forma sferica
Original Points Two Clusters
03/02/20 Data Mining - Analisi di raggruppamento 106
Media (Group Average)
● La prossimità di due cluster è data dalla media delle distanze tra ogni punto del primo cluster e ogni punto del secondo
Distance Matrix:
Proximity (C i ,C j)=
∑x∈C i , y∈C j
proximity (x , y)
∣C i∣×∣C j∣
03/02/20 Data Mining - Analisi di raggruppamento 107
Media (Group Average)
Nested Clusters Dendrogram
3 6 4 1 2 50
0.05
0.1
0.15
0.2
0.25
1
2
3
4
5
6
1
2
5
3
4
03/02/20 Data Mining - Analisi di raggruppamento 108
Vantaggi e svantaggi della media
● Compromesso tra single link e complete linkage● Vantaggi
● Meno suscettibile a rumori e outlier di single linkage● Svantaggi
● Tende a preferire cluster sferici
03/02/20 Data Mining - Analisi di raggruppamento 109
Il metodo di Ward
● La distanza tra due cluster è la crescita dell’SSE quando due cluster si fondono● Simile alla group average se la distanza tra i punti è la
distanza al quadrato● Meno suscettibile a rumori e outlier● Tende a preferire cluster sferici● Analogo gerarchico del k-means
● Può essere usato per inizializzare i centroidi per k-means
03/02/20 Data Mining - Analisi di raggruppamento 110
Confronto finale
Group Average
Ward’s Method
1
2
3
4
5
61
2
5
3
4
MIN MAX
1
2
3
4
5
61
2
5
34
1
2
3
4
5
61
2 5
3
41
2
3
4
5
6
12
3
4
5
03/02/20 Data Mining - Analisi di raggruppamento 113
Clustering agglomerativo e risorse
● Memoria dell’ordine di O(N2) è usata per la matrice di prossimità● N è il numero di punti
● Tempo richiesto è O(N3) in molti casi● Ci sono N passi e ogni passo richiede di esaminare
completamente una matrice di prossimità di O(N2) valori● La complessità può essere ridotta a O(N2log N) usando
strutture dati più sofisticate (heap)
03/02/20 Data Mining - Analisi di raggruppamento 114
Problemi e limitazioni
● Una volta che la decisione è presa di combinare due cluster, non si può più tornare indietro
● Non c’è una funzione obiettivo globale da minimizzare, come l’SSE per K-means
● Schemi differenti hanno problemi con uno o più dei seguenti aspetti● Sensibilità a rumori o outlier● Difficoltà nel maneggiare cluster di dimensioni diverse o
di forma non sferica● Spezzettamento di cluster di grandi dimensioni
03/02/20 Data Mining - Analisi di raggruppamento 115
Algoritmi di clusteringClustering basato sulla densità
03/02/20 Data Mining - Analisi di raggruppamento 116
DBSCAN
● DBSCAN è un algoritmo basato sulle densità● Densità di un punto = numero di punti in un intorno di
raggio fissato (Eps)● Fissato un valore MinPts,
– Un core point è un punto che contiene almeno MinPts punti in un suo intorno di raggio Eps
● Sono i punti interni del cluster– Un border point non è un core point, ma si trova in un
intorno di raggio Eps da almeno un core point– Un noise point è un punto che non è né core né border
03/02/20 Data Mining - Analisi di raggruppamento 117
Punti core, border e noise
MinPts = 7
03/02/20 Data Mining - Analisi di raggruppamento 118
Punti core, border e noise
Original Points Point types: core, border and noise
Eps = 10, MinPts = 4
03/02/20 Data Mining - Analisi di raggruppamento 119
Algoritmo DBSCAN
● Algoritmo DBSCAN
1)Etichettare tutti i punti come core, border o noise
2)Eliminare i noise point
3)Mettere nello stesso cluster core point che distano meno di Eps tra di loro
4)Assegnare i border point a uno dei cluster in cui si trovano i core point associati
03/02/20 Data Mining - Analisi di raggruppamento 120
Vantaggi di DBSCAN
● Resistente al rumore● Può gestire cluster di forma e dimensione differenti
Original Points Clusters
03/02/20 Data Mining - Analisi di raggruppamento 121
Determinare Eps e MinPts
● L’idea è che, per tutti i punti in un cluster, i k-esimi vicini più prossimi sono tutti alla stessa distanza
● I punti di rumore, invece, avranno il k-esimo vicino più prossimo ad una distanza maggiore
● Pertanto, ordiniamo i punti sulla base della distanza dal k-esimo vicino più prossimo e disegniamo il grafico
Scelta per Eps
MinPts = k
03/02/20 Data Mining - Analisi di raggruppamento 122
Svantaggi di DBSCAN
● Problemi con cluster di densità diverse
● Dati ad alta dimensionalità● Difficile trovare zone ad alta e bassa densità
03/02/20 Data Mining - Analisi di raggruppamento 123
Valutazione del raggruppamento
03/02/20 Data Mining - Analisi di raggruppamento 124
Valutazione di un raggruppamento
● L’obiettivo dell’analisi di classificazione è ben definito.● Valutare il risultato di una analisi di classificazione vuol
dire valutare la sua capacità di previsione.● Ci sono misure standard: accuratezza, tasso di errore,
etc…● Ma i gruppi trovati dall’analisi di raggruppamento
dipendono “dall’occhio dell’osservatore”● Allora, perché valutare la bontà di un raggruppamento?● Una motivazione fondamentale:
– evitare di trovare gruppi quando c’è solo rumore● La valutazione di un raggruppamento si chiama di solito
cluster validation.
03/02/20 Data Mining - Analisi di raggruppamento 125
Cluster in dati casuali
0 0.2 0.4 0.6 0.8 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
x
y
Random Points
0 0.2 0.4 0.6 0.8 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
x
y
K-means
0 0.2 0.4 0.6 0.8 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
x
y
DBSCAN
0 0.2 0.4 0.6 0.8 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
x
y
Complete Link
03/02/20 Data Mining - Analisi di raggruppamento 126
Differenti aspetti della validazione
● Determinare la clustering tendency, ovvero determinare se i dati contengono effettivamente dei cluster
● Confrontare il risultato di un clustering con informazioni esterne all’insieme di dati, ad esempio con i valori di un appropriato attributo classe.
● Valutare quanto bene i risultati del clustering si adattano ai dati, senza riferimento a informazioni esterne.
● Confrontare i risultati di due clustering per determinare qual è il migliore.
● Determinare il numero “corretto” di cluster.
03/02/20 Data Mining - Analisi di raggruppamento 127
Misure per la validità dei cluster
● Le misure per determinare la validità dei cluster si possono dividere in tre gruppi:
● Supervisionate, o indici esterni. Misurano quanto i cluster trovati sono in accordo ad un attributo classe fornito esternamente– Esempio di attributo classe esterno: un raggruppamento fatto
a mano da un esperto– Esempio di misura: entropia
● Non supervisionate, o indici interni. Misurano la bontà intrinseca di un cluster, senza riferimento a dati esterni.– Esempio di misura: SSE
● Talvolta sono chiamati criteri invece che indici, ma più spesso il termine criterio indica una metodologia generale e indice una misura specifica che implementa quel criterio.
03/02/20 Data Mining - Analisi di raggruppamento 128
Coesione e Separazione
● Coesione: misura quanto sono simili gli oggetti nello stesso cluster● Esempio SSE (Sum of Squared Errors)
● Separazione: misura quanto sono distanti gli oggetti di cluster diversi● Esempio BSS (Between cluster Sum of Squares)
dove m è il centroide di tutto l’insieme di dati
SSE=∑i∑x∈C i
(x−mi)2
BSS=∑i
|C i|(m−mi)2
03/02/20 Data Mining - Analisi di raggruppamento 129
Esempio di SSE e BSS
● K = 1 cluster.● SSE = (1-3)2 + (2-3)2 + (4-3)2 + (5-3)2 = 10● BSS = 4 * (3-3)2 = 0● Total = 10
● K = 2 cluster● SSE = (1-1.5)2 + (2-1.5)2 + (4-4.5)2 + (5-4.5)2 = 1● BSS = 2*(3-1.5)2 + 2*(3-4.5)2 = 9● Totale = 10
1 2 3 4 5 m1 m2
m
03/02/20 Data Mining - Analisi di raggruppamento 130
Il coefficiente di silhouette
● Combina aspetti di coesione e connessione● Per ogni punto i,
● Calcola a = distanza media di i dai punti del suo cluster● Calcola b = min (distanza media di i dai punti degli altri
cluster)● Il coefficiente di silhouette per un punto è dato da
s = (b-a)/max(a,b)
● Tipicamente tra 0 e 1● Più vicino a 1 è, meglio è
● Si può calcolare la media dei coefficienti di silhouette per un cluster o per tutto il raggruppamento
Distances used to calculate a
i
Distances used to calculate b
03/02/20 Data Mining - Analisi di raggruppamento 131
Correlazione (1)
● Si considerano due matrici● Matrice di prossimità tra i punti● Matrice ideale di similarità tra i punti
– Una riga e una colonna per ogni punto– Una cella contiene 1 se i punti corrispondenti
appartengono allo stesso cluster, 0 altrimenti● Calcolare il valore di correlazione tra queste matrici● Valori alti di correlazione indicano che il cluster è
“buono”: punti vicini appartengono allo stesso cluster● Non è una buona misura per clustering basato su
densità o contiguità.
03/02/20 Data Mining - Analisi di raggruppamento 132
Correlazione (2)
● Esempio su due insiemi dati
0 0.2 0.4 0.6 0.8 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
x
y
0 0.2 0.4 0.6 0.8 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
x
y
Corr = -0.9235 Corr = -0.5810
03/02/20 Data Mining - Analisi di raggruppamento 133
Ispezione visuale (1)
● Ordiniamo la matrice di similarità in modo tale punti che dello stesso cluster siano consecutivi
● Si visualizza la matrice di prossimità come una matrice di punti, il cui valore dipende dal contenuto della matrice.
0 0.2 0.4 0.6 0.8 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
x
y
Points
Poin
ts
20 40 60 80 100
10
20
30
40
50
60
70
80
90
100Similarity
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
03/02/20 Data Mining - Analisi di raggruppamento 134
Ispezione visuale (2)
● Quando i dati sono casuali, la visualizzazione non è così netta.
Points
Poin
ts
20 40 60 80 100
10
20
30
40
50
60
70
80
90
100Similarity
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 0.2 0.4 0.6 0.8 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
xy
03/02/20 Data Mining - Analisi di raggruppamento 135
Ispezione visuale 3
● Come per il metodo della correlazione, non è adatto a cluster di forma non sferica.
1 2
3
5
6
4
70
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
500 1000 1500 2000 2500 3000
500
1000
1500
2000
2500
3000
DBSCAN
03/02/20 Data Mining - Analisi di raggruppamento 136
Determinazione numero cluster (1)
● SSE (o altre misure) possono essere usate per stimare il numero di cluster corretto
2 5 10 15 20 25 300
1
2
3
4
5
6
7
8
9
10
K
SSE
5 10 15
-6
-4
-2
0
2
4
6
03/02/20 Data Mining - Analisi di raggruppamento 137
Determinazione numero cluster (2)
● Curva SSE per un insieme più complesso
1 2
3
5
6
4
7
SSE of clusters found using K-means
03/02/20 Data Mining - Analisi di raggruppamento 138
Clustering tendency
● La statistica ci offre un metodo per misurare la clustering tendency● Più una indice esterno è “atipico”, più probabile è che
rappresenti una vera struttura dei dati.● Si possono confrontare i valori di un indice che risulta
da dati casuali con lo stesso indice per i dati sotto esame.
● Se i valori sono significativamente diversi, allora i dati contengono una struttura non casuale.– La significatività della differenza andrebbe valutata con
opportuni test statistici.
03/02/20 Data Mining - Analisi di raggruppamento 139
Clustering tendency con SSE
● Esempio● Confronto dell’SSE di 0.005 contro l’SSE di tre cluster in un insieme di
dati casuale● L’istogramma mostra l’SSE di tre cluster in 500 insieme di dati casuali,
ognuno composto da 100 punti con 2 attributi compresi tra 0.2 e 0.8, uniformemente distribuiti.
0.016 0.018 0.02 0.022 0.024 0.026 0.028 0.03 0.032 0.0340
5
10
15
20
25
30
35
40
45
50
SSE
Cou
nt
0 0.2 0.4 0.6 0.8 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
x
y
SSE = 0.005
03/02/20 Data Mining - Analisi di raggruppamento 140
Clustering tendency con correlazione
● Stessa cosa della slide di prima, ma con la correlazione tra matrice di prossimità vera e ideale.
0 0.2 0.4 0.6 0.8 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
x
y
0 0.2 0.4 0.6 0.8 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
x
y
Corr = -0.9235 Corr = -0.5810
03/02/20 Data Mining - Analisi di raggruppamento 141
Indici esterni: entropia e purezza