data mining - unich.it · 2020. 2. 3. · 03/02/20 data mining - analisi di raggruppamento 11 altre...

Post on 05-Sep-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

top related