Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II...

63
Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di Roma“La Sapienza” Dipartimento di Informatica e Sistemistica Corso di Laurea in “Ingegneria Gestionale” A.A. 2011-2012 a cura di Silvia Canale contatto e-mail: [email protected]

Transcript of Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II...

Page 1: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

Algoritmi di classificazione e reti neuraliSeminario su clustering dei dati – Parte II

Università di Roma“La Sapienza”

Dipartimento di Informatica e Sistemistica

Corso di Laurea in “Ingegneria Gestionale”

A.A. 2011-2012

a cura di Silvia Canale

contatto e-mail: [email protected]

Page 2: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

2

Problema della partizione in clique

algoritmo dei piani di taglio

esempio algoritmo dei piani di taglio

algoritmo euristico

Clustering partizionale – Criteri di ottimalità

ARGOMENTI DEL SEMINARIO

Page 3: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

3

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)

A)G(N,

1

23

4

5

6

56

46

45

36

35

34

26

25

24

23

16

15

14

13

12

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

211 V,V(G)P 1Px

1

1

1

0

0

0

0

0

0

1

0

0

0

1

1

432 V,V(G)P

653 V,V(G)P

S x

xd minAij

ijij

S x

xc min T

} { P(G)diincidenza di vettorex :{0,1}xS Pm

P

Page 4: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

4

FORMULAZIONE DI UN PROBLEMA DI PL01

Indichiamo con x* la soluzione ottima del problema di PL01

xc minargx* T

S x

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

richiede tempi moltomolto 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

Aij

ijijxd

Page 5: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

5

SOLUZIONE DI UN PROBLEMA DI PL01

In generale, la soluzione di un problema di PL01 richiede algoritmi sofisticatisofisticati e molto efficientiefficienti.

Quanto è buonabuona 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

Formulare non implicanon implica risolvere un problema di PL0.

Page 6: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

6

SEMISPAZI E POLIEDRI

PP = { x Rm : Ax ≤ b }

Siano

• A Rpxm una matrice reale di p righe e m colonne

• b Rp un vettore reale di p componenti

L’insieme dei vettori xRm che soddisfano le p disequazioni x ≤ bq del sistema

è definito POLIEDROPOLIEDRO e viene indicato con la lettera PP

Ax ≤ b

Tqa

x P P x ≤ bq per per qq = 1, …, p = 1, …, pTqa

Page 7: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

7

SEMISPAZI E FORMULAZIONI

PP = { x R2 : }

Geometricamente, ogni disequazione del sistema Ax ≤ b individua unsemispazio

Esempio – m = 2 1xx2

121 Consideriamo la retta

1xx2

121

Quindi un poliedro PP è intersezione di un numero finito q di semispazi.

PPPP = { x Rp : Ax ≤ b }

x1

x2

Page 8: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

8

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

Il poliedro P è una formulazioneformulazione 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’ =

Ci sono infiniteinfinite formulazioni dello stesso problema di PL01.

Per ognuna vale l’ovvia proprietà:

min { cTx: x S } = min { cTx: x P {0,1}m }

= cTx*

x1

x2

PP

0

0

0

1

1

1

1

0

Page 9: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

9

FORMULAZIONI E LOWER BOUND

Per ogni formulazione P vale inoltre la disuguaglianza

Il valore

LB(P) = min { cTx: x P }viene definito lower bound del problema di PL01.

min { cTx: x P {0,1}m }min { cTx: x P }

Per ogni formulazione di un problema di PL01 con insieme delle soluzioni vale la proprietà

LB(P) cTx*

Il lower bound è il valore ottimo della soluzione di un problema di PL che viene definito rilassamento lineare

min { cTx: x P }

Page 10: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

10

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)

x1

x2

P*P*

conosciamo alcune famiglie di disequazioni che definiscono

P*

SI

Inoltre….

Una disequazione aTx b si definisce validavalida per un poliedro P se e solo se è soddisfatta da tutti i punti in P

conosciamo famiglie di disequazioni valide per P*

PP { x Rp : aTx b }

Page 11: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

11

DISEQUAZIONI TRIANGOLO

Consideriamo tre nodi i, j, k N di G(N,A)

1 xse ij

Si definisce disequazione triangolodisequazione triangolo relativa ai nodi i, j, k

1xxx jkikij

Una disequazione triangolo rappresenta il vincolo logico:

1 x jk

A)G(N,i

jk

1 xe ik

Page 12: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

12

i

j k

0

0

0

x

x

x

jk

ik

ij

(a)

NO

(b)

0

0

1

x

x

x

jk

ik

ij

i

j k

(c)

i

j k

0

1

0

x

x

x

jk

ik

ij

(e)

i

j k

0

1

1

x

x

x

jk

ik

ij

(d)

i

j k

1

0

0

x

x

x

jk

ik

ij

(f)

i

j k

1

0

1

x

x

x

jk

ik

ij

(h)

i

j k

1

1

1

x

x

x

jk

ik

ij

(g)

i

j k

1

1

0

x

x

x

jk

ik

ij

Page 13: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

13

FORMULAZIONE DEL PROBLEMA CPP

Consideriamo il poliedro definito dalle disequazioni triangolo relative a tutte le terne di nodi G(N,A)

} mji1per 1x 0

m,kji1per

1xxx

1xx x

1xx x

:R x {P'

ij

jkikij

jkikij

jkikijm

È facile verificare che P’ è una formulazione del problema CPP

A)G(N,1

23

4

5

6

56

46

45

36

35

34

26

25

24

23

16

15

14

13

12

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

211 V,V(G)P 1Px

1

1

1

0

0

0

0

0

0

1

0

0

0

1

1

P {0,1}m = S

Page 14: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

14

i

j k

0

0

0

x

x

x

jk

ik

ij

(a) (b)

0

0

1

x

x

x

jk

ik

ij

i

j k

(c)

i

j k

0

1

0

x

x

x

jk

ik

ij

(e)

i

j k

0

1

1

x

x

x

jk

ik

ij

(d)

i

j k

1

0

0

x

x

x

jk

ik

ij

(f)

i

j k

1

0

1

x

x

x

jk

ik

ij

(h)

i

j k

1

1

1

x

x

x

jk

ik

ij

(g)

i

j k

1

1

0

x

x

x

jk

ik

ij

NO

NO

NO

Page 15: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

15

FORMULAZIONE DEL PROBLEMA CPP

Le disequazioni triangolo sono tante.

3

n 33 disequazioni per ogni terna ordinata di nodi

Consideriamo il rilassamento lineare del problema

S x

xd minAij

ijij

P' x

xd minAij

ijij

x {0,1}m

Ora sono ammissibili soluzioni non interenon intere

1

23

4

5

6

56

46

45

36

35

34

26

25

24

23

16

15

14

13

12

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

.....(G)P1

1Px

21

41

41

0

0

41

0

0

0

21

0

0

0

21

21

S P’

?21

21

21

41

41

21

41

Page 16: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

16

DISEQUAZIONI A 2 PARTIZIONI

Possiamo trovare disequazioni migliori delle disequazioni triangolo?

Siano S,T N due sottoinsiemi disgiunti e non vuoti di N.

La disequazione a 2 partizioni2 partizioni (S,T) associata ai sottoinsiemi S e T è

|}T||,S| min{x(E(T))x(E(S)) ) x( T)δ(S,S

T

2

3

1

4

1xxxxxx 342423141312

x(E(T)) E(S)

min{1,3}

Una disequazione a 2 partizioni2 partizioni (S,T) associata ai sottoinsiemi S e

T definisce è validavalida per il poliedro P*.

Definisce una faccia di P* se e solo se |T||S|

) x( T)δ(S,

Page 17: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

17

DISEQUAZIONI A 2 PARTIZIONI

Sia P’’ il poliedro costituito da tuttetutte le disequazioni a 2 partizioni2 partizioni (S,T) con |S| |T|

S

T

2

3

1

4

1xxxxxx 342423141312

OsservazioneOsservazione Le disequazioni triangolo sono disequazione a 2 2 partizionipartizioni (S,T) con |S|= 1 e |T| = 2

P’’ P’

0

0

02

12

12

1

x

x

x

x

x

x

x

23

24

23

14

13

12

ˆ

21

21

21

0

00

EsempioEsempio 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 }

x̂'P'xˆ

1000111 222

P’’ P’

P'xˆ

Page 18: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

18

DISEQUAZIONI A 2 PARTIZIONI

Quindi…

Data una soluzione x’ appartenente a P’ è possibile determinare S

e T tali che la disequazione a 2 partizioni2 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

21

21

21

0

00

come individuare S e T tale che

|}T||,S| min{x(E(T))x(E(S)) ) x( T)δ(S,

Page 19: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

19

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 < xij’ < 1 }scegli un ordinamento nell’insieme W: W = { j1, …, jl }

poni T = { j1}

per ogni k = 2, …, l poni T = T { jk } se xjkjk’’ = 0 per ogni jk’

Tse |T|>1 e x’((S,T))>1, la disequazione a 2 partizioni (S,T) è violata

ALGORITMO EURISTICO

complessità O(n3) La soluzione dipende dall’ordinamento!

Page 20: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

20

EURISTICA DI SEPARAZIONE

ESEMPIO Consideriamo la soluzione x’ in figura e applichiamo l’algoritmo euristico di separazione

S

T

2

3

1

4

21

21

21

0

00

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 x32’ = 0

Iterazione 1

T = { 2, 3 }T = T { 4 } se x43’ = 0 e x42’ = 0 T = { 2, 3, 4

}x’(S,T)= 3 / 2 >1 1x(E(T))x(E(S)) ) x( T)δ(S,

1x(E(T))x(E(S)) ) x( T)δ(S,

Page 21: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

21

EURISTICA DI SEPARAZIONE

S

T

2

3

1

4

21

21

21

0

00

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 è

1xxxxxx 342423141312

Page 22: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

22

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,

le disequazioni triangolodisequazioni triangolo relative ai nodi i, j, k

1xxx jkikij

le disequazioni a 2 partizioni2 partizioni (S,T) associate ai sottoinsiemi S e T

|}T||,S| min{x(E(T))x(E(S)) ) x( T)δ(S,

P’

P’’

Page 23: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

23

ALGORITMO DEI “PIANI DI TAGLIO”

Definisci il poliedro P0 P’ definito da un

sottoinsieme di disequazioni triangolo

Poni h = 0

risolvi il problema di PL

sia xh la soluzione ottima del problema di PL

esiste una disequazione triangolo violata da xh ?

P*

P’

h

Aijijij

P x

xd min

ALGORITMO DI SOLUZIONE

P’x0

P0

P0

P1

SI xh P’ : aggiungi la disequazione a Ph

e definisci il nuovo poliedro Ph+1

P*

Page 24: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

24

esiste una disequazione triangolo violata da xh ?

ALGORITMO DI SOLUZIONE

NO xh P’

ALGORITMO DEI “PIANI DI TAGLIO”

xh {0,1}m ?

P’’

P’

P*

P’

P0

P*x0

NO xh S : esistono due insiemi S e T tali che la disequazione a 2 2

partizionipartizioni (S,T) sia violata da xh?

STOP

SI xh P’’ : aggiungi la disequazione a Ph e definisci il nuovo poliedro Ph+1

SI xh S : xh è la soluzione ottimax0

P0

Page 25: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

25

esistono due insiemi S e T tali che la

disequazione a 2 partizioni2 partizioni (S,T) sia violata da xh?

ALGORITMO DI SOLUZIONE

NO xh P’’

ALGORITMO DEI “PIANI DI TAGLIO”

xh {0,1}m ?

P’

P0

P*

P’

P0

P*x0

NO xh S : applica il metodo del branch and bound per risolvere il problema di PL01

P’’

x0

mh

Aijijij

{0,1}P x

xd min

STOPSI xh S : xh è la soluzione ottima

P’’

STOP

VERO se l’algoritmo di separazione è esatto

Page 26: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

26

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 }.

A)G(N,

1

65

2 3

4

20

10

10

10

10

10

1010

20

0.5

0.50.2

0.3

0.5

0.5

0 10 10 0.2 0.5 0.5

10 0 0.5 0.3 0.5 10

10 0.5 0 10 10 10

0.2 0.3 10 0 10 20

0.5 0.5 10 10 0 20

0.5 10 10 20 20 0

D =

Sia D la matrice delle distanze

Risolviamo il problema di partizione in clique con vincolo di dimensione con s = 2.

Page 27: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

27

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

P0 = { 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

Page 28: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

28

risolviamo il problema di PL

sia x0 la soluzione ottima del problema di PL di costo 1.8

0

Aijijij

P x

xdmin

A)G(N,

1

65

2 3

41

1

1

1

56

46

45

36

35

34

26

25

24

23

16

15

14

13

12

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

0x

0

0

1

0

1

0

0

1

0

0

1

0

0

0

0

11

1

111

1

1

APPLICAZIONE ALGORITMO

Page 29: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

29

esiste una disequazione triangolo violata da x0 ?

SI x0 P’ : aggiungi la disequazione a P0 e definisci il nuovo poliedro

per enumerazione o ispezione visiva

1

65

2 3

41

1

1

111

1

111

1

1

- x23 + x25 + x35 <= 1- x34 + x35 + x45 <= 1

P1 = P0{ x [0,1]15: }

- x34 + x35 + x45 = 2 > 1

- x23 + x25 + x35 = 2 > 1

APPLICAZIONE ALGORITMO

Page 30: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

30

risolviamo il problema di PL

sia x1 la soluzione ottima del problema di PL di costo 6.25

1

Aijijij

P x

xdmin

1x

0

0 2

1

21

21

0 2

1

21

0

0 2

1

0 2

1

0

0

56

46

45

36

35

34

26

25

24

23

16

15

14

13

12

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

1

65

2 3

42

1

21

21

21

21

21

21

APPLICAZIONE ALGORITMO

Page 31: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

31

esiste una disequazione triangolo violata da x1 ?

NO x1 P’

1

65

2 3

42

1

21

21

21

21

21

21

x1 {0,1}m ?

NO x1 S : esistono due insiemi S e T tali che la disequazione a 2 2

partizionipartizioni (S,T) sia violata da x1?applico l’euristica

APPLICAZIONE ALGORITMO

Page 32: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

32

esiste una disequazione a 2 partizioni violata da x1 ?

1

6

2 3

42

1

21

21

21

21

21

21

APPLICAZIONE ALGORITMO

Sia i = 1 e poniamo S = { 1 }Definiamo W = { 4, 6 }

Poniamo T = { 4 } e verifichiamo:

T = T { 6 } se x46 = 0

Iterazione 1

T = { 4, 6 }

x’(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 1 }

5

Page 33: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

33

1

6

2 3

42

1

21

21

21

21

21

21

APPLICAZIONE ALGORITMO

Sia i = 2 e poniamo S = { 2 }Definiamo W = { 5, 6 }

Poniamo T = { 5 } e verifichiamo:

T = T { 6 } se x56 = 0

Iterazione 2

T = { 5, 6 }

x’(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 2 }

5

Page 34: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

34

1

6

2 3

42

1

21

21

21

21

21

21

APPLICAZIONE ALGORITMO

Sia i = 3 e poniamo S = { 3 }Definiamo W = { 5, 6 }

Poniamo T = { 5 } e verifichiamo:

T = T { 6 } se x56 = 0

Iterazione 3

T = { 5, 6 }

x’(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 3 }

5

Page 35: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

35

1

6

2 3

42

1

21

21

21

21

21

21

APPLICAZIONE ALGORITMO

Sia i = 4 e poniamo S = { 4 }Definiamo W = { 1, 5 }

Poniamo T = { 1 } e verifichiamo:

T = T { 5 } se x15 = 0

Iterazione 4

T = { 1, 5 }

x’(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 4 }

5

Page 36: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

36

1

6

2 3

42

1

21

21

21

21

21

21

APPLICAZIONE ALGORITMO

Sia i = 5 e poniamo S = { 5 }Definiamo W = { 2, 3, 4 }

Poniamo T = { 2 } e verifichiamo:

T = T { 3 } se x23 = 0

Iterazione 5

T = { 2, 3 }

5

T = T { 4 } se x43 = 0 e x42 = 0 T = { 2, 3, 4 }

x’(S,T)= 3 / 2 >1 1x(E(T))x(E(S)) ) x( T)δ(S,

1x(E(T))x(E(S)) ) x( T)δ(S,

S

T

Page 37: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

37

1

6

2 3

42

1

21

21

21

21

21

21

APPLICAZIONE ALGORITMO

Sia i = 6 e poniamo S = { 6 }Definiamo W = { 1, 2, 3 }

Poniamo T = { 1 } e verifichiamo:

T = T { 2 } se x12 = 0

Iterazione 6

T = { 1, 2 }

5

T = T { 3 } se x13 = 0 e x23 = 0 T = { 1, 2, 3 }

x’(S,T)= 3 / 2 >1 1x(E(T))x(E(S)) ) x( T)δ(S,

1x(E(T))x(E(S)) ) x( T)δ(S,

S

T

Page 38: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

38

esiste una disequazione a 2 partizioni violata da x1 ?

1

6

2 3

42

1

21

21

21

21

21

21

APPLICAZIONE ALGORITMO

5

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: } x25 + x35 + x45 - x23 - x24 - x34 <= 1

x16 + x26 + x36 - x12 - x13 - x23 <= 1

Page 39: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

39

risolviamo il problema di PL

sia x2 la soluzione ottima del problema di PL di costo 7.833

2

Aijijij

P x

xdmin

2x

0

0 9

4

91

96

91

91

94

93

91

98

0 9

1

0

0

56

46

45

36

35

34

26

25

24

23

16

15

14

13

12

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

1

65

2 3

49

8

91

91

96

94

91

94

APPLICAZIONE ALGORITMO

91

93

Page 40: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

40

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 2

partizionipartizioni (S,T) sia violata da x1?applico l’euristica

APPLICAZIONE ALGORITMO

1

65

2 3

49

8

91

91

96

94

91

94

91

93

Page 41: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

41

esiste una disequazione a 2 partizioni violata da x2 ?

APPLICAZIONE ALGORITMO

Sia i = 1 e poniamo S = { 1 }Definiamo W = { 4, 6 }

Poniamo T = { 4 } e verifichiamo:

T = T { 6 } se x46 = 0

Iterazione 1

T = { 4, 6 }

x’(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 1 }

1

65

2 3

49

8

91

91

96

94

91

94

91

93

Page 42: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

42

APPLICAZIONE ALGORITMO

Sia i = 2 e poniamo S = { 2 }Definiamo W = { 3, 5, 6 }

Poniamo T = { 3 } e verifichiamo:

T = T { 5 } se x35 = 0

Iterazione 2

NO

|T|= 1 Nessuna disequazione a 2 partizioni trovata con S = { 2 }

1

65

2 3

49

8

91

91

96

94

91

94

91

93

T = T { 6 } se x36 = 0 NO

Page 43: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

43

APPLICAZIONE ALGORITMO

Sia i = 3 e poniamo S = { 3 }Definiamo W = { 2, 4, 5, 6 }

Poniamo T = { 2 } e verifichiamo:

T = T { 4 } se x24 = 0

Iterazione 3

T = { 2, 4 }

x’(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 3 }

1

65

2 3

49

8

91

91

96

94

91

94

91

93

T = T { 5 } se x25 = 0 e x45 = 0 NO

T = T { 6 } se x26 = 0 e x46 = 0 NO

Page 44: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

44

APPLICAZIONE ALGORITMO

Sia i = 4 e poniamo S = { 4 }Definiamo W = { 1, 3, 5 }

Poniamo T = { 1 } e verifichiamo:

T = T { 3 } se x13 = 0

Iterazione 4

T = { 1, 3 }

x(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 4 }

1

65

2 3

49

8

91

91

96

94

91

94

91

93

T = T { 5 } se x15 = 0 e x35 = 0 NO

Page 45: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

45

APPLICAZIONE ALGORITMO

Sia i = 5 e poniamo S = { 5 }Definiamo W = { 2, 3, 4 }

Poniamo T = { 2 } e verifichiamo:

T = T { 3 } se x23 = 0

Iterazione 5

NO

x(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 5 }

1

65

2 3

49

8

91

91

96

94

91

94

91

93

T = T { 4 } se x24 = 0 T = { 2, 4 }

Page 46: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

46

APPLICAZIONE ALGORITMO

Sia i = 6 e poniamo S = { 6 }Definiamo W = { 1, 2, 3 }

Poniamo T = { 1 } e verifichiamo:

T = T { 2 } se x12 = 0

Iterazione 6

T = { 1, 2 }

x(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 6 }

1

65

2 3

49

8

91

91

96

94

91

94

91

93

T = T { 3 } se x13 = 0 e x23 = 0 NO

Page 47: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

47

esiste una disequazione a 2 partizioni (S,T) violata da x2 ?

NO non possiamo dire che x2 P’’ e andiamo avanti

x2 {0,1}m ?

APPLICAZIONE ALGORITMO

1

6 5

2 3

49

8

91

91

96

94

91

94

91

93

NO x2 S : applica il metodo del branch and bound per risolvere

il problema di PL01

m2

Aijijij

{0,1}P x

xdmin

Page 48: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

48

applichiamo il metodo del branch and bound per risolvere il problema di PL01 e ricaviamo la soluzione x3 di costo 10.7

APPLICAZIONE ALGORITMO

1

6 5

2 3

4

1

11

STOP

56

46

45

36

35

34

26

25

24

23

16

15

14

13

12

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

3x

0

0

0

1

0

0

0

1

0

0

0

0

1

0

0

la soluzione x3 è una soluzione 0-1

la soluzione x3 rispetta le disequazioni triangolo x3 P’

la soluzione x3 è la soluzione ottima del problema

Page 49: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

49

Il costo della soluzione ottima è dTx3 =10.7

CONSIDERAZIONI

LB(Ph) = min { dTx: x Ph }

Per ogni poliedro Ph indichiamo

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 lower boundbound

E se P2 {0,1}m avesse avuto dimensioni troppo grandi?

Algoritmo euristico di soluzione per determinare un upper upper

boundbound

Page 50: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

50

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 Ou il vettore dei nodi ordinati

4. Forma un cluster Ci con i primi s-1 elementi in Ou

5. U = U \ Ci

6. Ordina le distanze dei nodi in U \{v} da v

Sia Ov il vettore dei nodi ordinati

7. Forma un cluster Ci+1 con i primi s-1 elementi in Ov

8. U = U \ Ci+1

9. i = i + 2

10. 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

ALGORITMO EURISTICO

Page 51: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

51

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 }.

A)G(N,

1

65

2 3

4

20

10

10

10

10

10

1010

20

0.5

0.50.2

0.3

0.5

0.5

0 10 10 0.2 0.5 0.5

10 0 0.5 0.3 0.5 10

10 0.5 0 10 10 10

0.2 0.3 10 0 10 20

0.5 0.5 10 10 0 20

0.5 10 10 20 20 0

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.

Page 52: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

52

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 O1 = { 6, 5, 4, 3, 2 }

4. Formiamo un cluster C1 con i primi s-1 = 1 elementi in O1

C1:= { 1, 6 }

1

65

2 3

4

20

10

10

10

10

10

1010

20

0.5

0.50.2

0.3

0.5

0.5

0 10 10 0.2 0.5 0.5

10 0 0.5 0.3 0.5 10

10 0.5 0 10 10 10

0.2 0.3 10 0 10 20

0.5 0.5 10 10 0 20

0.5 10 10 20 20 0

D =

ESEMPIO ALGORITMO EURISTICO

Page 53: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

53

5. U = { 2, 3, 4, 5 }

6. Ordiniamo le distanze dei nodi in U\{2} da 2

e poniamo O2 = { 5, 4, 3 }

7. Formiamo un cluster C2 con il primo elemento in O2

C2 = { 2, 5 }

8. U = { 3, 4 }

9. i = 3

10. 2 ≤ |U| < 4 C3 = { 3, 4 }

1

65

2 3

4

10

0.5 0.5

C2

C1

C3

La soluzione euristica èP = { C1, C2 , C3 }

Il valore della soluzione èc(P) = 0.5 + 0.5 +10 = 11

ESEMPIO ALGORITMO EURISTICO

Page 54: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

54

PROBLEMA DI PARTIZIONE DI CLIQUE

S x

xd minAij

ijij

} { Ni 1sx,P(G) di incidenza di vettore x :{0,1}xSδ(i)ij

ijPm

P

Risolvere il problema di partizione in cliquepartizione in clique dei nodi di un grafo

significa determinare la soluzione del seguente problema

dove l’insieme delle soluzioni è

1V

2V3V

1

1

11

11

1

somma delle distanze tra nodi appartenenti allo stesso

clusterÈ l’unico criterio di ottimalitàcriterio di ottimalità?

Page 55: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

55

I criteri di ottimalità si dividono in due classi: criteri di separazione (da massimizzare) criteri di omogeneità (da minimizzare)

CRITERI DI OTTIMALITÀ

I criteri di separazionecriteri di separazione si basano sull’ottimizzazione delle relazioni (similarità e dissimilarità) tra punti in cluster diversi

critero SPLIT: minima distanza tra cluster

ijδ(V)ij

ijVjV,i

dmindmins(V)

I criteri di ottimalitàcriteri di ottimalità sono funzioni che associano un valore numerico ad un cluster

NV RV :s

Page 56: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

56

CRITERI DI SEPARAZIONE

1V

2V

3V1

8

6

5

43

2

Assegniamo ad ogni cluster V N il minimo dei pesi degli archi in (V)

1

1 1

5.1

1

15

Assegniamo ad ogni arco ij di A il peso ijd

ijδ(V)ij

dminc(V)

7 2)c(V2

2)c(V3

2)c(V1

Assegniamo ad ogni partizione P(G)= { V1, V2, …, Vk } del grafo G(N,A) la somma dei costi degli elementi della partizione

P(G)V

i

i

)c(Vc(P(G))c(P(G)) = 2 + 2 + 2 = 6

3 24 3

3

4

23

4

5

73

Page 57: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

57

critero CUT: somma delle distanze tra cluster

δ(V)ij

ijVjV,i

ij ddC(V)

CRITERI DI SEPARAZIONE

critero CUT normalizzato:

|)V|(n-|V|

C(V)(V)CN

Page 58: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

58

CRITERI DI OMOGENEITÀ

I criteri di omogeneitàcriteri di omogeneità si basano sull’ottimizzazione delle relazioni (similarità e dissimilarità) tra punti nello stesso cluster

critero DIAMETRO: massima distanza nel cluster

ijE(V)ij

ijVjV,i

dmaxdmaxd(V)

1

65

2 3

4

20

10

10

10

10

10

1010

20

0.5

0.50.2

0.3

0.5

0.5

}6 ,5 ,4 ,3 ,2 ,1{V

20d(V)

critero RAGGIO: minima tra le distanze massime nel cluster

ijVjVi

dmaxminr(V)

10=r(V)

Page 59: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

59

critero STELLA: minima somma delle distanze nel cluster

VjijVi

dminst(V)

1

65

2 3

4

20

10

10

10

10

10

1010

20

0.5

0.50.2

0.3

0.5

0.5

}6 ,5 ,4 ,3 ,2 ,1{V

3.21st(V)

critero CLIQUE: somma delle distanze nel cluster

E(V)ij

ijdcl(V)

5.112cl(V)

CRITERI DI OMOGENEITÀ

0 10 10 0.2 0.5 0.5

10 0 0.5 0.3 0.5 10

10 0.5 0 10 10 10

0.2 0.3 10 0 10 20

0.5 0.5 10 10 0 20

0.5 10 10 20 20 0

D =

Page 60: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

60

CENTRO DI UN CLUSTER

I criteri di omogeneitàcriteri di omogeneità basati sui “centricentri” 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

Vv

i

i

v|V|

1v

1

3

2

0 6

2 5

1 1

X =

1

4

3

12

31

v

Page 61: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

61

CRITERI DI OMOGENEITÀ

critero SOMMA DEI QUADRATI: somma delle distanze euclidee al quadrato tra i punti di cluster ed il centro

Vv

2i

i2

)]v,(v[dsq(V)

critero VARIANZA: somma dei quadrati normalizzata

sq(V)|V|

1vr(V)

0 6

2 5

1 1

X = 1

3

2

1

4v

92

516sq(V)

316

vr(V)

Page 62: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

62

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

Page 63: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.

63

MATERIALE DEL SEMINARIO

Le slide di questo seminario sono reperibili al seguente link:

http://www.dis.uniroma1.it/~canale/didattica/ACRN2.ppt