Clustering - Home: Dipartimento di Scienze Ambientali, …dm/Slides/2_Cluster.pdf · 2009-10-26 ·...

111
Data e Web Mining. - S. Orlando 1 Clustering Salvatore Orlando

Transcript of Clustering - Home: Dipartimento di Scienze Ambientali, …dm/Slides/2_Cluster.pdf · 2009-10-26 ·...

Data e Web Mining. - S. Orlando 1

Clustering

Salvatore Orlando

Data e Web Mining. - S. Orlando 2

Cos’è un’analisi di clustering

•  Obiettivo dell’analisi di clustering –  Raggruppare oggetti in gruppi con un certo grado di omogeneità

•  Cluster: collezione di oggetti/dati –  Simili rispetto a ciascun oggetto nello stesso cluster –  Dissimili rispetto agli oggetti in altri cluster

•  Clustering è anche definito come unsupervised classification: –  Come per la classificazione, lo scopo è segmentare i dati, ma

senza assegnare etichette di classe –  Non abbiamo infatti classi predefinite, ma ogni cluster può essere

interpretata come una classe di oggetti simili •  Applicazioni tipiche

–  Come uno strumento stand-alone per cercare di capire come i dati sono distribuiti

–  Come passo di preprocessing per altri algoritmi

Data e Web Mining. - S. Orlando 3

Applicazioni

•  Image Processing & Pattern Recognition •  Analisi di dati spaziali

–  Creazione di mappe tematiche nei GIS •  Scienze Economiche (market research) •  WWW

–  Raggruppamento di documenti simili –  Clustering di Weblog per scoprire gruppi di pattern di accesso

simili ad un sito Web

Data e Web Mining. - S. Orlando 4

Esempi

•  Marketing: Scopri gruppi distinti, e poi usa questa conoscenza per sviluppare programmi di targeted marketing

•  Land use: Identifica aree terrestri simili rispetto ad 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 e Web Mining. - S. Orlando 5

Bontà del clustering

•  Un buon metodo di clustering produrrà cluster di alta qualità con –  Alta similarità intra-class –  Bassa similarità inter-class

Inter-cluster distances are

maximized Intra-cluster distances are

minimized

Data e Web Mining. - S. Orlando 6

Bontà del clustering

•  La qualità del risultato del clustering dipende –  dalla misura di similarità usata, o dallo specifico algoritmo usato

•  La qualità del clustering è anche misurato in base alla sua abilità di scoprire alcuni o tutti i pattern nascosti

•  Purtroppo la nozione di cluster può essere ambigua:

How many clusters?

Four Clusters Two Clusters

Six Clusters

Data e Web Mining. - S. Orlando 7

Requisiti di un buon metodo di clustering

•  Scalabilità •  Abilità di trattare con tipi di attributi differenti •  Scoprire cluster con forme arbitrarie •  Minima conoscenza di dominio per determinare i migliori attributi in

input •  Robustezza per poter trattare con rumori e outlier •  Non sensibilità 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 e Web Mining. - S. Orlando 8

Tipi di dati

  Matrice dei dati –  n oggetti con p attributi –  Tabella relazionale

  Matrice di dissimilarità o distanza –  d(i, j) misura di

dissimilarità tra oggetti i e j

–  d(i, j) ≅ 0 oggetti molto simili

Data e Web Mining. - S. Orlando 9

Misura la qualità del clustering

•  Metrica di Dissimilarità/Similarità: –  Similarità espressa anche in funzione della distanza:

per esempio, per variabili numeriche: sim(i,j) = 1 / (1 + d(i,j)) (sim tende a 0 se d(i,j) diventa molto grande, sim=1 se d(i,j) è uguale a 0)

•  Le definizioni di funzioni di distanza sono molto differenti per i tipi di dati –  interval-scaled, booleane, categoriche, ordinali, ecc.

•  Pesi potrebbero dover essere associati con variabili differenti in base all’applicazione o alla semantica dei dati

•  In funzione della misura di distanza, in alcuni casi sarà anche possibile misurare la qualità - bontà del risultato del clustering

Data e Web Mining. - S. Orlando 10

Tipi di dati

•  Variabili numeriche

•  Variabili binarie

•  Variabili categoriche: nominali, ordinali

•  Variabili di tipo misto

Data e Web Mining. - S. Orlando 11

Variabili numeriche (interval-scaled): Standardizzazione

•  Valori delle variabili/attributi misurati su scala lineare

–  Le differenze tra valori sono significative, indipendentemente dalle grandezze assolute dei valori in gioco

•  Necessario comunque standardizzare i dati

–  Per evitare dipendenze dall’unità di misura dalle variabile f

–  Calcola la deviazione assoluta media:

dove mf è la media:

–  Calcola la misura standardizzata (z-score)

–  Deviazione assoluta media più robusta della deviazione standard •  |xif - mf| non è elevato al quadrato, riducendo i problemi dovuti a outliers

zif=0 se xif=mf

zif=±1 se |xif-mf | = |sf |

Data e Web Mining. - S. Orlando 12

Variabili numeriche: distanza

•  Distanze per misurare similarità o dissimilarità tra coppie oggetti

•  Minkowski distance

dove i = (xi1, xi2, …, xip) e j = (xj1, xj2, …, xjp) sono due oggetti associati

con vettori p-dimensionali, mentre q è un intero positivo

•  Se q = 1, d è la distanza Manhattan (L1 norm)

–  La distanza di Hamming, che è il numero di bits differenti tra due vettori binari, è una L1 norm

Data e Web Mining. - S. Orlando 13

Variabili numeriche: distanza (cont.)

•  Se q = 2, d è la Distanza Euclidea (L2 norm):

•  Proprietà della distanza euclidea (spazio metrico)

–  d(i,j) ≥ 0 e d(i,i) = 0 (Positività) –  d(i,j) = d(j,i) (Simmetria) –  d(i,j) ≤ d(i,k) + d(k,j) (Disuguaglianza Triangolare)

•  q → ∞ “supremum” (Lmax norm, L∞ norm) –  Massima differenza tra le varie componenti dei due vettori

Data e Web Mining. - S. Orlando 14

Esempio di distanza di Minkowski

Matrice di Distanza

Data e Web Mining. - S. Orlando 15

Tutte le distanze sono metriche?

•  Non tutte le distanze sono metriche •  Ad esempio, la distanza tra due variabili che esprimono le ore del

giorno: –  Stesso giorno o giorni consecutivi –  d(1PM, 2PM) = 1 ora –  d(2PM, 1PM) = 23 ore

•  Un altro esempio si distanza per cui non vale la proprietà di simmetria è la set difference tra due insiemi A e B, definito come –  d(A,B) = |A-B| –  Se A={1,2,3,4} e B={2,3,4}

•  d(A, B) = |A-B| = |{1}| = 1 •  d(B, A) = |B-A| = |emptyset| = 0

•  Un modo comune di rendere una misura simmetrica è la seguente, anche se certi casi potrebbe far perdere la semantica della misura stessa –  d’(x, y) = d’(y, x) = (d(x, y) + d(y, x)) / 2

Non vale la proprietà di simmetria

Data e Web Mining. - S. Orlando 16

Variabili binarie

•  Tabella di contingenza per due vettori binari i, j di p elementi:

•  Coefficiente di matching semplice (variabili simmetriche):

•  Coefficiente di Jaccard (variabili asimmetriche, valori 0 sono meno significativi):

Oggetto i

Oggetto j

sim(i, j)= q+tp

Data e Web Mining. - S. Orlando 17

Dissimilarità usando Jaccard

•  Esempio

–  Y e P corrispondono a 1, mentre N corrisponde a 0 –  Sesso è un attributo simmetrico (non considerato) –  Gli altri attributi sono asimmetrici (valore N (0) è molto più probabile)

Data e Web Mining. - S. Orlando 18

Cosine similarity

•  d1 e d2 sono “document vectors” –  ciascun attributo è la frequenza di un dato termine del documento –  vettori sparsi, le coppie 0-0 sono poco importanti –  Cosine similarity (simile a Jaccard, per dati sparsi NON binari):

cos( d1, d2 ) = (d1 • d2) / ( ||d1|| ||d2|| ) dove • indica il prodotto vettoriale, mentre ||d|| la lunghezza del vettore d.

–  misura del COSENO dell’angolo θ tra i due vettori •  90° = sim. uguale a 0 0° = similarità uguale a 1

•  Esempio:

d1 = 3 2 0 5 0 0 0 2 0 0 d2 = 1 0 0 0 0 0 0 1 0 2

d1 • d2= 3*1 + 2*0 + 0*0 + 5*0 + 0*0 + 0*0 + 0*0 + 2*1 + 0*0 + 0*2 = 5

||d1|| = (3*3+2*2+0*0+5*5+0*0+0*0+0*0+2*2+0*0+0*0)0.5 = (42) 0.5 = 6.481 ||d2|| = (1*1+0*0+0*0+0*0+0*0+0*0+0*0+1*1+0*0+2*2) 0.5 = (6) 0.5 = 2.45

cos( d1, d2 ) = .31

θ

Data e Web Mining. - S. Orlando 19

Pearson’s Correlation

•  La correlazione misura la relazione lineare tra due oggetti x e y, rappresentati con vettori di n misure numeriche

dove e sono le deviazioni standard

e e sono le medie

•  Nota che nella formula appare anche una misura nota come covarianza

x ysx sy

covxy =!n

i=1(xi ! x)(yi ! y)(n! 1)

rxy =!n

i=1(xi ! x)(yi ! y)(n! 1)sxsy

Data e Web Mining. - S. Orlando 20

Pearson’s Correlation

•  La correlazione va da -1 a 1

•  Una correlazione di 1 (-1) significa che x e y hanno una correlazione perfetta positiva (negativa) 1.  Es. di correlazione negativa = -1 (media = 0):

x = (-3, 6, 0, 3, -6) y = (1, -2, 0, -1, 2)

2.  Es. di correlazione positiva = 1: x = (3, 6, 0, 3, 6) y = (1, 2, 0, 1, 2)

3.  Es. di correlazione = 0: x = (-3, -2, -1, 0, 1, 2, 3) y = (9, 4, 1, 0, 1, 4, 9)

•  La correlazione è ad esempio usata per confrontare due clienti che hanno effettuato il ranking dello stesso insieme di n prodotti: –  Il vettore riporta i voti assegnati ai vari prodotti –  Due clienti sono simili anche se il loro max e minimo voto assegnato ai

vari prodotti non è identico (vedi esempio 1)

xk = -3 yk

xk = 3 yk

yk = xk2

Data e Web Mining. - S. Orlando 21

Valutare la correlazione in modo visuale

•  21 coppie di vettori x e y, con 30 attributi casuali •  I plot “visualizzano” la correlazione tra coppie di attributi

–  Ogni cerchio corrisponde alla componente xi e yi dei due vettori, normalizzati in modo che cadano nell’intervallo [0-1]

–  Nota i valori della normalizzazione e la disposizione dei punti

Scatter plots showing the similarity from –1 to 1.

Data e Web Mining. - S. Orlando 22

Variabili nominali

•  Una variabile categorica che può avere più stati –  Es.: rosso, giallo, blu, verde

•  Possiamo pensare ad una generalizzazione delle misure usate per le variabili binarie (da 2 valori ad n valori) considerando i mach –  m : # di match, p : # totale di variabili

•  Possiamo codificare le variabili nominali con un gran numero di variabili binarie –  Una nuova var. binaria per ciascuno dei valori assunti da una

variabile nominale –  Possiamo così usare le stesse misure usate per le var. binarie

sim(i, j)=mp

Data e Web Mining. - S. Orlando 23

Variabili ordinali: trasformazione

•  Una variabile ordinale è in pratica una variabile nominale con un ordine tra i valori assunti

•  Assegniamo un rango numerico (rank) ad ogni valore assunto

•  Possiamo così trattare tali variabili, e calcolarne la dissimilarità, come se fossero interval-based –  rimpiazziamo xif con il suo rango, dove Mf sono i valori diversi

assunti da xif

–  possiamo trasformare i valori sull’intervallo [0, 1] rimpiazzando l’ i-esimo valore della f-esima variabile con

zif=0 se rif=1

zif=1 se rif=Mf

Data e Web Mining. - S. Orlando 24

Variabili numeriche (ratio-scaled)

•  Sono valori numerici misurati su una scala non lineare di valori –  Ad esempio, la crescita nel tempo di una popolazione di batteri

–  Scala esponenziale della misura y: y = A e±Bt

•  Questo può essere problematico per le misure di distanza associate, a causa della distorsione della scala –  Es: distanze piccole tra valori campionati vicini allo zero, e distanze

grandi tra valori lontani dallo zero •  Soluzioni

–  applicare una trasformazione (logaritmica) in modo da trasformarli in interval-scaled, o

–  cosiderare i valori come ordinali, assegnando un rango … e applicare la distanza usata per variabili numeriche di tipo interval-scaled

Data e Web Mining. - S. Orlando 25

Variabili di tipo diverso

•  Oggetti xi e xj caratterizzati da p attributi di tipo diversi –  Numerici, nominali, ordinali, ecc. –  xi = {xi1 xi2 …. xip } xj = {xj1 xj2 …. xjp }

•  Si può usare una formula pesata per rappresentare gli effetti delle distanze calcolate con metodi diversi (dove f è l’indice di un generico attributo)

–  δij(f) = 0

•  se xif o xjf non esistono nei due oggetti i e j •  se xif = xjf = 0 e l’attributo f è binario asimmetrico

–  altrimenti δij(f) = 1

Data e Web Mining. - S. Orlando 26

Variabili di tipo diverso

–  Se f è binario o nominale: dij

(f) = 0 se xif = xjf , dij(f) = 1 altrimenti

–  Se f è numerico interval-scaled: usa distanza normalizzata

–  f è ordinale o ratio-scaled: calcola i ranghi rif e tratta zif come numerica interval-scaled

–  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 asimmetriche

Data e Web Mining. - S. Orlando 27

Curse (maledizione) of dimensionality

•  Quando le dimensioni (attributi) di un oggetto aumentano, i dati diventano sempre più sparsi nello spazio occupato

•  Le definizioni di distanza tra oggetti (ed anche di densità), critici per gli algoritmi di clustering e outlier detection, diventano meno significativi

• 500 punti generati casualmente • Calcola la distanza max e min tra ogni coppia di punti (matrice di distanza)

Data e Web Mining. - S. Orlando 28

Riduzione della dimensionalità

•  Scopo: –  Evitare il fenomeno detto: curse of dimensionality –  Ridurre tempo e spazio impiegato dagli algoritmi di mining –  Permettere una più semplice visualizzazione dei dati –  Per eliminare feature irrilevanti o rumore

•  Principali Tecniche dell’Algebra Lineare che si applicano a oggetti rappresentati come vettori –  Principal Component Analysis (PCA) –  Singular Value Decomposition (SVD)

•  Scopo della PCA –  Trovare un numero minore di dimensioni, su

cui proiettare i punti originali, dove queste dimensioni catturano la più grande variazione nei dati (massimizzano la varianza)

x2

x1

e

Data e Web Mining. - S. Orlando 29

Similarità vs. Dissimilarità

•  Similarità –  Misura numerica –  Alta se gli oggetti sono più simili –  Spesso nel range [0,1]

•  Dissimilarità (distanza) –  Misura numerica –  Bassa quando gli oggetti sono differenti –  Il minimo valore è spesso 0 –  Il valore massimo spesso varia, a meno di normalizzazioni

Data e Web Mining. - S. Orlando 30

Similarità vs. Dissimilarità

•  p e q sono valori di attributi di due oggetti

Data e Web Mining. - S. Orlando 31

Una categorizzazione dei più importanti metodi di clustering

•  Partitional algorithms: Costruisci varie partizioni disgiunti e poi valutali sulla base di qualche criterio. Metodi iterativi.

•  Hierarchical 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 e Web Mining. - S. Orlando 32

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 (disgiunti) –  Ciascun oggetto appartiene ad un solo cluster

•  Hierarchical clustering –  I cluster sono annidati, e organizzati all’interno di albero gerarchico

Data e Web Mining. - S. Orlando 33

Partitional clustering

Punti originali Partitional Clustering

Data e Web Mining. - S. Orlando 34

Hierarchical Clustering

Traditional Hierarchical Clustering Traditional Dendrogram

Data e Web Mining. - S. Orlando 35

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 e Web Mining. - S. Orlando 36

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 e Web Mining. - S. Orlando 37

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 e Web Mining. - S. Orlando 38

Tipi di Cluster: Contiguos Cluster

•  Contiguous Cluster (Nearest neighbor) –  Un cluster è costituito da un insieme 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 e Web Mining. - S. Orlando 39

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 e Web Mining. - S. Orlando 40

Partitioning method

•  Partitioning method: Partiziona il database D di n oggetti in un insieme di k cluster

•  Dato un valore k, trova un partizionamento in k cluster che ottimizza il criterio di partizionamento scelto –  Ricerche dell’ottimo globale (non computabili): enumerazione

esaustiva di tutte le partizioni possibili –  Metodi di ricerca euristici (minimo locale): algoritmi k-means e k-

medoids –  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 e Web Mining. - S. Orlando 41

Algoritmo K-Means

•  Dato k, l’algoritmo k-means è implementato in passi iterativi, ed individua cluster center-based:

Scegli (in modo casuale) k punti che rappresentano i centroidi (means) iniziali dei cluster Repeat

1.  Assegna ciascun oggetto al centro del cluster più vicino 2.  Ricalcola i centroidi (punti medi) dei cluster trovati.

Until Gli assegnamenti non cambiano (o cambiano poco)

Data e Web Mining. - S. Orlando 42

Algoritmo K-Means

•  Esempio

Data e Web Mining. - S. Orlando 43

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.

•  Debolezze –  Spesso termina su un ottimo locale. L’ ottimo globale può essere

approssimato usando tecniche come: deterministic annealing e genetic algorithm

–  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 e Web Mining. - S. Orlando 44

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 calcolare i centroidi dei cluster

Data e Web Mining. - S. Orlando 45

Due risultati differenti usando K-means

Original Points Optimal Clustering Sub-optimal Clustering

Data e Web Mining. - S. Orlando 46

L’importanza di scegliere i centroidi iniziali …

Data e Web Mining. - S. Orlando 47

L’importanza di scegliere i centroidi iniziali …

Data e Web Mining. - S. Orlando 48

Valutare il clustering prodotto

•  La misura di valutazione più comune è –  Sum of the Squared Error (SSE)

•  Calcolo di SSE –  Per ciascun punto p, l’errore è la distanza rispetto al centro (centroide,

medoide) mi del cluster Ci di appartenenza –  Per ottenere SSE, eleviamo al quadrato e sommiamo i vari errori

•  il quadrato può amplificare SSE in presenza di outlier

–  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

SSE =k!

i=1

!

p!Ci

dist(p, mi)2

Data e Web Mining. - S. Orlando 49

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 e Web Mining. - S. Orlando 50

K-means e scelta iniziale dei centroidi

•  Possibili soluzioni –  Run multiple –  Campiona e usa un clustering gerarchico per determinare i

centroidi iniziali –  Seleziona più di K centroidi iniziali e poi seleziona tra

questi •  Seleziona quelli meglio separati (problemi con outlier)

–  Valutare la curva di SSE all’aumentare di K •  discusso in seguito

–  Bisecting K-means (metodo gerarchico partitivo)

Data e Web Mining. - S. Orlando 51

Limiti di K-means: Dimensioni differenti

Original Points K-means Clusters

Data e Web Mining. - S. Orlando 52

Limiti di K-means: Densità differenti

Original Points K-means Clusters

Data e Web Mining. - S. Orlando 53

Limiti di K-means: Forme non globulari

Original Points K-means Clusters

Data e Web Mining. - S. Orlando 54

Aumentiamo K per superare i problemi di K-means

Original Points K-means Clusters

Data e Web Mining. - S. Orlando 55

Aumentiamo K per superare i problemi di K-means

Original Points K-means Clusters

Data e Web Mining. - S. Orlando 56

Aumentiamo K per superare i problemi di K-means

Original Points K-means Clusters

Data e Web Mining. - S. Orlando 57

Pre e post processing per il K-means

•  Pre-processing –  Normalizzare i dati –  Rimuovere gli outlier

•  Post-processing –  Eliminare i cluster piccoli che possono essere outlier –  Spezzare i cluster ‘deboli’, es. con SSE relativamente alto –  Unisci i cluster che sono ‘vicini’ e che hanno un SSE relativamente

basso –  E’ possibile usare queste strategie anche durante l’esecuzione

Data e Web Mining. - S. Orlando 58

Bisecting K-means

•  Variante di of K-means che può produrre un clustering partitionale o gerarchico

Data e Web Mining. - S. Orlando 59

Esempio di Bisecting K-means

Data e Web Mining. - S. Orlando 60

Algoritmo K-medoids

•  Trova oggetti rappresentanti, chiamati medoids, per ogni cluster –  Rispetto a K-means, possiamo applicare l’algoritmo anche se il tipo di

dato non permette di definire la media (es. dati categorici) –  Deve comunque essere possibile definire una nozione di distanza o

similarità tra gli oggetti –  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 SSE del nuovo clustering,

mantieni la modifica –  PAM funziona bene per piccoli dataset, ma non scala bene

Data e Web Mining. - S. Orlando 61

Algoritmo K-medoids

Scegli in modo arbitrario k medoids dagli oggetti da raggruppare

Assegna i rimanenti oggetti al medoid più vicino (o più simile)

Repeat

1.  Seleziona in modo random un oggetto non-medoid (orandom) da scambiare con oj (vecchio medoid), e riassegna

2.  Calcola il costo totale relativo allo nuovo clustering ottenuto scambiando oj con orandom

3.  Se guadagno rispetto ad SSE, allora mantieni lo scambio Until non riusciamo a modificare i medoid

Data e Web Mining. - S. Orlando 62

Casi possibili in seguito al riassegnamento di un medoid

Oggetto Medoid Relazione prima dello scambio Relazione dopo lo scambio

Oi Oj

Orandom

Scambiamo Oj con Orandom

Oi

Oj

Orandom

P riassegnato a Oi (cluster differente)

P

P

P riassegnato a Orandom (stesso cluster)

Oi

Oj

Orandom

P

P non viene riassegnato

Oi Oj

Orandom P

P riassegnato a Orandom (cluster differente)

Data e Web Mining. - S. Orlando 63

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 e Web Mining. - S. Orlando 64

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 Step 1 Step 2 Step 3 Step 4

b

d c

e

a a b

d e c d e

a b c d e

Step 4 Step 3 Step 2 Step 1 Step 0

agglomerative (AGNES)

divisive (DIANA)

Data e Web Mining. - S. Orlando 65

AGNES (Agglomerative Nesting)

•  Usa la matrice delle distanze (di prossimità) e il metodo Single-Link (MIN distanza tra tutte le coppie di punti appartenenti a due cluster da unire)

•  Unisci i nodi (punti o cluster) che hanno la dissimilarità minima •  Alla fine tutti i nodi appartengono allo stesso cluster •  Sensibile a rumori e outlier

Hierarchical Clustering Dendrogram

1

2

3

4

5

6

1

2 3 4

5

Data e Web Mining. - S. Orlando 66

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 e Web Mining. - S. Orlando 67

Algoritmo gerarchico agglomerativo: inizio

•  Iniziamo con cluster costituiti da punti individuali e una matrice di prossimità

p1

p3

p5

p4

p2

p1 p2 p3 p4 p5 . . .

.

.

. Proximity Matrix

Data e Web Mining. - S. Orlando 68

Algoritmo ger. agglomerativo: fase intermedia

•  Dopo qualche passo abbiamo dei cluster

C2 C1

C1

C3

C5

C4

C2

C3 C4 C5

C1

C4

C2 C5

C3

Proximity Matrix

Data e Web Mining. - S. Orlando 69

Algoritmo ger. agglomerativo: fase intermedia

•  Vogliamo unire C2 e C5, ma dobbiamo aggiornare la matrice

C2 C1

C1

C3

C5

C4

C2

C3 C4 C5

C1

C4

C2 C5

C3

Proximity Matrix

Data e Web Mining. - S. Orlando 70

Algoritmo ger. agglomerativo: dopo l’unione

•  Il problema è come aggiornare la matrice –  Diverse misure per stabilire distanza/similarità

C1

C4

C2 U C5

C3 ? ? ? ?

?

?

?

C2 U C5 C1

C1

C3

C4

C2 U C5

C3 C4

Proximity Matrix

Data e Web Mining. - S. Orlando 71

Come definire la similarità Inter-Cluster ?

p1

p3

p5

p4

p2

p1 p2 p3 p4 p5 . . .

.

.

.

Similarity?

•  MIN

•  MAX

•  Group Average

•  Distance Between Centroids Proximity Matrix

Data e Web Mining. - S. Orlando 72

Come definire la similarità Inter-Cluster ?

p1

p3

p5

p4

p2

p1 p2 p3 p4 p5 . . .

.

.

. Proximity Matrix

•  MIN

•  MAX

•  Group Average

•  Distance Between Centroids

Data e Web Mining. - S. Orlando 73

Come definire la similarità Inter-Cluster ?

p1

p3

p5

p4

p2

p1 p2 p3 p4 p5 . . .

.

.

. Proximity Matrix

•  MIN

•  MAX

•  Group Average

•  Distance Between Centroids

Data e Web Mining. - S. Orlando 74

Come definire la similarità Inter-Cluster ?

p1

p3

p5

p4

p2

p1 p2 p3 p4 p5 . . .

.

.

. Proximity Matrix

•  MIN

•  MAX

•  Group Average

•  Distance Between Centroids

Data e Web Mining. - S. Orlando 75

Confronto tra metodi gerarchici

Group Average

MIN MAX

1

2 3

4

5

6 1

2

5

3 4

1

2 3

4

5

6 1

2 5

3

4 1

2 3

4

5

6 1

2

3

4

5

Data e Web Mining. - S. Orlando 76

DIANA (Divisive Analysis)

•  Algoritmo gerarchico divisive introdotto nel 1990

•  Ordine inverso rispetto ad AGNES

•  Alla fine ciascun nodo forma un cluster

Data e Web Mining. - S. Orlando 77

Complessità dei metodi gerarchici

•  Non scala bene: la complessità in tempo è O(n2), dove n è il numero totale di oggetti, poiché dobbiamo costruire la matrice completa delle distanze

•  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 e Web Mining. - S. Orlando 78

Metodi di clustering basati sulla densità

•  Clustering basato sulla densità

–  Punti risultano “connessi”, ovvero assegnati allo stesso cluster, sulla base della densità

•  Caratteristiche principali –  Scopre cluster di forma arbitraria –  Gestisce bene i rumori/outlier presenti nel dataset –  Singola scansione –  Abbiamo bisogno di parametri riguardanti la densità come

condizione di terminazione

Data e Web Mining. - S. Orlando 79

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

•  Insiemi 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)

–  2) q è un punto core, ovvero:

|NEps (q)| ≥ MinPts p

q MinPts = 5

Eps = 1 cm

Data e Web Mining. - S. Orlando 80

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

•  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 p1

p q

o

Data e Web Mining. - S. Orlando 81

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à

Data e Web Mining. - S. Orlando 82

DBSCAN

•  Un punto è un core point se ha un numero minimo di punti (MinPts) all’interno del suo raggio Eps

–  Questi punti diventeranno punti interni di un cluster.

•  Un border point ha meno di MinPts all’interno del suo Eps, ma esso è un “vicino” di un core point

•  Un noise point è un punto che non possiamo classificare né come core point e nè come border point

Data e Web Mining. - S. Orlando 83

DBSCAN: L’algoritmo

•  Seleziona arbitrariamente un punto p

•  Se p è un punto core, individua tutti i punti density-reachable da p rispetto a Eps e MinPts, e forma un cluster –  Aggiungi al cluster di p i punti directly density-reachable objects –  Controlla ricorsivamente se tali punti sono a loro volta core, ecc. –  Unisci via via i punti density-reachable

•  Se da p raggiungi un punto border p’ –  nessun punto è density-reachable da p’ –  per cui passa a considerare un altro punto del

database non ancora considerato

•  Continua fino alla completa visita di tutti i punti

Data e Web Mining. - S. Orlando 84

DBSCAN: esempio di funzionamento corretto

Original Points Clusters

Data e Web Mining. - S. Orlando 85

DBSCAN: punti core, border e noise

Original Points Point types: core, border and noise

Eps = 10, MinPts = 4

Data e Web Mining. - S. Orlando 86

DBSCAN: determinare EPS e MinPts

•  Idea: per i vari punti di un cluster, ci aspettiamo che i kth nearest neighbors stiano più o meno alla stessa distanza

–  Sempre che non ci sia un’alta variabilità della densità •  I punti Noise avranno il loro kth nearest neighbor

ad una distanza più alta •  Allora, plottiamo le distanze (ordinate) di ogni

punto dal suo kth nearest neighbor

In questo caso, selezioniamo MinPts=4 e Eps=2800

Data e Web Mining. - S. Orlando 87

“The validation of clustering structures is the most difficult and frustrating part of cluster analysis.

Without a strong effort in this direction, cluster analysis will remain a black art accessible only to those true believers who have experience and great courage.”

Algorithms for Clustering Data, Jain and Dubes

Commento sulla validità del clustering

Data e Web Mining. - S. Orlando 88

Cluster trovati in Dati Random

Random Points

K-means

DBSCAN

Hierachical (MAX)

Data e Web Mining. - S. Orlando 89

Cluster Validity

•  Come facciamo a validare la bontà di un cluster?

•  Perché valutare? –  Per evitare di trovare pattern quando invece trattasi di rumore –  Per comparare algoritmi diversi –  Per valutare due insiemi di cluster (due risultati globali) –  Per comparare due cluster

Data e Web Mining. - S. Orlando 90

•  Determinare la clustering tendency di un data set –  Una struttura non-random esiste realmente nei dati? –  Qual è il numero corretto di cluster?

•  Confrontare i risultati rispetto a conoscenze esterne •  Valutare i risultati con parametri interni, senza usare

conoscenza pregressa

•  Nota che le stesse metodologie possono essere usate per confrontare due cluster, oppure due insiemi di cluster (clustering) ottenuti da un algoritmo

Cluster Validation: differenti aspetti

Data e Web Mining. - S. Orlando 91

•  External Index: –  Misura quanto i cluster individuati corrispondono a etichette

di classe fornite esternamente (conoscenza pregressa) •  Entropia

•  Internal Index: –  Misura la qualità del clustering senza informazione/

conoscenza esterna •  Sum of Squared Error (SSE)

•  In letteratura sono spesso riferiti come criteri invece di indici –  Comunque, il criterio è la strategia generale, mentre l’indice è la

misura numerica che la implementa

Misure per validare il clustering

Data e Web Mining. - S. Orlando 92

•  Due matrici –  Matrice di Prossimità (n×n) per gli n oggetti

•  Similarità tra ogni coppia di oggetti. Dovrebbe essere ≈ 1 per coppie che stanno nello stesso cluster

–  Matrice di Incidenza (n×n) •  Entry (i,j) = 1 : i due oggetti appartengono allo stesso cluster •  Entry (i,j) = 0 : i due oggetti appartengono a cluster differenti

•  Calcola la correlazione tra due matrici –  Le matrici sono simmetriche, per cui solo la correlazione tra (n-1)/2

entry delle due matrici deve essere calcolata

•  Alta correlazione –  I punti appartenenti allo stesso cluster sono vicini

•  Misura non adatta per cluster costruiti sulla base della densità o contiguità spaziale dei punti

Misurare la validità di un cluster con la correlazione (indice interno)

Data e Web Mining. - S. Orlando 93

Misurare la validità di un cluster con la correlazione (indice interno)

•  Correlazione delle due matrici (incidenza e prossimità) per K-means su due diversi dataset

Corr = -0.9235 Corr = -0.5810

Data e Web Mining. - S. Orlando 94

•  Basta ordinare righe (e colonne) rispetto alle etichette dei cluster

Uso della matrice di Similarità per validare il clustering in modo visuale

Cluster 1 Cluster 2

Cluster 3

Data e Web Mining. - S. Orlando 95

Uso della matrice di Similarità per validare il clustering in modo visuale

•  I cluster in dati random non sono molto definiti

K-means

Data e Web Mining. - S. Orlando 96

Uso della matrice di Similarità per validare il clustering in modo visuale

DBSCAN

•  La misura di similarità non è adatta per valutare DBSCAN

Data e Web Mining. - S. Orlando 97

•  Si può usare solo se è definito un prototipo (centroide/medoide) degli elementi del cluster

•  SSE è un buon indice per confrontare sia due clustering e sia due cluster

•  Può essere usato anche per stimare il numero di cluster ottimale nel K-means

Misurare la validità di un cluster con SSE (indice interno)

Calcola l’SSE per vari valori di K Scegli il K tale per cui l’angolazione della curva si stabilizza

Data e Web Mining. - S. Orlando 98

•  Validity(Ci): Cohesion o Separation

•  Cluster Cohesion: Misura l’affinità tra gli oggetti di un cluster

•  Cluster Separation: Misura quanto i cluster sono distinti e ben separati rispetto agli altri cluster

Ancora misure interne: Cohesion e Separation

overall validity =K!

1=1

validity(Ci)

Data e Web Mining. - S. Orlando 99

•  Prototype-Based

Ancora misure interne: Cohesion e Separation

Data e Web Mining. - S. Orlando 100

•  Graph-Based

Ancora misure interne: Cohesion e Separation

Data e Web Mining. - S. Orlando 101

•  Il Silhouette Coefficient combina le idee della coesione e della separation (per singoli punti, cluster singoli, o risultati del clustering)

•  Per un punto i –  Sia Ci il cluster di i –  Calcola: ai = distanza media di i dagli altri punti di Ci –  Calcola: bi = min per ogni cluster C, C≠Ci (distanza media di i dai punti

del cluster C) –  Silhouette Coefficient si per il punto i:

si = (bi – ai) / max(ai, bi)

Ancora misure interne: Silhouette Coefficient

Data e Web Mining. - S. Orlando 102

•  si = (bi – ai) / max(ai, bi) –  Tra -1 e 1. –  Caso -1 non desiderabile,

perché questo succederebbe se ai > bi

–  Vorremmo avere un valore positivo (ovvero ai < bi ), con ai molto piccolo (≅ 0)

•  in questo caso si tende a 1

•  Il coefficiente per un singolo cluster –  media dei coefficienti di tutti i punti del cluster

•  Il coefficiente per un clustering completo –  media dei coefficienti di tutti i punti

Ancora misure interne: Silhouette Coefficient

Data e Web Mining. - S. Orlando 103

Misure esterne o supervised per cluster validity

•  Classification-based –  Misure simili a quelle usate per valutare i classificatori sulla base della

capacità di riconoscere correttamente l’appartenenza di un “test item” alla classe corretta

–  In questo vogliamo misurare la capacità dell’algoritmo di ritrovare le classi presenti nel test dataset

•  Come si fa a valutare? –  si prende un dataset classificato, e quindi partizionato in classi disgiunte –  si ignora l’etichetta classe –  si clusterizza e si valuta il clustering ottenuto

Data e Web Mining. - S. Orlando 104

Misure esterne o supervised per cluster validity

•  Misure dell’information retrieval –  Precision e Recall

•  Data una query: –  Tutti i documenti restituiti sono rilevanti? precision –  Sono stati restituiti tutti i rilevanti? recall

•  Se A sono i documenti restituiti e B i rivelanti

–  precision =

–  recall =

•  C’è una misura che li mette assieme: –  Misura F (F-measure) che è la media armonica fra precision e recall –  La media armonica

è più piccola della media aritmetica e geometrica

| AB || A |

| AB ||B |

F =2

1p + 1r

=2prp + r

Data e Web Mining. - S. Orlando 105

Misure esterne o supervised per cluster validity

•  Come usiamo precision, recall, F-measure per validare il risultato del clustering?

•  L’usiamo per validare un singolo cluster i rispetto alla classe j –  parliamo di precisione pij e recall rij

•  m è il numero totale di elementi da clusterizzare •  mi è il numero di elementi del cluster i •  mj è il numero di elementi della classe j •  mij è il numero di elementi del cluster i appartenenti alla classe j

precision(i, j) = mij / mi recall(i, j) = mij / mj

•  Come estendiamo ad un clustering completo? –  per ogni cluster scegliamo la massima precision, o la massima recall –  sommiamo su tutti i cluster (precision, recall, F-measure)

Data e Web Mining. - S. Orlando 106

Misure esterne o supervised per cluster validity

•  Purezza di un clustering: –  stesso concetto della precisione

–  precision(i, j) = pij = mij / mi –  ovvero, probabilità che un membro del cluster i appartenga alla

classe j

•  Purezza del cluster i:

•  Purezza del clustering: €

pi =maxjpij

p =mi

mi=1

K

∑ pi

uguale a 1 se tutti appartengono ad una sola classe

Data e Web Mining. - S. Orlando 107

Misure esterne o supervised per cluster validity

•  Entropia di un clustering: –  basato ancora sulla probabilità che un membro del cluster i

appartenga alla classe j

–  pij = mij / mi

•  Entropia del cluster i:

•  Entropia del clustering: €

ei = − pijj=1

L

∑ log pij

e =mi

mi=1

K

∑ ei

uguale a 0 se tutti appartengono ad una sola classe

Data e Web Mining. - S. Orlando 108

External Measures of Cluster Validity: Entropy and Purity

Data e Web Mining. - S. Orlando 109

External Measures of Cluster Validity: Correlazione tra Matrici di incidenza

•  Matrice di Incidenza per il clustering (n×n) –  Entry (i,j) = 1 : i due oggetti appartengono allo stesso cluster –  Entry (i,j) = 0 : i due oggetti appartengono a cluster differenti

•  Matrice di Incidenza per le classi note (n×n) –  Entry (i,j) = 1 : i due oggetti appartengono alla stessa classe –  Entry (i,j) = 0 : i due oggetti appartengono a classi differenti

•  Possiamo calcolarne la correlazione •  Oppure misurare vicinanza tramite una misura di similarità per dati binari

–  f00 = numero di coppie i,j con classe differente e classe differente –  f01 = numero di coppie i,j con classe differente e cluster uguale –  f10 = numero di coppie i,j con classe uguale e cluster differente –  f11 = numero di coppie i,j con classe uguale e cluster uguale

jaccard _ sim =f11

f 01+ f10 + f11

Data e Web Mining. - S. Orlando 110

Un tool per visualizzare il comportamento di algoritmi di clustering

•  http://www.cs.ualberta.ca/~yaling/Cluster/Applet/Code/Cluster.html

Data e Web Mining. - S. Orlando 111

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