Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoFerdinando Molteni Modificato 9 anni fa
1
Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica e Gestionale Corso di Laurea in “Ingegneria Gestionale” A.A. 2013-2014 a cura di Silvia Canale contatto e-mail: canale@dis.uniroma1.it
2
2 Definizione del problema di clustering di dati Apprendimento automatico e data mining Schema generale di una procedura di clustering Applicazioni del clustering di dati Definizioni preliminari e rappresentazione dei dati Misure di similarità e di dissimilarità – distanze Problema della partizione in clique definizione e formulazione algoritmo dei piani di taglio Problema k-means ARGOMENTI DEL SEMINARIO
3
3 DEFINIZIONE DEL PROBLEMA CLUSTERING: classificazione di oggetti sulla base delle similarità percepite Gli oggetti sono descritti: - dagli attributi che lo definiscono (misure oggettive o soggettive) - dalle relazioni con gli altri oggetti Lo scopo è quello di determinare un’organizzazione degli oggetti che sia: - valida - facile da determinare Un cluster è un gruppo di oggetti simili (criterio di omogeneità). Oggetti che appartengono a cluster diversi non sono simili (criterio di separazione).
4
4 DEFINIZIONE DEL PROBLEMA Un cluster è un gruppo di oggetti simili. Sepuntispazio di distanza allora Se gli oggetti sono punti in uno spazio di distanza allora possiamo dare la seguente definizione: Un cluster è un sottoinsieme di punti tali che la distanza tra due punti qualsiasi del cluster è minore della distanza tra un qualsiasi punto del cluster ed un punto esterno al cluster. Sia X uno spazio di oggetti e d una distanza definita su X. Indicheremo con (X,d) lo spazio di distanza definito da d su X. Un sottoinsieme V X è un cluster se e solo se d(i,j) d(k,l)per ogni i,j,k V, l V 1 1 1 4 4 5
5
5 APPRENDIMENTO AUTOMATICO ragionamento induttivo Apprendimento: Processo di ragionamento induttivo che permette di passare dalle osservazioni alle regole generali (tipico dell’uomo che impara dall’esperienza) Automatico: Definizione automatica, distinta da quella naturale, delle regole generali a partire dalle osservazioni (dati sperimentali) Scopo: Estrazione di informazione interessante dai dati nuova (non è qualcosa di già noto, analisi esplorativa) oppure attesa (ipotesi a priori da convalidare, analisi confermativa) implicita: presente nei dati analizzati ma non immediatamente accessibile potenzialmente utile: può essere utilizzata per prendere delle decisioni REGOLE OSSERVAZIONI Processo deduttivo Processo induttivo INFORMAZIONE
6
6 APPRENDIMENTO AUTOMATICO Processo automatico di estrazione di informazioni su un sistema fisico S incognito partendo da un insieme finito di n osservazioni. L’insieme { v 1, v 2, …, v n } prende il nome di training set. non supervisionato Apprendimento non supervisionato (clustering): Il sistema S non ha ingressi e lo scopo è determinare una regola che metta in relazione le osservazioni del training set sulla base di una misura di similarità definita. supervisionato Apprendimento supervisionato (analisi discriminante): Il sistema S riceve gli ingressi { c 1, c 2, …, c n } e lo scopo è determinare una regola che metta in relazione le osservazioni del training set con gli ingressi. S v1v1 v2v2 v3v3 vnvn c1c1 c2c2 c3c3 cncn
7
7 ESTRAZIONE DELLA CONOSCENZA Pulizia ed integrazione dei dati Data Mining Valutazione regole Database Selezione e trasformazione dei dati Informazione Datawarehouse Regole APPRENDIMENTO AUTOMATICO
8
8 APPLICAZIONI Segmentazione di immagini – partizione di un’immagine in regioni che siano omogenee rispetto ad una proprietà di interesse (es. intensità, colore, struttura, …) Riconoscimento di oggetti e caratteri – Analisi di immagini allo scopo di riconoscere particolari strutture Information retrieval – Processo di raccolta e recupero automatico di informazioni (es. libri e riviste di una biblioteca) Segmentazione di grandi database in gruppi omogenei di dati Classificazioni di documenti web Analisi predittiva in Customer Relationship Management - Customer profiling - Customer retention - Market segmentation - … ….E MOLTE ALTRE
9
9 CLUSTERING – SCHEMA GENERALE 1.Rappresentazione dei dati Definizione del numero, del tipo e della scala delle caratteristiche (o attributi) Definizione del numero di cluster (o classi) Selezione delle caratteristiche (opzionale) Estrazione delle caratteristiche (opzionale) 2.Definizione di una misura di similarità sull’insieme dei dati 3.Applicazione di un algoritmo di clustering 4.Astrazione sui dati 5.Valutazione dei risultati studio dell’andamento dei cluster analisi della validità dei cluster confronto esterno confronto interno controllo relativo DESCRIZIONE COMPATTA E SINTETICA DEI CLUSTER
10
10 DEFINIZIONI PRELIMINARI Un algoritmo di clustering partizionale raggruppa le osservazioni del training set in cluster sulla base di una misura di similarità definita sull’insieme delle coppie di osservazioni. Due tipi di algoritmi di clustering partizionale: - clustering di tipo “hard”: un’osservazione è assegnata ad un solo cluster; - clustering di tipo “fuzzy”: un’osservazione ha un grado di appartenenza per ciascuno dei cluster individuati. Le osservazioni possono essere rappresentate in due formati standard: matrice delle istanze di dato matrice delle similarità
11
11 MATRICE DELLE ISTANZE Un’osservazione (o istanza) v è rappresentata da un vettore di m caratteristiche (o attributi). v 1 v 2 v = … … v m L’insieme X = { v 1, v 2, …, v n } delle osservazioni viene rappresentato come una matrice n x m detta matrice delle istanze. X =
12
12 TIPI DI DATO Un’istanza può rappresentare un oggetto fisico oppure un concetto astratto. Un attributo può essere di diversi tipi: quantitativo continuo (es. peso, larghezza, temperatura) discreto (es. età di un individuo) intervallo (es. durata di un evento) qualitativo nominale (es. colori) ordinato (es. intensità di un suono, valutazione di una sensazione) Sono inoltre possibili altre rappresentazioni delle istanze.
13
13 MATRICE DELLE RELAZIONI Sia X = { v 1, v 2, …, v n } un insieme di n istanze. Indichiamo con V = { 1, 2, …, n } l’insieme degli indici da 1 a n. Una relazione r definita sullo spazio X x X delle coppie di istanze può essere rappresentata come una matrice n x n detta matrice delle relazioni. R = Consideriamo relazioni simmetriche ( per ogni i, j V ) e in particolare: relazioni di similarità (più v i e v j sono simili, più è grande) relazioni di dissimilarità (più v i e v j sono simili, più è basso)
14
14 DISTANZE distanza Una distanza d definita sull’insieme X è una relazione che gode delle seguenti proprietà: a) d è simmetrica per ogni coppia (i,j) in V. b) d assume valore nullo per ogni coppia (i,i) in V. Indicheremo con (X,d) lo spazio di distanza definito da d su X. Se inoltre d soddista la proprietà: c) d soddisfa la diseguaglianza triangolare per ogni terna (i,j,k) in V semimetrica allora d è una semimetrica sull’insieme X. metrica Si definisce metrica una semimetrica d che soddisfa l’ulteriore proprietà: v1v1 1 3 4 v2v2 v3v3 v1v1 1 2 4 v2v2 v3v3
15
15 NORME Se X è uno spazio vettoriale definito sul campo dei reali , una funzione || || : X + si definisce norma se: i. || v || = 0 v = 0 per ogni v in X. ii. || v || = | | || v || per ogni in , v in X. iii. || v i + v j || || v i || + || v j || per ogni v i,v j in X. Si definisce spazio normato la coppia (X, || || ). Ad uno spazio normato (X, || || ) può essere associata la topologia metrica indotta dalla norma || || tramite l’identità: Consideriamo lo spazio normato ( m, || || p ) dove || || p è la norma l p METRICA NORMA
16
16 UNA METRICA NORMA È UNA METRICA Dim. Sia || || : X + una norma definita su X. La funzione a) è simmetrica b)d assume valore nullo per ogni coppia (i,i) in V. c) d soddisfa la diseguaglianza triangolare per ogni terna (i,j,k) in V || v || = | | || v || || v || = 0 v = 0 || v i + v j || || v i || + || v j ||
17
17 METRICHE NORME Una classe molto importante di metriche è quella delle metriche d l p indotte dalle diverse norme l p : p = 1 – distanza di Manhattan o metrica “city-block” p = 2 – distanza Euclidea p = – distanza di Lagrange p = 0 – distanza di Hamming
18
18 PROBLEMA DI PARTIZIONE Un algoritmo di clustering partizionale di tipo “hard” determina una partizione delle osservazioni del training set sulla base di una misura di similarità definita sull’insieme delle coppie di osservazioni. Si definisce partizione P di un insieme X = { v 1, v 2, …, v n } è una famiglia finita di k insiemi V 1, V 2, …, V k P = { V 1, V 2, …, V k } tali che ogni insieme V j in P è un sottoinsieme non vuoto di X: V j X
19
19 RAPPRESENTAZIONE DEI DATI Dato un insieme di osservazioni X = { v 1, v 2, …, v n } e la matrice delle similarità relative all’insieme X, si definisce grafo associato a X il grafo G(N,A) tale che: N rappresenta l’insieme dei nodi { 1, 2, …, n } tale che ciascun nodo i N sia associato ad un’osservazione v i X A sia l’insieme degli archi che connettono ogni coppia non ordinata (v i, v j ) di osservazioni in X con v i v j. L’arco in A che connette due nodi i e j viene indicato con (i,j) o con ij. Siano n e m il numero di nodi e di archi, rispettivamente, in N e A. Il grafo associato a X è completo!
20
20 INSIEME DELLE SOLUZIONI – DEFINIZIONI Si definisce clustering del grafo G(N,A) una partizione P(G) = { V 1, V 2, …, V k } dei nodi del grafo G(N,A). clique Gli elementi V i P(G) vengono definiti componenti o clique del clustering P(G). clique Dato un grafo G(N,A) si definisce clique un sottoinsieme V N dei nodi tali che per ogni coppia di nodi i e j l’arco ij appartiene ad A. clique Se il grafo G(N,A) è completo, ogni sottoinsieme V N è una clique. NON è una clique: 25 A
21
21 INSIEME DELLE SOLUZIONI – DEFINIZIONI Si definisce clustering del grafo G(N,A) una partizione P(G) = { V 1, V 2, …, V k } dei nodi del grafo G(N,A). Come sono fatte le soluzioni di un problema di clustering? Sia V h N. Indichiamo con (V h ) l’insieme degli archi che connettono nodi in V h e nodi fuori da V h Se |V h | = 1, (V h ) è la stella del nodo in V h.
22
22 INSIEME DELLE SOLUZIONI – DEFINIZIONI Siano V h, V l N. Indichiamo con (V h,V l ) l’insieme degli archi che connettono nodi in V h e nodi in V l In generale, dati k sottoinsiemi V 1,…, V k N, l’insieme degli archi con estremi in due sottoinsiemi diversi viene indicato con
23
23 INSIEME DELLE SOLUZIONI – DEFINIZIONI multi-cut Ad ogni clustering P(G)= { V 1, V 2, …, V k } del grafo G(N,A) è possibile associare un insieme multi-cut (P(G)) (P(G)) = ( V 1, V 2, …, V k ) Definiamo il vettore di incidenza y P multi-cut di un insieme multi-cut (P(G))
24
24 INSIEME DELLE SOLUZIONI – DEFINIZIONI Sia V i N. Indichiamo con E(V i ) l’insieme degli archi che connettono nodi in V i. Se |V i | = 1, E(V i ) è vuoto. In generale, dati k sottoinsiemi V 1,…, V k N, l’insieme degli archi con estremi nello stesso sottoinsieme viene indicato con
25
25 INSIEME DELLE SOLUZIONI – DEFINIZIONI partizione Ad ogni clustering P(G)= { V 1, V 2, …, V k } del grafo G(N,A) è possibile associare un insieme partizione E(P(G)) E(P(G)) = E ( V 1, V 2, …, V k ) Definiamo il vettore di incidenza x P partizione E(P(G)) di un insieme partizione E(P(G)) multi-cut partizione Gli insiemi multi-cut e partizione definiscono una partizione di A
26
26 VETTORE DI INCIDENZA DI UNA PARTIZIONE – Esempio – Sia X = { v 1, v 2, v 3, v 4, v 5, v 6, v 7, v 8 }. Definiamo il grafo G(N,A) associato all’insieme X, dove N = { 1, 2, 3, 4, 5, 6, 7, 8 } e A = { ij | 1 i j 8 }. Consideriamo il clustering P(G)= { V 1, V 2, V 3 }
27
27 INSIEME DELLE SOLUZIONI Supponiamo di voler determinare una partizione in k cluster. numero uguale Sia s =. Se vogliamo che i cluster contengano un numero uguale di osservazioni, il problema è equivalente al problema di determinare una partizione in cluster che abbiano ciascuno un numero di osservazioni non inferiori a s. L’insieme S delle soluzioni del problema di clustering di X è l’insieme dei vettori di incidenza di tutte le possibili insiemi partizione E(P(G)) del grafo G(N,A) associato a X. Vincolo di dimensione s =3
28
28 PROBLEMA DI PARTIZIONE IN CLIQUE In base al valore di s possiamo avere diversi problemi: partizione in clique se s 1, S è l’insieme delle soluzioni del problema di partizione in clique (CPP) dei nodi di un grafo Consideriamo l’insieme delle soluzioni partizione in clique con vincolo di dimensione se s 1, S è l’insieme delle soluzioni del problema di partizione in clique con vincolo di dimensione (CPPMIN) equipartizione se k = 2, S è l’insieme delle soluzioni del problema di equipartizione equipartizione in k sottoinsiemi se n è multiplo di s, S è l’insieme delle soluzioni del problema di equipartizione in k sottoinsiemi
29
29 CRITERIO DI OTTIMALITÀ – Esempio – Sia X = { v 1, v 2, v 3, v 4, v 5, v 6, v 7, v 8 } e s = 2 Definiamo il grafo G(N,A) associato all’insieme X, dove N = { 1, 2, 3, 4, 5, 6, 7, 8 } con n = 8, e A = { ij | 1 i j 8 }. Consideriamo i due clustering P 1 (G)= { V 1, V 2, V 3 } e P 2 (G)= { V 4, V 5, V 6 } Come valutare le soluzioni in S? Qual è la migliore soluzione? In P 1 (G) i punti appartenenti allo stesso cluster sono più vicini…
30
30 CRITERIO DI OTTIMALITÀ In P 1 (G) i punti appartenenti allo stesso cluster sono più vicini… La matrice delle relazioni contiene le informazioni relative alla similarità o alla dissimilarità tra i punti Sia D la matrice n x n delle relazioni di dissimilarità (più i e j sono simili, più è basso) Assegniamo ad ogni arco ij di A il peso
31
31 CRITERIO DI OTTIMALITÀ Assegniamo ad ogni cluster V N la somma dei pesi degli archi in E(V) Assegniamo ad ogni arco ij di A il peso Assegniamo ad ogni partizione P(G)= { V 1, V 2, …, V k } del grafo G(N,A) la somma dei costi degli elementi della partizione c(P 1 (G)) = 1.5 + 3 + 3 = 7.5 c(P 2 (G)) = 15 < P 1 (G) è migliore di P 2 (G)
32
32 CRITERIO DI OTTIMALITÀ Ad ogni partizione P(G)= { V 1, V 2, …, V k } del grafo G(N,A) associamo il costo vettore di incidenza partizione E(P(G)) Ad ogni P(G)= { V 1, V 2, …, V k } è associato il vettore di incidenza x P di un insieme partizione E(P(G))
33
33 CRITERIO DI OTTIMALITÀ Ad ogni partizione P(G)= { V 1, V 2, …, V k } del grafo G(N,A) associamo il costo – Esempio – Sia X = { v 1, v 2, v 3, v 4, v 5, v 6, v 7, v 8 } e s = 2 Consideriamo la soluzione x P associata al clustering P(G)= { V 1, V 2, V 3 }
34
34 FORMULAZIONE MATEMATICA DEL CPP partizione in clique Risolvere il problema di partizione in clique dei nodi di un grafo significa determinare la soluzione del seguente problema dove l’insieme delle soluzioni è
35
35 FORMULAZIONE DI UN PROBLEMA DI PL01 Sia S l’insieme delle soluzioni di un problema di Programmazione Lineare 0–1 Esempio CPP – Dato un grafo G(N,A) S è l’insieme di tutte le possibili partizioni in clique di G(V,A)
36
36 FORMULAZIONE DI UN PROBLEMA DI PL01 Indichiamo con x* la soluzione ottima del problema di PL01 In un problema di PL01 S è un insieme finito La soluzione ottima x* esiste sempre e può essere individuato con una enumerazione completa di S L’enumerazione completa di tutte le soluzioni in S molto richiede tempi molto lunghi PROCEDURA DI ENUMERAZIONE COMPLETA (ESEMPIO CPP) 1.Genera tutte le partizioni in clique del grafo G(N,A) 2.Per ogni partizione in clique calcola il costo 3.Scegli la partizione in clique che produce la soluzione di costo minimo
37
37 SOLUZIONE DI UN PROBLEMA DI PL01 sofisticatiefficienti In generale, la soluzione di un problema di PL01 richiede algoritmi sofisticati e molto efficienti. buona Quanto è buona la soluzione ammissibile trovata? Gli algoritmi di soluzione si basano generalmente su: certificati di qualità della soluzione metodologie generali di soluzione, sia di tipo esatto che di tipo euristico Gli algoritmi di soluzione possono essere: di tipo esatto: determinano sempre la soluzione ottima approssimati: determinano sempre una soluzione ammissibile non implica Formulare non implica risolvere un problema di PL0.
38
38 SEMISPAZI E POLIEDRI P P = { x R m : Ax ≤ b } Siano A R p x m una matrice reale di p righe e m colonne b R p un vettore reale di p componenti L’insieme dei vettori x R m che soddisfano le p disequazioni x ≤ b q del sistema POLIEDROP è definito POLIEDRO e viene indicato con la lettera P Ax ≤ b P per q = 1, …, p x P x ≤ b q per q = 1, …, p
39
39 SEMISPAZI E FORMULAZIONI P P = { x R 2 : } Geometricamente, ogni disequazione del sistema Ax ≤ b individua un semispazio Esempio – m = 2 Consideriamo la retta P Quindi un poliedro P è intersezione di un numero finito q di semispazi.P P P = { x R p : Ax ≤ b } x1x1 x2x2
40
40 FORMULAZIONE DI UN PROBLEMA DI PL01 Sia S l’insieme delle soluzioni di un problema di Programmazione Lineare 0–1. P {0,1} m = S formulazione Il poliedro P è una formulazione del problema di Programmazione Lineare 0–1 se e solo se contiene tutti i vettori di S : S P non contiene alcun vettore di S’ ={ 0,1} m \ S : P S’ = infinite Ci sono infinite formulazioni dello stesso problema di PL01. Per ognuna vale l’ovvia proprietà: min { c T x: x S } = min { c T x: x P {0,1} m } = c T x* x1x1 x2x2P
41
41 FORMULAZIONI E LOWER BOUND Per ogni formulazione P vale inoltre la disuguaglianza Il valore LB(P) = min { c T x: x P } viene definito lower bound del problema di PL01. min { c T x: x P {0,1} m } min { c T x: x P } Per ogni formulazione di un problema di PL01 con insieme delle soluzioni vale la proprietà LB(P) c T x* Il lower bound è il valore ottimo della soluzione di un problema di PL che viene definito rilassamento lineare min { c T x: x P }
42
42 FORMULAZIONE OTTIMA Esiste una formulazione P* migliore di tutte le altre? P* = conv ( S ) Per il problema della partizione in clique dei nodi di un grafo, non conosciamo tutte le disequazioni che definiscono il poliedro P* Argomento trattato nel corso di Ottimizzazione Combinatoria (III anno) x1x1 x2x2P* conosciamo alcune famiglie di disequazioni che definiscono P* SI Inoltre…. valida Una disequazione a T x b si definisce valida per un poliedro P se e solo se è soddisfatta da tutti i punti in P conosciamo famiglie di disequazioni valide per P* P P { x R p : a T x b }
43
43 DISEQUAZIONI TRIANGOLO Consideriamo tre nodi i, j, k N di G(N,A) disequazione triangolo Si definisce disequazione triangolo relativa ai nodi i, j, k Una disequazione triangolo rappresenta il vincolo logico:
44
44 (a) NO (b) (c)(e)(d)(f)(h)(g)
45
45 FORMULAZIONE DEL PROBLEMA CPP Consideriamo il poliedro definito dalle disequazioni triangolo relative a tutte le terne di nodi G(N,A) È facile verificare che P ’ è una formulazione del problema CPP P {0,1} m = S
46
46 (a) (b) (c)(e)(d)(f)(h)(g) NO
47
47 FORMULAZIONE DEL PROBLEMA CPP Le disequazioni triangolo sono tante. 3 disequazioni per ogni terna ordinata di nodi Consideriamo il rilassamento lineare del problema x {0,1} m non intere Ora sono ammissibili soluzioni non intere S P’ ?
48
48 DISEQUAZIONI A 2 PARTIZIONI Possiamo trovare disequazioni migliori delle disequazioni triangolo? Siano S,T N due sottoinsiemi disgiunti e non vuoti di N. 2 partizioni La disequazione a 2 partizioni (S,T) associata ai sottoinsiemi S e T è S T 2 3 1 4 2 partizioni valida Una disequazione a 2 partizioni (S,T) associata ai sottoinsiemi S e T definisce è valida per il poliedro P*. Definisce una faccia di P* se e solo se
49
49 DISEQUAZIONI A 2 PARTIZIONI tutte2 partizioni Sia P ’’ il poliedro costituito da tutte le disequazioni a 2 partizioni (S,T) con |S| |T| S T 2 3 1 4 Osservazione2 partizioni Osservazione Le disequazioni triangolo sono disequazione a 2 partizioni (S,T) con |S|= 1 e |T| = 2 P’’ P’ Esempio Esempio Consideriamo il grafo G(N,A ) e la soluzione soddisfa tutte le 12 disequazioni triangolo non soddisfa la disequazione a 2 part. S = { 1 } e T = { 2, 3, 4 } P’’ P’
50
50 DISEQUAZIONI A 2 PARTIZIONI Quindi… 2 partizioni Data una soluzione x’ appartenente a P’ è possibile determinare S e T tali che la disequazione a 2 partizioni (S,T) sia violata da x’ ? P* P’’ P’ P* P’ P’’ PROBLEMA DI SEPARAZIONE delle disequazioni a 2 partizioni (S,T) x’ S T 2 3 1 4 come individuare S e T tale che
51
51 EURISTICA DI SEPARAZIONE Sia x’ una soluzione appartenente a P’. Vogliamo determinare, se esiste, una disequazione a 2 partizioni (S,T) con |S|=1 Per ogni i N poni S = { i } e determina l’insieme W = { j N \{i} : 0 < x ij ’ < 1 } scegli un ordinamento nell’insieme W: W = { j 1, …, j l } poni T = { j 1 } per ogni k = 2, …, l poni T = T { j k } se x j k j k’ ’ = 0 per ogni j k’ T se |T|>1 e x’( (S,T))>1, la disequazione a 2 partizioni (S,T) è violata ALGORITMO EURISTICO complessità O(n 3 ) La soluzione dipende dall’ordinamento!
52
52 EURISTICA DI SEPARAZIONE ESEMPIO Consideriamo la soluzione x’ in figura e applichiamo l’algoritmo euristico di separazione S T 2 3 1 4 Sia i = 1 e poniamo S = { 1 } Definiamo W = { 2, 3, 4 } e scegliamo come ordinamento dato dalla permutazione naturale Poniamo T = { 2 } e verifichiamo: T = T { 3 } se x 32 ’ = 0 Iterazione 1 T = { 2, 3 } T = T { 4 } se x 43 ’ = 0 e x 42 ’ = 0 T = { 2, 3, 4 } x’(S,T)= 3 / 2 >1
53
53 EURISTICA DI SEPARAZIONE S T 2 3 1 4 Sia i = 2 e poniamo S = { 2 } Definiamo W = { 1 } Poniamo T = { 1 } Iterazione 2 |T| = 1 non è possibile determinare una disequazione violata Per simmetria, è facile verificare che le iterazione 3 e 4 danno lo stesso risultato dell’iterazione 2. L’unica disequazione violata da x’ trovata dall’algoritmo è
54
54 FORMULAZIONE OTTIMA Per il problema della partizione in clique dei nodi di un grafo, non conosciamo tutte le disequazioni che definiscono il poliedro P* conosciamo alcune famiglie di disequazioni che definiscono P* conosciamo famiglie di disequazioni valide per P* In particolare, disequazioni triangolo le disequazioni triangolo relative ai nodi i, j, k 2 partizioni le disequazioni a 2 partizioni (S,T) associate ai sottoinsiemi S e T P’ P’’
55
55 ALGORITMO DEI “PIANI DI TAGLIO” Definisci il poliedro P 0 P’ definito da un sottoinsieme di disequazioni triangolo Poni h = 0 risolvi il problema di PL sia x h la soluzione ottima del problema di PL esiste una disequazione triangolo violata da x h ? P* P’ ALGORITMO DI SOLUZIONE P’ x0x0 P0P0 P0P0 P1P1 SI x h P’ : aggiungi la disequazione a P h e definisci il nuovo poliedro P h+1 P*
56
56 esiste una disequazione triangolo violata da x h ? ALGORITMO DI SOLUZIONE NO x h P’ ALGORITMO DEI “PIANI DI TAGLIO” x h {0,1} m ? P’’ P’ P* P’ P0P0 P* x0x0 2 partizioni NO x h S : esistono due insiemi S e T tali che la disequazione a 2 partizioni (S,T) sia violata da x h ? STOP SI x h P’’ : aggiungi la disequazione a P h e definisci il nuovo poliedro P h+1 SI x h S : x h è la soluzione ottima x0x0 P0P0
57
57 2 partizioni esistono due insiemi S e T tali che la disequazione a 2 partizioni (S,T) sia violata da x h ? ALGORITMO DI SOLUZIONE NO x h P’’ ALGORITMO DEI “PIANI DI TAGLIO” x h {0,1} m ? P’ P0P0 P* P’ P0P0 P* x0x0 NO x h S : applica il metodo del branch and bound per risolvere il problema di PL01 P’’ x0x0 STOP SI x h S : x h è la soluzione ottima P’’ STOP VERO se l’algoritmo di separazione è esatto
58
58 ESEMPIO ESEMPIO Sia X = { v 1, v 2, v 3, v 4, v 5, v 6, v 7, v 8 }. 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 }. 20 10 20 0.5 0.2 0.3 0.5 D = Sia D la matrice delle distanze Risolviamo il problema di partizione in clique con vincolo di dimensione con s = 2.
59
59 APPLICAZIONE ALGORITMO Definiamo il poliedro P 0 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 P 0 = { x [0,1] 15 : } { x [0,1] 15 : } 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
60
60 risolviamo il problema di PL sia x 0 la soluzione ottima del problema di PL di costo 1.8 1 1 1 1 1 1 1 1 1 1 1 1 APPLICAZIONE ALGORITMO
61
61 esiste una disequazione triangolo violata da x 0 ? SI x 0 P’ : aggiungi la disequazione a P 0 e definisci il nuovo poliedro per enumerazione o ispezione visiva 1 1 1 1 1 1 1 1 1 1 1 1 - x23 + x25 + x35 <= 1 - x34 + x35 + x45 <= 1 P 1 = P 0 { x [0,1] 15 : } - x34 + x35 + x45 = 2 > 1 - x23 + x25 + x35 = 2 > 1 APPLICAZIONE ALGORITMO
62
62 risolviamo il problema di PL sia x 1 la soluzione ottima del problema di PL di costo 6.25 APPLICAZIONE ALGORITMO
63
63 esiste una disequazione triangolo violata da x 1 ? NO x 1 P’ x 1 {0,1} m ? 2 partizioni NO x 1 S : esistono due insiemi S e T tali che la disequazione a 2 partizioni (S,T) sia violata da x 1 ? applico l’euristica APPLICAZIONE ALGORITMO
64
64 esiste una disequazione a 2 partizioni violata da x 1 ? APPLICAZIONE ALGORITMO Sia i = 1 e poniamo S = { 1 } Definiamo W = { 4, 6 } Poniamo T = { 4 } e verifichiamo: T = T { 6 } se x 46 = 0 Iterazione 1 T = { 4, 6 } x’(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 1 }
65
65 APPLICAZIONE ALGORITMO Sia i = 2 e poniamo S = { 2 } Definiamo W = { 5, 6 } Poniamo T = { 5 } e verifichiamo: T = T { 6 } se x 56 = 0 Iterazione 2 T = { 5, 6 } x’(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 2 }
66
66 APPLICAZIONE ALGORITMO Sia i = 3 e poniamo S = { 3 } Definiamo W = { 5, 6 } Poniamo T = { 5 } e verifichiamo: T = T { 6 } se x 56 = 0 Iterazione 3 T = { 5, 6 } x’(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 3 }
67
67 APPLICAZIONE ALGORITMO Sia i = 4 e poniamo S = { 4 } Definiamo W = { 1, 5 } Poniamo T = { 1 } e verifichiamo: T = T { 5 } se x 15 = 0 Iterazione 4 T = { 1, 5 } x’(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 4 }
68
68 APPLICAZIONE ALGORITMO Sia i = 5 e poniamo S = { 5 } Definiamo W = { 2, 3, 4 } Poniamo T = { 2 } e verifichiamo: T = T { 3 } se x 23 = 0 Iterazione 5 T = { 2, 3 } T = T { 4 } se x 43 = 0 e x 42 = 0 T = { 2, 3, 4 } x’(S,T)= 3 / 2 >1 S T
69
69 APPLICAZIONE ALGORITMO Sia i = 6 e poniamo S = { 6 } Definiamo W = { 1, 2, 3 } Poniamo T = { 1 } e verifichiamo: T = T { 2 } se x 12 = 0 Iterazione 6 T = { 1, 2 } T = T { 3 } se x 13 = 0 e x 23 = 0 T = { 1, 2, 3 } x’(S,T)= 3 / 2 >1 S T
70
70 esiste una disequazione a 2 partizioni violata da x 1 ? APPLICAZIONE ALGORITMO SI x 1 P’’ : aggiungi le disequazioni a P 1 e definisci il nuovo poliedro P 2 x25 + x35 + x45 - x23 - x24 - x34 <= 1 x16 + x26 + x36 - x12 - x13 - x23 <= 1 P 2 = P 1 { x [0,1] 15 : } x25 + x35 + x45 - x23 - x24 - x34 <= 1 x16 + x26 + x36 - x12 - x13 - x23 <= 1
71
71 risolviamo il problema di PL sia x 2 la soluzione ottima del problema di PL di costo 7.833 APPLICAZIONE ALGORITMO
72
72 esiste una disequazione triangolo violata da x 2 ? NO x 2 P’ x 2 {0,1} m ? 2 partizioni NO x 2 S : esistono due insiemi S e T tali che la disequazione a 2 partizioni (S,T) sia violata da x 1 ? applico l’euristica APPLICAZIONE ALGORITMO
73
73 esiste una disequazione a 2 partizioni violata da x 2 ? APPLICAZIONE ALGORITMO Sia i = 1 e poniamo S = { 1 } Definiamo W = { 4, 6 } Poniamo T = { 4 } e verifichiamo: T = T { 6 } se x 46 = 0 Iterazione 1 T = { 4, 6 } x’(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 1 }
74
74 APPLICAZIONE ALGORITMO Sia i = 2 e poniamo S = { 2 } Definiamo W = { 3, 5, 6 } Poniamo T = { 3 } e verifichiamo: T = T { 5 } se x 35 = 0 Iterazione 2 NO |T|= 1 Nessuna disequazione a 2 partizioni trovata con S = { 2 } T = T { 6 } se x 36 = 0 NO
75
75 APPLICAZIONE ALGORITMO Sia i = 3 e poniamo S = { 3 } Definiamo W = { 2, 4, 5, 6 } Poniamo T = { 2 } e verifichiamo: T = T { 4 } se x 24 = 0 Iterazione 3 T = { 2, 4 } x’(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 3 } T = T { 5 } se x 25 = 0 e x 45 = 0 NO T = T { 6 } se x 26 = 0 e x 46 = 0 NO
76
76 APPLICAZIONE ALGORITMO Sia i = 4 e poniamo S = { 4 } Definiamo W = { 1, 3, 5 } Poniamo T = { 1 } e verifichiamo: T = T { 3 } se x 13 = 0 Iterazione 4 T = { 1, 3 } x(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 4 } T = T { 5 } se x 15 = 0 e x 35 = 0 NO
77
77 APPLICAZIONE ALGORITMO Sia i = 5 e poniamo S = { 5 } Definiamo W = { 2, 3, 4 } Poniamo T = { 2 } e verifichiamo: T = T { 3 } se x 23 = 0 Iterazione 5 NO x(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 5 } T = T { 4 } se x 24 = 0 T = { 2, 4 }
78
78 APPLICAZIONE ALGORITMO Sia i = 6 e poniamo S = { 6 } Definiamo W = { 1, 2, 3 } Poniamo T = { 1 } e verifichiamo: T = T { 2 } se x 12 = 0 Iterazione 6 T = { 1, 2 } x(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 6 } T = T { 3 } se x 13 = 0 e x 23 = 0NO
79
79 esiste una disequazione a 2 partizioni (S,T) violata da x 2 ? NO non possiamo dire che x 2 P’’ e andiamo avanti x 2 {0,1} m ? APPLICAZIONE ALGORITMO NO x 2 S : applica il metodo del branch and bound per risolvere il problema di PL01
80
80 applichiamo il metodo del branch and bound per risolvere il problema di PL01 e ricaviamo la soluzione x 3 di costo 10.7 APPLICAZIONE ALGORITMO STOP la soluzione x 3 è una soluzione 0-1 la soluzione x 3 rispetta le disequazioni triangolo x 3 P’ la soluzione x 3 è la soluzione ottima del problema
81
81 Il costo della soluzione ottima è d T x 3 =10.7 CONSIDERAZIONI LB(P h ) = min { d T x: x P h } Per ogni poliedro P h indichiamo Abbiamo visto che LB(P 0 ) < LB(P 1 ) < LB(P 2 ) < d T x 3 1.8 < 6.25 < 7.833 < 10.7 lower bound Più vincoli violati aggiungiamo e maggiore è il valore del lower bound E se P 2 {0,1} m avesse avuto dimensioni troppo grandi? upper bound Algoritmo euristico di soluzione per determinare un upper bound
82
82 1.Poni U := N, i := 1 2.Trova i nodi u e v più lontani in U 3.Ordina le distanze dei nodi in U\{u} da u Sia O u il vettore dei nodi ordinati 4.Forma un cluster C i con i primi s-1 elementi in O u 5.U = U \ C i 6.Ordina le distanze dei nodi in U \{v} da v Sia O v il vettore dei nodi ordinati 7.Forma un cluster C i+1 con i primi s-1 elementi in O v 8.U = U \ C i+1 9.i = i + 2 10.SE |U| ≥ 2s ALLORA torna al passo 2. ALTRIMENTI SE s ≤ |U| < 2s ALLORA C i = U ALTRIMENTI assegna ogni nodo in U al cluster cui appartiene il nodo più vicino PROBLEMA CPP – ALGORITMO EURISTICO
83
83 ESEMPIO ALGORITMO EURISTICO ESEMPIO Consideriamo nuovamente il grafo G(N,A) associato all’insieme X = { v 1, v 2, v 3, v 4, v 5, v 6, v 7, v 8 }, dove N = { 1, 2, 3, 4, 5, 6 } e A = { ij | 1 i j 6 }. 20 10 20 0.5 0.2 0.3 0.5 D = Sia D la matrice delle distanze Applichiamo l’algoritmo euristico di soluzione del problema di partizione in clique con vincolo di dimensione con s = 2.
84
84 1.Poniamo U := { 1, 2, 3, 4, 5, 6 }, i := 1 2.Determiniamo i nodi più lontani in U e poniamo u := 1 e v := 2 3.Ordiniamo le distanze dei nodi in U\{1} da 1 e poniamo O 1 = { 6, 5, 4, 3, 2 } 4.Formiamo un cluster C 1 con i primi s-1 = 1 elementi in O 1 C 1 := { 1, 6 } 20 10 20 0.5 0.2 0.3 0.5 D = ESEMPIO ALGORITMO EURISTICO
85
85 5.U = { 2, 3, 4, 5 } 6.Ordiniamo le distanze dei nodi in U\{2} da 2 e poniamo O 2 = { 5, 4, 3 } 7.Formiamo un cluster C 2 con il primo elemento in O 2 C 2 = { 2, 5 } 8.U = { 3, 4 } 9.i = 3 10.2 ≤ |U| < 4 C 3 = { 3, 4 } 10 0.5 C2C2 C1C1 C3C3 La soluzione euristica è P = { C 1, C 2, C 3 } Il valore della soluzione è c(P) = 0.5 + 0.5 +10 = 11 ESEMPIO ALGORITMO EURISTICO
86
86 PROBLEMA DI PARTIZIONE DI CLIQUE partizione in clique Risolvere il problema di partizione in clique dei nodi di un grafo significa determinare la soluzione del seguente problema dove l’insieme delle soluzioni è 1 1 1 1 1 1 1 somma delle distanze tra nodi appartenenti allo stesso cluster criterio di ottimalità È l’unico criterio di ottimalità?
87
87 I criteri di ottimalità si dividono in due classi: criteri di separazione (da massimizzare) criteri di omogeneità (da minimizzare) CRITERI DI OTTIMALITÀ criteri di separazione 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 ottimalità I criteri di ottimalità sono funzioni che associano un valore numerico a un cluster
88
88 CRITERI DI SEPARAZIONE Assegniamo ad ogni cluster V N il minimo dei pesi degli archi in (V) Assegniamo ad ogni arco ij di A il peso Assegniamo ad ogni partizione P(G)= { V 1, V 2, …, V k } del grafo G(N,A) la somma dei costi degli elementi della partizione c(P(G)) = 2 + 2 + 2 = 6
89
89 critero CUT: somma delle distanze tra cluster CRITERI DI SEPARAZIONE critero CUT normalizzato:
90
90 CRITERI DI OMOGENEITÀ 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 20 0.5 0.2 0.3 0.5 critero RAGGIO: minima tra le distanze massime nel cluster
91
91 critero STELLA: minima somma delle distanze nel cluster 20 10 20 0.5 0.2 0.3 0.5 critero CLIQUE: somma delle distanze nel cluster CRITERI DI OMOGENEITÀ D =
92
92 CENTRO DI UN CLUSTER criteri di omogeneitàcentri 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 Si definisce centro di un cluster la media aritmetica dei punti del cluster X =
93
93 CRITERI DI OMOGENEITÀ critero SOMMA DEI QUADRATI: somma delle distanze euclidee al quadrato tra i punti di cluster ed il centro critero VARIANZA: somma dei quadrati normalizzata X =
94
94 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
95
95 ALGORITMO K-MEANS Passo 1 Noto il numero k di cluster da individuare nella partizione, seleziona in maniera del tutto casuale k punti all’interno dell’insieme di dati. Passo 2 Assegna ogni pattern al cluster il cui CENTRO sia più vicino al pattern in esame Passo 3 Calcola nuovamente i CENTRI dei cluster secondo la configurazione attuale Passo 4 Se non è verificato il criterio di convergenza, torna al Passo 2.
96
96 ALGORITMO K-MEANS Passo 1 Noto il numero k di cluster da individuare nella partizione, seleziona in maniera del tutto casuale k punti all’interno dell’insieme di dati. Buone configurazioni di partenza e.g. Neat trick : Posiziona il primo centro casualmente all’interno dell’insieme di dati in input. Per ogni successivo centro j, scegli scegli all’interno dell’insieme di dati in input il punto che sia il più lontano possibile dai primi j-1 centri. Running multipli a partire da diverse configurazioni di partenza
97
97 ALGORITMO K-MEANS Passo 4 Se non è verificato il criterio di convergenza, torna al Passo 2. non ci sia alcun assegnamento nuovo possibile di alcun pattern da un cluster ad un altro (al Passo 2 non cambia nulla) la funzione di errore quadratico cessi di ridursi significativamente dopo un certo numero di iterazioni (al Passo 3 non cambia nulla) Buone configurazioni di partenza Neat trick: Place first center on top of randomly chosen datapoint. Place j’th center on datapoint that’s as far away as possible from the closest of Centers 1 through j-1 Running multipli a partire da diverse configurazioni di partenza
98
98 MATERIALE DEL SEMINARIO Le slide di questo seminario sono reperibili al seguente link: http://www.dis.uniroma1.it/~canale/didattica/ACRN_2013.ppt
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.