380 likes | 689 Views
LIMBO. L. scaLable InforMation BOttleneck. I. M. B. O. Sistemi Informativi Per Le Decisioni LS, Prof. Marco Patella Presentazione di Alessandro Mariucci, Massimiliano Bertocchi, Michele Federici. Introduzione.
E N D
LIMBO L scaLable InforMation BOttleneck I M B O Sistemi Informativi Per Le Decisioni LS, Prof. Marco Patella Presentazione di Alessandro Mariucci, Massimiliano Bertocchi, Michele Federici
Introduzione • Algoritmo di clustering categorico gerarchico e scalabile che costruisce un framework per quantificare le informazioni rilevanti conservate quando si effettua clustering • Usiamo la struttura di IB per definire una misura di distanza per le tuple categoriche • LIMBO può essere usato per clusterizzare sia le tuple sia i valori di attributi categorici
Contenuto informativo dei cluster C1 C2 Vs. D1 D2
Notazioni Dalla teoria dell’informazione: Siano T e A due variabile discrete random che possono variare rispettivamente all’interno dell’insieme T e A • È l’entropia di una varabile privata della conoscenza che l’altra variabile fornisce sulla prima. • Misura la quantità di informazione che le due variabili forniscono l’una per l’altra
Limbo - Rappresentazioni • Sia A = A1 … Am il set di tutti i possibili valori degli attributi • Siad = k1+…+km la dimensione di A. A3 = {g.Cr, g.T, g.C} A2 = {a.S, a.DN, a.S, a.G} A1 = {d.S, d.C, d.H, d.K} A = {d.S, d.C, d.H, d.K, a.S, a.DN, a.S, a.G, g.Cr, g.T, g.C} d = 11
Limbo - Rappresentazioni • La rappresentazione di T sarà una matrice M n×d, e l’elemento M[i][j] sarà 1 se la tupla i contiene il valore j, 0 altrimenti. Per quanto detto prima, ogni vettore che rappresenta una tupla avrà esattamente m valori 1. 3
Limbo - Rappresentazioni • Si procede alla normalizzazione della matrice M p(A|t) distribuzione di probabilità condizionata dei valori dell’attributo data la tupla t p(a|t) = 1/m probabilità condizionata degli attributi nota la tupla p(t) = 1/n probabilità della tupla t
Limbo - Obiettivo • Il criterio utilizzato da LIMBO per definire la bontà della fusione tra due cluster c1 e c2 è quello della information loss I(ci , cj) = I(A ; C) – I(A ; C’) dove C e C’ indica il clustering prima e dopo la fusione di c1 e c2 • Information loss è indipendente dal clustering: dipende solo da ci e cj • Si dimostra che la distanza d(ci , cj) è data dalla seguente formula: Divergenza di Jensen-Shannon. Indica il degrado che si ottiene assumendo come distribuzione valida la seconda quando invece la prima è giusta e viceversa
Limbo - DCF • LIMBO non utilizza l’intero dataset per calcolare i clusters ma alcune statistiche rilevanti sulle tuple • Per fare questo summary del dataset si usa una struttura particolare, Distributional Cluster Features (DCF) DCF relativo alla tupla t DCF(t) = ( p(t), p(A|t) ) DCF relativo al cluster c DCF(c) = ( p(c), p(A|c) ) • Per cluster più grandi, il DCF è calcolato ricorsivamente utilizzando il meccanismo della fusione: • sia c* il cluster che otteniamo fondendo due cluster ci e cj
Limbo - L'algoritmo L’algoritmo LIMBO consta di tre fasi: • Costruzione DCF tree • Clusterizzazione • Assegnazione tuple ai cluster
Limbo - L'albero DCF • Ogni nodo foglia mantiene un clustering delle tuple • Ogni nodo intermedio mantiene un DCF che è dato dalla fuzione di DCFs dei suoi figli • Il LIMBO costruisce alberi space bounded dove l’upper bound è definito dal parametro S • Il parametro B descrive il branching factor Root Node Non leaf node Leaf node Leaf node
FASE 1 - inserimento nel DCF tree -
Limbo - Fase 1 • Le tuple del dataset vengono processate una per volta. • La tupla t viene convertita in DCF(t ). • Si parte dalla radice fino ad un nodo foglia: • Quando ci si trova in un nodo intermedio si trova il DCF(c) più vicino a DCF(t) e si segue il cammino verso il suo figlio. • Quando ci si trova in un nodo foglia, si trova il DCF(c) più vicino a DCF(t). A questo punto si decide se fondere t nel cluster c in base alla distanza d(c,t), che misura l’information loss dovuta alla fusione. • Se è minore del valore di soglia allora si procede alla fusione. • Altrimenti, t formerà un cluster a parte. In questo caso ci si trova davanti a due possibilità: • Se c’è ancora spazio nel nodo, allora viene inserito DCF(t ). • Altrimenti, si “splitta” il nodo scegliendo come semi per i due nodi i due DCF che hanno distanza massima nel nodo. In questo caso vengono aggiornati i DCF del nodo padre inserendo un nuovo DCF per descrivere il nuovo nodo inserito; anche per i nodi intermedi può avvenire lo split se la nuova informazione non può essere contenuta dal nodo.
Limbo - Complessità fase 1 La complessità della fase 1 è: fase split O ( n h d B + d U B2 ) fase inserimento n = n° totale tuple h = altezza dell’albero B = branching factor U = n° nodi non-foglia d = n° totale di valori di attributo
FASE 2 - clustering -
DCFc1 DCFc10 DCFt2 DCFc2 DCFc3 DCFc4 DCFc7 DCFc8 DCFc11 DCFc5 DCFc6 DCFc9 DCFc12 Limbo - Fase 2 DCFc1 DCFc2 DCFc3 DCFc4 DCFc5 DCFc6 DCFc1 DCFc2 DCFc3 • Applica un algoritmo di clustering qualsiasi per produrre k cluster • Calcola i k DCF(c) c3 c4 c1 c2
Limbo - Complessità fase 2 La complessità della fase 2 è (in caso si utilizzi l’algoritmo AIB): O ( L2 d2 logL ) L = numero totale delle entrate DCF delle foglie dell’albero
FASE 3 associazione delle tuple con i cluster
Limbo - Fase 3 c1 D(t1, c1) TUPLA t1 D(t1, c2) c2 . . . D(t1, ck) . . TUPLA tn ck
Limbo - Fase 3 c1 TUPLA t1 D(t1, c2) c2 . . TUPLA tn ck
Limbo - Complessità fase 3 La complessità della fase 3 è: O ( k d n ) k = numero totale dei cluster d = numero totale dei valori dell’attributo n = numero totale tuple
LimboΦ • Versione accuracy-limited non spazio limitata • controlla la perdita di informazione • si usa una soglia sulla distanza d(c,t) per decidere se fondere o meno la tupla t con il cluster c
Limbo - Distanza Intra-attributo A A’ A’’ d.S d.C d.H g.Cr a.S a.G g.C d.K g.T a.DN p(a|v) con aЄA’’ e vЄA’
Misure di qualità per il clustering • INFORMATION LOSS (IL): è la % delle informazioni mutuali iniziali perse dopo aver prodotto un numero desiderato di cluster • CATEGORY UTILITY (CU): è la differenza fra un numero previsto di valori di attributo che possono essere correttamente indovinati dati un cluster ed il numero di corrette previsioni senza tale conoscenza
Misure di qualità per il clustering • MIN CLASSIFICATION ERROR (Emin): Date T tuple classificate in k classi G={g1,…,gk} e sia C una possibile classificazione delle tuple T in k cluster {c1,..,ck}: misura il numero di tuple appartenenti alla classe g_i che ricevono un’etichetta sbagliata, per i={1,…,k}.
Misure di qualità per il clustering • PRECISION (P) e RECALL (R): Pi misura l’ACCURATEZZA con la quale ogni cluster ci riproduce la classe gi Ri misura la COMPLETEZZA con la quale ogni cluster ci riproduce la classe gi
Trade off tra Qualità ed Efficienza LIMBOS LIMBOØ Fase 2: O ( L2 d2 logL )
Trade off tra Qualità ed Efficienza LIMBOS LIMBOØ Fase 1: O ( nhdB + dUB2 )
Trade off tra Qualità ed Efficienza LIMBOS LIMBOØ Fase 3: O ( kdn )
Misure qualitative LIMBOØ LIMBOS
Valutazioni comparative RISULTATI DEL CLUSTERING SU TUPLE:
Valutazioni comparative RISULTATI DEL CLUSTERING SU ATTRIBUTI:
Valutazione della scalabilità a causa del # ridotto di split e della ridotta dimensione dell’albero
N° di attributi Valutazione della scalabilità N° valori di attributo
Conclusioni • LIMBO applica il concetto di Mutua Informazione al clustering • Rispetto agli altri algoritmi di “Information Theoretic Clustering” ha vantaggi in termini di: • Scalabilità • Qualità di clustering • Stabilità dei parametri • E’ l’unico algoritmo scalabile categorico che è gerarchico
DCFc1 DCFc2 DCFc3 DCFc4 DCFc5 DCFc6 DCFc1 DCFc2 DCFc3 L’algoritmo di clustering utilizzato nella Fase 2 deve scoprire i K rappresentanti ben separati DCFc1 DCFc10 DCFt2 DCFc2 DCFc3 DCFc4 DCFc7 DCFc8 DCFc11 DCFc5 DCFc6 DCFc9 DCFc12 c3 c4 c1 c2 Considerazioni • La qualità della clusterizzazione realizzata da LIMBO dipende fortemente da: • Fase 3: assegnazione le tuple ai cluster rappresentativi nasconde molta della perdita di informazione incorsa nelle fasi precedenti.
Considerazioni • Il paper indica i valori di Φ compresi tra 1.0 e 1.5 come valori per cui si ha: • un albero DCF con una dimensione accettabile • un tempo di esecuzione basso nelle fasi 1 e 2 La qualità del Custering degrada notevolmente
Considerazioni • Problema intuitivo: sensibilità di LIMBO all’ordinamento dei dati in ingresso nella costruzione del DCF Tree Non particolarmente sensibile all’ordinamento delle tuple 100 ESECUZIONI ALGORITMO