Sistemi Informativi Per Le Decisioni LS, Prof. Marco Patella Presentazione di Alessandro Mariucci, Massimiliano Bertocchi, Michele Federici
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 Algoritmo di clustering categorico gerarchico e scalabile che costruisce un framework per quantificare le informazioni rilevanti conservate quando si effettua clustering
DirectorActorGenre t1 (Godfather II)M. ScorseseR. De NiroCrime t2 (Good Fellas)F. F. CoppolaR. De NiroCrime t3 (Vertigo)A. HitchcockJ. StewartThriller t4 (N by NW)A. HitchcockC. GrantThriller t5 (The Bishop’s Wife)K. KosterC. GrantComedy t6 (Harvey)K. KosterJ. StewartComedy DirectorActorGenre t1 (Godfather II)M. ScorseseR. De NiroCrime t2 (Good Fellas)F. F. CoppolaR. De NiroCrime t3 (Vertigo)A. HitchcockJ. StewartThriller t4 (N by NW)A. HitchcockC. GrantThriller t5 (The Bishop’s Wife)K. KosterC. GrantComedy t6 (Harvey)K. KosterJ. StewartComedy C1 C2 D1 D2
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 Dalla teoria dell’informazione:
Sia A = A1 … Am il set di tutti i possibili valori degli attributi Sia A = A1 … Am il set di tutti i possibili valori degli attributi Sia d = k1+…+km la dimensione di A. Sia d = k1+…+km la dimensione di A. DirectorActorGenre t1 (Godfather II)M. ScorseseR. De NiroCrime t2 (Good Fellas)F. F. CoppolaR. De NiroCrime t3 (Vertigo)A. HitchcockJ. StewartThriller t4 (N by NW)A. HitchcockC. GrantThriller t5 (The Bishop’s Wife)K. KosterC. GrantComedy t6 (Harvey)K. KosterJ. StewartComedy A1 = {d.S, d.C, d.H, d.K} A2 = {a.S, a.DN, a.S, a.G} A3 = {g.Cr, g.T, g.C} 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
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. 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. d.Sd.Cd.Hd.Ka.DNa.Sa.Gg.Crg.Tg.C t t t t t t
Si procede alla normalizzazione della matrice M Si procede alla normalizzazione della matrice M d.Sd.Cd.Hd.Ka.DNa.Sa.Gg.Crg.Tg.Cp(t) t11/ /6 t201/ /6 t3001/ /6 t4001/ /6 t50001/ /6 t60001/ /6 p(a|t) = 1/m probabilità condizionata degli attributi nota la tupla p(A|t) distribuzione di probabilità condizionata dei valori dell’attributo data la tupla t p(t) = 1/n probabilità della tupla t
Il criterio utilizzato da LIMBO per definire la bontà della fusione tra due cluster c 1 e c 2 è quello della information loss I(c i, c j ) = I(A ; C) – I(A ; C’) dove C e C’ indica il clustering prima e dopo la fusione di c 1 e c 2 Information loss è indipendente dal clustering: dipende solo da c i e c j Si dimostra che la distanza d(c i, c j ) è 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
DCF relativo al cluster cDCF(c) = ( p(c), p(A|c) ) DCF relativo alla tupla tDCF(t) = ( p(t), p(A|t) ) Per cluster più grandi, il DCF è calcolato ricorsivamente utilizzando il meccanismo della fusione: sia c* il cluster che otteniamo fondendo due cluster c i e c j 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)
L’algoritmo LIMBO consta di tre fasi: Costruzione DCF tree Clusterizzazione Assegnazione tuple ai cluster
DCF 1 DCF 2 DCF 3 ---DCF 6 child 1 child 2 child 3 ---child 6 prevDCF 1 DCF 2 ---DCF 6 next DCF 1 DCF 2 ---DCF 5 child 1 child 2 ---child 5 Root Node prevDCF 1 DCF 2 ---DCF 4 next Non leaf node Leaf node 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
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.
O ( n h d B + d U B 2 ) La complessità della fase 1 è: fase inserimento fase split n = n° totale tuple h = altezza dell’albero B = branching factor U = n° nodi non-foglia d = n° totale di valori di attributo
DCF c4 DCF c1 DCF c3 DCF c2 DCF c1 DCF c2 DCF c10 DCF c11 DCF c12 DCF c7 DCF c8 DCF c9 DCF c4 DCF c5 DCF c6 DCF c3 DCF c5 DCF c6 DCF t2 DCF c2 DCF c3 DCF c1 c1 c2 c3c4 Applica un algoritmo di clustering qualsiasi per produrre k cluster Calcola i k DCF(c)
O ( L 2 d 2 logL ) La complessità della fase 2 è (in caso si utilizzi l’algoritmo AIB): L = numero totale delle entrate DCF delle foglie dell’albero
TUPLA t1 TUPLA tn c1 c2 ck D(t1, c1) D(t1, c2) D(t1, ck)
TUPLA t1 TUPLA tn.... c1 c2 ck D(t1, c2)
O ( k d n ) La complessità della fase 3 è: k = numero totale dei cluster d = numero totale dei valori dell’attributo n = numero totale tuple
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
A d.S d.H d.K d.C a.DN a.S a.G g.Cr g.C g.T A’ A’’ directora.DNa.Sa.Gg.Crg.Tg.Cp(d) Scorsese1/ /6 Coppola1/ /6 Hitchcock01/3 02/302/6 Koster01/3 002/32/6 DirectorActorGenre t1 (Godfather II)M. ScorseseR. De NiroCrime t2 (Good Fellas)F. F. CoppolaR. De NiroCrime t3 (Vertigo)A. HitchcockJ. StewartThriller t4 (N by NW)A. HitchcockC. GrantThriller t5 (The Bishop’s Wife)K. KosterC. GrantComedy t6 (Harvey)K. KosterJ. StewartComedy p(a|v) con aЄA’’ e vЄA’
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
MIN CLASSIFICATION ERROR (E min ): Date T tuple classificate in k classi G={g 1,…,g k } e sia C una possibile classificazione delle tuple T in k cluster {c 1,..,c k }: misura il numero di tuple appartenenti alla classe g_i che ricevono un’etichetta sbagliata, per i={1,…,k}.
PRECISION (P) e RECALL (R): P i misura l’ACCURATEZZA con la quale ogni cluster c i riproduce la classe g i R i misura la COMPLETEZZA con la quale ogni cluster c i riproduce la classe g i
LIMBO S LIMBO Ø Fase 2: O ( L 2 d 2 logL )
LIMBO S LIMBO Ø Fase 1: O ( nhdB + dUB 2 )
LIMBO S LIMBO Ø Fase 3: O ( kdn )
LIMBO Ø LIMBO S
RISULTATI DEL CLUSTERING SU TUPLE:
RISULTATI DEL CLUSTERING SU ATTRIBUTI:
a causa del # ridotto di split e della ridotta dimensione dell’albero
N° valori di attributo N° di attributi
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
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. DCF c4 DCF c1 DCF c3 DCF c2 DCF c1 DCF c2 DCF c10 DCF c11 DCF c12 DCF c7 DCF c8 DCF c9 DCF c4 DCF c5 DCF c6 DCF c3 DCF c5 DCF c6 DCF t2 DCF c2 DCF c3 DCF c1 c1 c2 c3c4 L’algoritmo di clustering utilizzato nella Fase 2 deve scoprire i K rappresentanti ben separati
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
Problema intuitivo: sensibilità di LIMBO all’ordinamento dei dati in ingresso nella costruzione del DCF Tree 100 ESECUZIONI ALGORITMO Non particolarmente sensibile all’ordinamento delle tuple