37
CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Embed Size (px)

Citation preview

Page 1: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

CLUSTERING WITHWEKA

Branca StefanoDosi Clio

Gnudi Edward William

Page 2: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Outline

Page 3: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Tecniche di clusterizzazione con WEKA

Clusterizzazione del Dataset “Iris”

Page 4: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Possibilità di scelta tra vari algoritmi

Tecniche di clusterizzazione con WEKA

Page 5: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Possibilità di scelta tra vari algoritmi

Tecniche di clusterizzazione con WEKA

Page 6: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Tecniche di clusterizzazione con WEKA

Scelta dei parametri

Page 7: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Tecniche di clusterizzazione con WEKA

Scelta dei parametri

Page 8: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Tecniche di clusterizzazione con WEKA

Il “Cluster mode” è Il “Cluster mode” è utilizzato per utilizzato per scegliere cosa scegliere cosa

clusterizzare e le clusterizzare e le modalità con cui modalità con cui

valutare i risultativalutare i risultati

Cluster Mode

Page 9: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Il pulsante “Ignore attribute” apre Il pulsante “Ignore attribute” apre una finestra che permette di una finestra che permette di

selezionare eventuali attributi da selezionare eventuali attributi da non considerare nella formazione dei non considerare nella formazione dei

clustercluster

Tecniche di clusterizzazione con WEKA

Ignore attribute

Page 10: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Premendo il tasto “Start” Premendo il tasto “Start” si fa partire l'algoritmo.si fa partire l'algoritmo.

Le informazioni Le informazioni riguardanti il riguardanti il

processamento dei dati processamento dei dati vengono mostrate nel vengono mostrate nel

riquadro a destrariquadro a destra

Tecniche di clusterizzazione con WEKA

Page 11: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Tecniche di clusterizzazione con WEKA

Page 12: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Identificazione degli attributi più significativi

Tecniche di clusterizzazione con WEKA

Page 13: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Tecniche di clusterizzazione con WEKA

Page 14: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Tecniche di clusterizzazione con WEKA

K = 2K = 2 K = 5K = 5

Page 15: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Applicazione al Dataset “Wine”

Algoritmi partizionantiK-Means

Page 16: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Applicazione al Dataset “Wine”

Algoritmi partizionantiK-Means

Page 17: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Algoritmi basati sulla densitàDBScan

Page 18: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Variando ε (IRIS)

Algoritmi basati sulla densità - DBScan

Page 19: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William
Page 20: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Variando MinPoints (IRIS)

Algoritmi basati sulla densità - DBScan

Page 21: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

1. Quali dimensioni dare a ε?

2. Non si possono individuare tutti i cluster e sottocluster in presenza di densità diverse

LimitiAlgoritmi basati sulla densità - DBScan

Page 22: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

( Ordering Points To Identify the Clustering Structure )

“it does not produce a clustering of a data set explicitly; but instead creates an augmented ordering of the database representing its density-based clustering structure”

Algoritmi basati sulla densitàOPTICS

Page 23: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Al-Ri, optics ε=0.3

Page 24: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William
Page 25: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

AlgoritmoAlgoritmo

Algoritmi basati sulla densità - OPTICS

= è un core object

Page 26: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Confronto con DBScanε = 0.9 ; MinPoints= 6

Clustered Instances

0 163 (100%)

ε = 0.5 ; MinPoints= 6 (si perdono i cluster a bassa densità)

Clustered Instances

0 86 ( 58%)

1 63 ( 42%)

Unclustered instances : 14

Algoritmi basati sulla densità - OPTICS

Page 27: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

ε = 0.3 ; MinPoints= 6

Clustered Instances0 23 ( 16%)1 61 ( 43%)2 57 ( 40%)Unclustered instances : 22

Cluster 2 56

cluster 1 61

cluster 0 23

Undefined 23

Confronto con DBScan

Algoritmi basati sulla densità - OPTICS

Perché?

Page 28: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

?? BORDER ?? BORDER rispetto ad un rispetto ad un core non core non ancora ancora processato??processato??

Confronto con DBScan

Algoritmi basati sulla densità - OPTICS

Page 29: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Caratteristiche dei dataset transazionali:

Alta dimensione

Sparsità

Grandi volumi di tuple

In questi casi, algoritmi basati sulle distanze (es. k-means) sono inefficienti.

Gli algoritmi gerarchici (es. ROCK) sono, invece, abbastanza efficienti ma poco scalabili

Algoritmi per DB transazionali

Page 30: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

( Clustering with sLOPE )

Idea di baseMisurare la qualità di un cluster attraverso una funzione di

similarità globale basata sul rapporto altezza/larghezza dell’istogramma del cluster.

Esempio: cluster formato dalle transazioni {ab, abc, acd}

a b c d

H=2

W=4

Più alto è il rapporto H/W, migliore è il cluster perché viene migliorato l’overlapping intra-cluster.

Algoritmi per DB transazionaliCLOPE

Page 31: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Sia C un cluster, si definiscono:

D(C) insieme degli item distinti presenti nel cluster;

Occ(i,C) occorrenze dell’item i nel cluster;

S(C) dimensione dell’istogramma del cluster.

D(C)i

C)Occ(i,S(C) D(C)W(C)W(C)

S(C)H(C)

Per un clustering C={C1,…,Ck} la funzione profitto è:

k

1ii

k

1ii2

i

i

C

C)W(C)S(C

Profit(C)

k

1ii

k

1iir

i

i

C

C)W(C)S(C

Profit(C)

Si introduce il parametro r detto repulsione usato per controllare il livello di similarità intra-cluster

Algoritmi per DB transazionali - CLOPE

Page 32: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Algoritmo

/* Fase 1 - Initialization */1: while not end of the database file2: read the next transaction ⟨t,unknown ;⟩3: put t in an existing cluster or a new cluster Ci that maximize profit;4: write ⟨t, i back to database;⟩

/* Fase 2 - Iteration */5: repeat6: rewind the database file;7: moved = false;8: while not end of the database file9: read ⟨t, i ;⟩10: move t to an existing cluster or new

cluster Cj that maximize profit;11: if Ci ≠ Cj then12: write ⟨t, j ;⟩13: moved = true;14: until not moved;

Occupazione di memoria: nella RAM vengono memorizzati solo la transazione corrente e alcune informazioni (cluster feature) per ogni cluster come numero di transazioni (N), numero di item distinti (W), le occorrenze per ciascun item (occ) e la dimensione del cluster (S).

Calcolo del profitto: è possibile individuare il miglior cluster in cui inserire una transazione attraverso la funzione DeltaAdd che calcola, utilizzando le clustering feature, l‘aumento relativo della funzione Profit

1: int DeltaAdd(C, t, r) {2: S_new = C.S + t.ItemCount;3: W_new = C.W;4: for (i = 0; i < t.ItemCount; i++)5: if (C.occ[t.items[i]] == 0) ++W_new;6: return S_new*(C.N+1)/(W_new)r-C.S*C.N /(C.W)r;7: }

Algoritmi per DB transazionali - CLOPE

Page 33: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Vantaggi

Rapidità• Complessità: O(N x K x A)

Bassa occupazione di memoria• Database con 10.000 item e 1.000 cluster possono

essere memorizzati in 40 MB

Efficienza• Qualità del clustering molto vicina a quella di

algoritmi come ROCK e scarsa sensibilità all’ordine delle transazioni

Algoritmi per DB transazionali - CLOPE

Page 34: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Applicazione con WEKA

L’algoritmo è attivo solo se il dataset caricato è composto di attributi categorici. L’unico parametro da introdurre è la repulsione.

Per provare l’algoritmo con il dataset di prova (Iris), è stato applicato un filtro per discretizzare gli attributi (10 bin equi-frequenza) e renderli binari.

Algoritmi per DB transazionali - CLOPE

Page 35: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Risultati

CLOPE clustering results===============================================Clustered instances: 150Clustered Instances0 46 ( 31%)1 57 ( 38%)2 42 ( 28%)3 5 ( 3%)

Class attribute: classClasses to Clusters: 0 1 2 3 <-- assigned to cluster 46 0 0 4 | Iris-setosa 0 49 1 0 | Iris-versicolor 0 8 41 1 | Iris-virginica

Cluster 0 <-- Iris-setosaCluster 1 <-- Iris-versicolorCluster 2 <-- Iris-virginicaCluster 3 <-- No class

Incorrectly clustered instances :14.0 9.3333 %

CLOPE clustering results===============================================Clustered instances: 150Clustered Instances0 46 ( 31%)1 57 ( 38%)2 42 ( 28%)3 5 ( 3%)

Class attribute: classClasses to Clusters: 0 1 2 3 <-- assigned to cluster 46 0 0 4 | Iris-setosa 0 49 1 0 | Iris-versicolor 0 8 41 1 | Iris-virginica

Cluster 0 <-- Iris-setosaCluster 1 <-- Iris-versicolorCluster 2 <-- Iris-virginicaCluster 3 <-- No class

Incorrectly clustered instances :14.0 9.3333 %

CLOPE clustering results===============================================Clustered instances: 150Clustered Instances0 49 ( 33%)1 54 ( 36%)246 ( 31%)4 1 ( 1%)

Class attribute: classClasses to Clusters: 0 1 2 4 <-- assigned to cluster 49 1 0 0 | Iris-setosa 0 48 2 0 | Iris-versicolor 0 5 44 1 | Iris-virginica

Cluster 0 <-- Iris-setosaCluster 1 <-- Iris-versicolorCluster 2 <-- Iris-virginicaCluster 4 <-- No class

Incorrectly clustered instances : 9.0 6 %

CLOPE clustering results===============================================Clustered instances: 150Clustered Instances0 49 ( 33%)1 54 ( 36%)246 ( 31%)4 1 ( 1%)

Class attribute: classClasses to Clusters: 0 1 2 4 <-- assigned to cluster 49 1 0 0 | Iris-setosa 0 48 2 0 | Iris-versicolor 0 5 44 1 | Iris-virginica

Cluster 0 <-- Iris-setosaCluster 1 <-- Iris-versicolorCluster 2 <-- Iris-virginicaCluster 4 <-- No class

Incorrectly clustered instances : 9.0 6 %

Tutti gli attributi selezionati e repulsione a 2.8

Selezionati solo gli attributi sul petalo e repulsione a 2.5

Algoritmi per DB transazionali - CLOPE

Page 36: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

Algoritmi per DB transazionali - CLOPEApplicazione al Dataset “Voting”

Page 37: CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William

GRAZIE PER L’ATTENZIONEGRAZIE PER L’ATTENZIONE