Upload
enzio-vinci
View
219
Download
1
Embed Size (px)
Citation preview
CLUSTERING WITHWEKA
Branca StefanoDosi Clio
Gnudi Edward William
Outline
Tecniche di clusterizzazione con WEKA
Clusterizzazione del Dataset “Iris”
Possibilità di scelta tra vari algoritmi
Tecniche di clusterizzazione con WEKA
Possibilità di scelta tra vari algoritmi
Tecniche di clusterizzazione con WEKA
Tecniche di clusterizzazione con WEKA
Scelta dei parametri
Tecniche di clusterizzazione con WEKA
Scelta dei parametri
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
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
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
Tecniche di clusterizzazione con WEKA
Identificazione degli attributi più significativi
Tecniche di clusterizzazione con WEKA
Tecniche di clusterizzazione con WEKA
Tecniche di clusterizzazione con WEKA
K = 2K = 2 K = 5K = 5
Applicazione al Dataset “Wine”
Algoritmi partizionantiK-Means
Applicazione al Dataset “Wine”
Algoritmi partizionantiK-Means
Algoritmi basati sulla densitàDBScan
Variando ε (IRIS)
Algoritmi basati sulla densità - DBScan
Variando MinPoints (IRIS)
Algoritmi basati sulla densità - DBScan
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
( 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
Al-Ri, optics ε=0.3
AlgoritmoAlgoritmo
Algoritmi basati sulla densità - OPTICS
= è un core object
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
ε = 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é?
?? BORDER ?? BORDER rispetto ad un rispetto ad un core non core non ancora ancora processato??processato??
Confronto con DBScan
Algoritmi basati sulla densità - OPTICS
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
( 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
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
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
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
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
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
Algoritmi per DB transazionali - CLOPEApplicazione al Dataset “Voting”
GRAZIE PER L’ATTENZIONEGRAZIE PER L’ATTENZIONE