Seminario su clustering dei dati – Parte II

Slides:



Advertisements
Presentazioni simili
Flusso Massimo Certificati di (non-) ottimalità
Advertisements

Sistemi e processi nei servizi sanitari CdLM Ingegneria gestionale (II anno) Introduzione Prof. Gabriele Cevenini Dipartimento di Chirurgia e Bioingegneria.
Alessandro Panconesi La Sapienza
SMFN - Ingegneria - Scienze Statistiche
Seminario su clustering dei dati – Parte I
Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte I Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.
Modelli e Algoritmi della Logistica
Progetto e Sviluppo di un algoritmo per la gestione della Federazione Interdominio in unarchitettura di Service Discovery Candidato: XXX Roma, Febbraio.
Seminario su clustering dei dati – Parte II
Modelli e Algoritmi della Logistica
Modelli e Algoritmi della Logistica
Modelli e Algoritmi della Logistica
Modelli e Algoritmi per la Logistica Branch & Bound Prof. Carlo Mannino Prof. Antonio Sassano Dipartimento di Informatica e Sistemistica Università di.
Ottimizzazione Combinatoria
Modelli e Algoritmi per la Logistica
Modelli e Algoritmi per la Logistica
Modelli e Algoritmi per la Logistica
Corso di Modelli e Algoritmi della Logistica
Modelli e Algoritmi per la Logistica
Modelli e Algoritmi per la Logistica
Modelli e Algoritmi della Logistica
Modelli e Algoritmi per la Logistica
Modelli e Algoritmi per la Logistica
Modelli e Algoritmi della Logistica
Modelli e Algoritmi per la Logistica
Apprendimento di movimenti della testa tramite Hidden Markov Model
Maurizio Lenzerini Domenico Lembo Laurea in Ingegneria Informatica - Università di Roma "La Sapienza" Corso di Basi di Dati - A.A. 2003/2004 Prima Esercitazione.
Clustering Mercoledì, 24 novembre 2004 Giuseppe Manco Readings: Chapter 8, Han and Kamber Chapter 14, Hastie, Tibshirani and Friedman Density-Based Clustering.
Università degli Studi di Perugia - Dipartimento di Ingegneria Industriale Prof. Francesco Castellani -
Università degli Studi di Perugia - Dipartimento di Ingegneria Industriale Prof. Francesco Castellani -
COPPIA ROTOIDALE LUBRIFICATA CON PERNO OSCILLANTE
Prof. Francesco Castellani
UNIVERSITÀ DEGLI STUDI DI PERUGIA Dipartimento di Ingegneria Industriale Prof. Francesco Castellani Corso di Meccanica Applicata.
Università degli Studi di Perugia - Dipartimento di Ingegneria Industriale Prof. Francesco Castellani -
UNIVERSITÀ DEGLI STUDI DI PERUGIA Dipartimento di Ingegneria Industriale Prof. Francesco Castellani Corso di Meccanica Applicata A.
UNIVERSITÀ DEGLI STUDI DI PERUGIA Dipartimento di Ingegneria Industriale Prof. Francesco Castellani Corso di Meccanica Applicata A.
UNIVERSITÀ DEGLI STUDI DI PERUGIA Dipartimento di Ingegneria Industriale Prof. Francesco Castellani Corso di Meccanica Applicata.
Prof. Francesco Castellani
UNIVERSITÀ DEGLI STUDI DI PERUGIA Dipartimento di Ingegneria Industriale Prof. Francesco Castellani Corso di Meccanica Applicata A.
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Algoritmo di Dijkstra Università di Catania
Progetto lauree scientifiche Unità 3 numeri complessi e poligoni regolari A cura di Maurizio Dini e Paola Gario Dipartimento di Matematica F. Enriques.
Prof. Cerulli – Dott.ssa Gentili
14 Settembre 1999Congresso U.M.I. MINISTERO DELLA PUBBLICA ISTRUZIONE DIREZIONE GENERALE DELL' ISTRUZIONE SECONDARIA DI 1° GRADO Insegnamento-apprendimento.
Università degli studi di salerno
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Prof. Cerulli – Dott.ssa Gentili
Prof. Cerulli – Dott.ssa Gentili
IL PROBLEMA DELLO SCHEDULING
Prof. Cerulli – Dott.ssa Gentili
Facoltà di Ingegneria Corso di Laurea: Insegnamento: Lezione n°: Titolo: Docenti: INGEGNERIA AUTOMAZIONE II 2 LINGUAGGI FORMALI ED AUTOMI PROF. ALESSANDRO.
SEQUENTIAL FUNCTIONAL CHART PARTE II
Lezione n° 18: Maggio Problema del trasporto: formulazione matematica Anno accademico 2008/2009 Prof. Cerulli – Dott.ssa Gentili Lezioni di.
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
ND-partizione (A) n   A  somma  0 M  1/2 (  a i ) for i  1 to n do S[i]  choice ({true, false}) if S[i] then somma  somma + a i if somma > M then.
Università degli Studi di Bologna
Programmazione lineare
Facoltà di Ingegneria Corso di Laurea: Insegnamento: Lezione n°: Titolo: Docenti: INGEGNERIA AUTOMAZIONE II 4 CONTROLLO SUPERVISIVO PROF. ALESSANDRO DE.
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
ANIMAZIONE IN 3D DI FLUIDI INCOMPRIMIBILI
Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.
Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più.
Alessandro Bollini Dipartimento di Informatica e Sistemistica Università di Pavia Via Ferrata, Pavia Algoritmi Evolutivi.
Università degli Studi di Roma Tor Vergata
D.I.Me.Ca. – D.I.Me.Ca. – Università degli Studi di Cagliari Facoltà di Ingegneria Dipartimento di Ingegneria.
Prof. Cerulli – Dott. Carrabs
UNITA’ OPERATIVA DISI UNIVERSITA’ DI GENOVA Progetto MURST 5% Multimedialita’ Linea di ricerca 4 “Applicazione ai beni culturali”
Modelli e Algoritmi per la Logistica Lezione – 7 Pianificazione degli Investimenti ANTONIO SASSANO Università di Roma“La Sapienza” Dipartimento di Informatica.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Transcript della presentazione:

Seminario su clustering dei dati – Parte II Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II a cura di Silvia Canale contatto e-mail: canale@dis.uniroma1.it Università di Roma“La Sapienza” Dipartimento di Informatica e Sistemistica Corso di Laurea in “Ingegneria Gestionale”

ARGOMENTI DEL SEMINARIO Problema della partizione in clique esempio algoritmo dei piani di taglio algoritmo euristico Clustering partizionale – Criteri di ottimalità Problema k-means formulazione

ESEMPIO ESEMPIO Sia X = { v1, v2, v3, v4, v5, v6, v7, v8 }. Definiamo il grafo G(N,A) associato all’insieme X, dove N = { 1, 2, 3, 4, 5, 6 } e A = { ij | 1  i  j  6 }. D = Sia D la matrice delle distanze 20 10 0.5 0.2 0.3 Risolviamo il problema di partizione in clique con vincolo di dimensione con s = 2.

APPLICAZIONE ALGORITMO Definiamo il poliedro P0  P’ definito da un sottoinsieme di disequazioni triangolo e h = 0 x12 + x13 - x23 <= 1 x12 - x13 + x23 <= 1 - x12 + x13 + x23 <= 1 x12 + x14 - x24 <= 1 x12 - x14 + x24 <= 1 - x12 + x14 + x24 <= 1 x12 + x15 - x25 <= 1 x12 - x15 + x25 <= 1 - x12 + x15 + x25 <= 1 x12 + x16 - x26 <= 1 x12 - x16 + x26 <= 1 - x12 + x16 + x26 <= 1 x13 + x14 - x34 <= 1 x13 - x14 + x34 <= 1 - x13 + x14 + x34 <= 1 x13 + x15 - x35 <= 1 x13 - x15 + x35 <= 1 - x13 + x15 + x35 <= 1 x13 + x16 - x36 <= 1 x13 - x16 + x36 <= 1 - x13 + x16 + x36 <= 1 x12 + x13 + x14 + x15 + x16 >= 1 x12 + x23 + x24 + x25 + x26 >= 1 x13 + x23 + x34 + x35 + x36 >= 1 x14 + x24 + x34 + x45 + x46 >= 1 x15 + x25 + x35 + x45 + x56 >= 1 x16 + x26 + x36 + x46 + x56 >= 1 P0 = { x [0,1]15: } { x [0,1]15 : }

APPLICAZIONE ALGORITMO risolviamo il problema di PL sia x0 la soluzione ottima del problema di PL di costo 1.8 1 1 1

APPLICAZIONE ALGORITMO per enumerazione o ispezione visiva esiste una disequazione triangolo violata da x0 ? 1 1 1 - x23 + x25 + x35 = 2 > 1 - x34 + x35 + x45 = 2 > 1 SI x0  P’ : aggiungi la disequazione a P0 e definisci il nuovo poliedro P1 = P0{ x [0,1]15: } - x23 + x25 + x35 <= 1 - x34 + x35 + x45 <= 1

APPLICAZIONE ALGORITMO risolviamo il problema di PL sia x1 la soluzione ottima del problema di PL di costo 6.25

APPLICAZIONE ALGORITMO esiste una disequazione triangolo violata da x1 ? NO x1  P’ x1  {0,1}m ? NO x1  S : esistono due insiemi S e T tali che la disequazione a 2 partizioni (S,T) sia violata da x1? applico l’euristica

APPLICAZIONE ALGORITMO esiste una disequazione a 2 partizioni violata da x1 ? Iterazione 1 Sia i = 1 e poniamo S = { 1 } Definiamo W = { 4, 6 } Poniamo T = { 4 } e verifichiamo: T = T  { 6 } se x46 = 0 T = { 4, 6 } x’(S,T)= 1  1 Nessuna disequazione a 2 partizioni trovata con S = { 1 }

APPLICAZIONE ALGORITMO Iterazione 2 Sia i = 2 e poniamo S = { 2 } Definiamo W = { 5, 6 } Poniamo T = { 5 } e verifichiamo: T = T  { 6 } se x56 = 0 T = { 5, 6 } x’(S,T)= 1  1 Nessuna disequazione a 2 partizioni trovata con S = { 2 }

APPLICAZIONE ALGORITMO Iterazione 3 Sia i = 3 e poniamo S = { 3 } Definiamo W = { 5, 6 } Poniamo T = { 5 } e verifichiamo: T = T  { 6 } se x56 = 0 T = { 5, 6 } x’(S,T)= 1  1 Nessuna disequazione a 2 partizioni trovata con S = { 3 }

APPLICAZIONE ALGORITMO Iterazione 4 Sia i = 4 e poniamo S = { 4 } Definiamo W = { 1, 5 } Poniamo T = { 1 } e verifichiamo: T = T  { 5 } se x15 = 0 T = { 1, 5 } x’(S,T)= 1  1 Nessuna disequazione a 2 partizioni trovata con S = { 4 }

APPLICAZIONE ALGORITMO Iterazione 5 Sia i = 5 e poniamo S = { 5 } Definiamo W = { 2, 3, 4 } S Poniamo T = { 2 } e verifichiamo: T = T  { 3 } se x23 = 0 T = { 2, 3 } T = T  { 4 } se x43 = 0 e x42 = 0 T = { 2, 3, 4 } x’(S,T)= 3 / 2 >1

APPLICAZIONE ALGORITMO Iterazione 6 Sia i = 6 e poniamo S = { 6 } Definiamo W = { 1, 2, 3 } S Poniamo T = { 1 } e verifichiamo: T = T  { 2 } se x12 = 0 T = { 1, 2 } T = T  { 3 } se x13 = 0 e x23 = 0 T = { 1, 2, 3 } x’(S,T)= 3 / 2 >1

APPLICAZIONE ALGORITMO esiste una disequazione a 2 partizioni violata da x1 ? x25 + x35 + x45 - x23 - x24 - x34 <= 1 x16 + x26 + x36 - x12 - x13 - x23 <= 1 SI x1  P’’ : aggiungi le disequazioni a P1 e definisci il nuovo poliedro P2 x25 + x35 + x45 - x23 - x24 - x34 <= 1 x16 + x26 + x36 - x12 - x13 - x23 <= 1 P2 = P1{ x [0,1]15: }

APPLICAZIONE ALGORITMO risolviamo il problema di PL sia x2 la soluzione ottima del problema di PL di costo 7.833

APPLICAZIONE ALGORITMO esiste una disequazione triangolo violata da x2 ? NO x2  P’ x2  {0,1}m ? NO x2  S : esistono due insiemi S e T tali che la disequazione a 2 partizioni (S,T) sia violata da x1? applico l’euristica

APPLICAZIONE ALGORITMO esiste una disequazione a 2 partizioni violata da x2 ? Iterazione 1 Sia i = 1 e poniamo S = { 1 } Definiamo W = { 4, 6 } Poniamo T = { 4 } e verifichiamo: T = T  { 6 } se x46 = 0 T = { 4, 6 } x’(S,T)= 1  1 Nessuna disequazione a 2 partizioni trovata con S = { 1 }

APPLICAZIONE ALGORITMO Iterazione 2 Sia i = 2 e poniamo S = { 2 } Definiamo W = { 3, 5, 6 } Poniamo T = { 3 } e verifichiamo: T = T  { 5 } se x35 = 0 T = T  { 6 } se x36 = 0 NO NO |T|= 1 Nessuna disequazione a 2 partizioni trovata con S = { 2 }

APPLICAZIONE ALGORITMO Iterazione 3 Sia i = 3 e poniamo S = { 3 } Definiamo W = { 2, 4, 5, 6 } Poniamo T = { 2 } e verifichiamo: T = T  { 4 } se x24 = 0 T = { 2, 4 } T = T  { 5 } se x25 = 0 e x45 = 0 NO T = T  { 6 } se x26 = 0 e x46 = 0 NO x’(S,T)= 1  1 Nessuna disequazione a 2 partizioni trovata con S = { 3 }

APPLICAZIONE ALGORITMO Iterazione 4 Sia i = 4 e poniamo S = { 4 } Definiamo W = { 1, 3, 5 } Poniamo T = { 1 } e verifichiamo: T = T  { 3 } se x13 = 0 T = T  { 5 } se x15 = 0 e x35 = 0 T = { 1, 3 } NO x(S,T)= 1  1 Nessuna disequazione a 2 partizioni trovata con S = { 4 }

APPLICAZIONE ALGORITMO Iterazione 5 Sia i = 5 e poniamo S = { 5 } Definiamo W = { 2, 3, 4 } Poniamo T = { 2 } e verifichiamo: T = T  { 3 } se x23 = 0 T = T  { 4 } se x24 = 0 NO T = { 2, 4 } x(S,T)= 1  1 Nessuna disequazione a 2 partizioni trovata con S = { 5 }

APPLICAZIONE ALGORITMO Iterazione 6 Sia i = 6 e poniamo S = { 6 } Definiamo W = { 1, 2, 3 } Poniamo T = { 1 } e verifichiamo: T = T  { 2 } se x12 = 0 T = { 1, 2 } T = T  { 3 } se x13 = 0 e x23 = 0 NO x(S,T)= 1  1 Nessuna disequazione a 2 partizioni trovata con S = { 6 }

APPLICAZIONE ALGORITMO esiste una disequazione a 2 partizioni (S,T) violata da x2 ? NO x2  P’’ x2  {0,1}m ? NO x2  S : applica il metodo del branch and bound per risolvere il problema di PL01 STOP

APPLICAZIONE ALGORITMO applichiamo il metodo del branch and bound per risolvere il problema di PL01 e ricaviamo la soluzione x3 di costo 10.7 la soluzione x3 è una soluzione 0-1 la soluzione x3 rispetta le disequazioni triangolo x3  P’ STOP la soluzione x3 è la soluzione ottima del problema

Algoritmo euristico di soluzione per determinare un upper bound CONSIDERAZIONI Il costo della soluzione ottima è dTx3 =10.7 Per ogni poliedro Ph indichiamo LB(Ph) = min { dTx: x Î Ph } Abbiamo visto che LB(P0) < LB(P1) < LB(P2) < dTx3 1.8 < 6.25 < 7.833 < 10.7 Più vincoli violati aggiungiamo e maggiore è il valore del lower bound E se P2 {0,1}m avesse avuto dimensioni troppo grandi? Algoritmo euristico di soluzione per determinare un upper bound

ALGORITMO EURISTICO Poni U := N, i := 1 Trova i nodi u e v più lontani in U Ordina le distanze dei nodi in U\{u} da u Sia Ou il vettore dei nodi ordinati Forma un cluster Ci con i primi s-1 elementi in Ou U = U \ Ci Ordina le distanze dei nodi in U \{v} da v Sia Ov il vettore dei nodi ordinati Forma un cluster Ci+1 con i primi s-1 elementi in Ov U = U \ Ci+1 i = i + 2 SE |U| ≥ 2s ALLORA torna al passo 2. ALTRIMENTI SE s ≤ |U| < 2s ALLORA Ci = U ALTRIMENTI assegna ogni nodo in U al cluster cui appartiene il nodo più vicino

ESEMPIO ALGORITMO EURISTICO ESEMPIO Consideriamo nuovamente il grafo G(N,A) associato all’insieme X = { v1, v2, v3, v4, v5, v6, v7, v8 }, dove N = { 1, 2, 3, 4, 5, 6 } e A = { ij | 1  i  j  6 }. D = Sia D la matrice delle distanze 20 10 0.5 0.2 0.3 Applichiamo l’algoritmo euristico di soluzione del problema di partizione in clique con vincolo di dimensione con s = 2.

ESEMPIO ALGORITMO EURISTICO Poniamo U := { 1, 2, 3, 4, 5, 6 }, i := 1 Determiniamo i nodi più lontani in U e poniamo u := 1 e v := 2 Ordiniamo le distanze dei nodi in U\{1} da 1 e poniamo O1 = { 6, 5, 4, 3, 2 } Formiamo un cluster C1 con i primi s-1 = 1 elementi in O1 C1:= { 1, 6 } 20 10 0.5 0.2 0.3 D =

ESEMPIO ALGORITMO EURISTICO Ordiniamo le distanze dei nodi in U\{2} da 2 e poniamo O2 = { 5, 4, 3 } Formiamo un cluster C2 con il primo elemento in O2 C2 = { 2, 5 } U = { 3, 4 } i = 3 2 ≤ |U| < 4 C3 = { 3, 4 } C3 C2 La soluzione euristica è P = { C1, C2 , C3 } 10 Il valore della soluzione è c(P) = 0.5 + 0.5 +10 = 11 0.5 0.5 C1

PROBLEMA DI PARTIZIONE DI CLIQUE Risolvere il problema di partizione in clique dei nodi di un grafo significa determinare la soluzione del seguente problema 1 dove l’insieme delle soluzioni è somma delle distanze tra nodi appartenenti allo stesso cluster È l’unico criterio di ottimalità?

CRITERI DI OTTIMALITÀ I criteri di ottimalità sono funzioni che associano un valore numerico ad un cluster I criteri di ottimalità si dividono in due classi: criteri di separazione (da massimizzare) criteri di omogeneità (da minimizzare) I criteri di separazione si basano sull’ottimizzazione delle relazioni (similarità e dissimilarità) tra punti in cluster diversi critero SPLIT: minima distanza tra cluster

CRITERI DI SEPARAZIONE Assegniamo ad ogni arco ij di A il peso Assegniamo ad ogni cluster V  N il minimo dei pesi degli archi in (V) Assegniamo ad ogni partizione P(G)= { V1, V2, …, Vk } del grafo G(N,A) la somma dei costi degli elementi della partizione c(P(G)) = 2 + 2 + 2 = 6

CRITERI DI SEPARAZIONE critero CUT: somma delle distanze tra cluster critero CUT normalizzato:

CRITERI DI OMOGENEITÀ I criteri di omogeneità si basano sull’ottimizzazione delle relazioni (similarità e dissimilarità) tra punti nello stesso cluster critero DIAMETRO: massima distanza nel cluster 20 10 0.5 0.2 0.3 critero RAGGIO: minima tra le distanze massime nel cluster

CRITERI DI OMOGENEITÀ critero STELLA: minima somma delle distanze nel cluster 20 10 0.5 0.2 0.3 D = critero CLIQUE: somma delle distanze nel cluster

CENTRO DI UN CLUSTER Si definisce centro di un cluster la media aritmetica dei punti del cluster X = I criteri di omogeneità basati sui “centri” si riferiscono sull’ottimizzazione delle relazioni (similarità e dissimilarità) tra i punti di un cluster ed il centro del cluster

CRITERI DI OMOGENEITÀ critero SOMMA DEI QUADRATI: somma delle distanze euclidee al quadrato tra i punti di cluster ed il centro X = critero VARIANZA: somma dei quadrati normalizzata

PROBLEMI DI CLUSTERING PARTIZIONALE In base al criterio di ottimalità, abbiamo diversi problemi di clustering partizionale critero CLIQUE: problema di partizione in clique CLIQUE PARTITIONING PROBLEM critero STELLA: problema p-median p-MEDIAN PROBLEM critero SOMMA DEI QUADRATI: problema k-means k-MEANS PROBLEM

K-MEANS critero SOMMA DEI QUADRATI: problema k-means Teorema di Huyhen La somma delle distanze al quadrato tra i punti di un cluster ed il centro è pari al rapporto tra la somma delle distanze al quadrato tra i punti del cluster ed il numero di punti Formulazione del problema del K-means

K-MEANS – ALGORITMO EURISTICO INPUT il numero k di cluster seleziona in maniera del tutto casuale k punti assegna ogni punto al cluster il cui centro sia più vicino calcola nuovamente i centri dei cluster Se non è verificato il criterio di convergenza, torna al passo 2 Criterio di convergenza non ci sia alcun assegnamento nuovo possibile di alcun punto da un cluster ad un altro (passo 2 non cambia nulla) la funzione di errore quadratico cessi di ridursi significativamente dopo un certo numero di iterazioni (passo 3 non cambia nulla)

K-MEANS – ALGORITMO EURISTICO Passo I seleziona in maniera del tutto casuale k punti all’interno dell’insieme di dati K=3 Passo II assegna ogni punto al cluster il cui centro sia più vicino al punto in esame

K-MEANS – ALGORITMO EURISTICO Passo III calcola nuovamente i centri dei cluster secondo la configurazione attuale K=3 Passo IV assegna ogni punto al cluster il cui centro sia più vicino al punto in esame

K-MEANS – ALGORITMO EURISTICO Passo V calcola nuovamente i centri dei cluster secondo la configurazione attuale K=3 Passo VI assegna ogni punto al cluster il cui centro sia più vicino al punto in esame

K-MEANS – ALGORITMO EURISTICO Passo VII calcola nuovamente i centri dei cluster secondo la configurazione attuale K=3 Passo VIII assegna ogni punto al cluster il cui centro sia più vicino al punto in esame

K-MEANS – ALGORITMO EURISTICO Passo IX calcola nuovamente i centri dei cluster secondo la configurazione attuale K=3 Passo X assegna ogni punto al cluster il cui centro sia più vicino al punto in esame

K-MEANS – ALGORITMO EURISTICO Nessuna nuova assegnazione possibile Passo XI calcola nuovamente i centri dei cluster secondo la configurazione attuale K=3 STOP Nessuna nuova assegnazione possibile Passo XII assegna ogni punto al cluster il cui centro sia più vicino al punto in esame

MATERIALE DEL SEMINARIO Le slide di questo seminario sono reperibili nella pagina del corso di Algoritmi di Classificazione e Reti Neurali nella pagina del corso di Ottimizzazione Combinatoria, nella sezione “clustering dei dati” (prime 4 lezioni) http://www.dis.uniroma1.it/~or/gestionale/OC/