Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di...

98
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: [email protected]

Transcript of Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di...

Page 1: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

Algoritmi di classificazione e reti neuraliSeminario 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: [email protected]

Page 2: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

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

Page 3: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

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

Page 4: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

4

DEFINIZIONE DEL PROBLEMA

Un cluster è un gruppo di oggetti simili.

SeSe gli oggetti sono puntipunti in uno spazio di distanza spazio di distanza alloraallora 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

11

4

4

5

Page 5: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

5

APPRENDIMENTO AUTOMATICO

Apprendimento: Processo di ragionamento induttivoragionamento 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

Page 6: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

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 { v1, v2, …, vn } prende il nome di training set.

Apprendimento non supervisionatonon 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.

Apprendimento supervisionatosupervisionato (analisi discriminante): Il sistema S riceve gli ingressi { c1, c2, …, cn

} e lo scopo è determinare una regola che metta in relazione le osservazioni del training set con gli ingressi.

S

v1

v2

v3

vn

c1

c2

c3

cn

Page 7: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

7

ESTRAZIONE DELLA CONOSCENZA

Pulizia ed integrazione

dei dati

Data Mining

Valutazioneregole

Database

Selezione e trasformazione

dei dati

Informazione

Datawarehouse

Regole

APPRENDIMENTO AUTOMATICO

Page 8: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

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

Page 9: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

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 DESCRIZIONE COMPATTA E SINTETICA DEI CLUSTERE SINTETICA DEI CLUSTER

Page 10: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

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à

Page 11: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

11

MATRICE DELLE ISTANZE

Un’osservazione (o istanza) v è rappresentata da un vettore di m caratteristiche (o attributi).

v1

v2

v = ……vm

L’insieme X = { v1, v2, …, vn } delle osservazioni viene

rappresentato come una matrice n x m detta matrice delle istanze.

X =

nm

n2

n1

2m

22

21

1m

12

11

v .... v v

.... .... .... ....

v .... v v

v .... v v

Page 12: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

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.

Page 13: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

13

MATRICE DELLE RELAZIONI

Sia X = { v1, v2, …, vn } 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ù vi e vj sono simili, più è grande) relazioni di dissimilarità (più vi e vj sono simili, più è basso)

nnn2n1

2n2221

1n1211

r .... r r

.... .... .... ....

r .... r r

r .... r r

jiij r r

ijr

ijr

Page 14: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

14

DISTANZE

i)d(j,j)d(i,

0i)d(i,

Una distanzadistanza 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

allora d è una semimetricasemimetrica sull’insieme X.

Si definisce metricametrica una semimetrica d che soddisfa l’ulteriore proprietà:

j)d(k,k)d(i,j)d(i,

ji 0j)d(i,

v1

13

4

v2

v3v1

12

4

v2

v3

Page 15: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

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. || vi + vj || || vi || + || vj || per ogni vi ,vj 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 lp

jiji v-v :)v,(vd = METRICA METRICA NORMANORMA

p1m

1k

pkp

)|v|(v

Page 16: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

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

jiji v-v )v,(vd

)v,(vdv-vv-v v--1(vv-v )v,(vd ijijijijjiji |1|)

|| v || = | | || v ||

00 iiii v-v )v,(vd

|| v || = 0 v = 0

)v,(vd)v,(vdvvv(v

vvv(vvvv-vv-v )v,(vd

kjkijkki

jkkikkjijiji

)()

)()|| vi + vj || || vi || + || vj ||

Page 17: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

17

METRICHE NORME

Una classe molto importante di metriche è quella delle metriche dlp

indotte dalle diverse norme lp:

p = 1 – distanza di Manhattan o metrica “city-block”

p = 2 – distanza Euclidea

p = – distanza di Lagrange

p = 0 – distanza di Hamming

p1

pm

1k

jk

ikp

jiji )|v-v|(v-v )v,(vdp

|v-v| )v,(vdm

1k

jk

ik

ji

1

2m

1k

jk

ik

ji |v-v| )v,(vd2

|| jk

ik

m1,...,k

jiji v-vmaxv-v )v,(vd

0}| |v-v| :m1,...,k | {v-v )v,(vd jk

ik0

jiji

0

Page 18: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

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 = { v1, v2, …, vn } è una

famiglia finita di k insiemi V1, V2, …, Vk

P = { V1, V2, …, Vk }

tali che

ogni insieme Vj in P è un sottoinsieme non vuoto di X: Vj X

XVk

1jj

jik 1,..., ji, 0VV ji

Page 19: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

19

RAPPRESENTAZIONE DEI DATI

Dato un insieme di osservazioni X = { v1, v2, …, vn } 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 vi X

A sia l’insieme degli archi che connettono ogni coppia non

ordinata (vi, vj) di osservazioni in X con vi vj.

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! 21)n(n

m

Page 20: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

20

INSIEME DELLE SOLUZIONI – DEFINIZIONI

Si definisce clustering del grafo G(N,A) una partizione

P(G) = { V1, V2, …, Vk }

dei nodi del grafo G(N,A).

Gli elementi ViP(G) vengono definiti componenti o cliqueclique del

clustering P(G).

Dato un grafo G(N,A) si definisce cliqueclique un sottoinsieme V N dei nodi tali che per ogni coppia di nodi i e j l’arco ij appartiene ad A.

A)G(N,

1

23

4

5

6

Se il grafo G(N,A) è completo, ogni sottoinsieme V N è una cliqueclique.

}4,3,2,1{1V

}6,5,4,3{2V

}5,4,2,1{3VNON è una clique:

25 A

Page 21: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

21

INSIEME DELLE SOLUZIONI – DEFINIZIONI

Si definisce clustering del grafo G(N,A) una partizione

P(G) = { V1, V2, …, Vk }

dei nodi del grafo G(N,A).

Come sono fatte le soluzioni di un problema di clustering?

Sia Vh N. Indichiamo con (Vh)

l’insieme degli archi che connettono

nodi in Vh e nodi fuori da Vh

Se |Vh| = 1, (Vh) è la stella del nodo in Vh.

hhh Vj,VA| iij)δ(V Vδ(V)

i

j

Page 22: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

22

INSIEME DELLE SOLUZIONI – DEFINIZIONI

Siano Vh, Vl N. Indichiamo con

(Vh ,Vl) l’insieme degli archi che

connettono nodi in Vh e nodi in Vl

In generale, dati k sottoinsiemi

V1,…, Vk N, l’insieme

degli archi con estremi in due

sottoinsiemi diversi viene

indicato con

lhlh Vj,VA| iij)V,δ(V

lh k,1,...,lh,Vj,VA| iij)V,....,δ(V lhk1 ,

1V

2V3V

)V,δ(V 31

1V

2V3V

)V,V,δ(V 321

Page 23: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

23

INSIEME DELLE SOLUZIONI – DEFINIZIONI

Ad ogni clustering P(G)= { V1, V2, …, Vk } del grafo G(N,A) è

possibile associare un insieme multi-cutmulti-cut (P(G))

(P(G)) = ( V1, V2, …, Vk )

Definiamo il vettore di incidenza yP

di un insieme multi-cutmulti-cut (P(G)) 1V

2V3V

)V,V,V,δ(V 4321

4V

otherwise 0

δ(P(G))ij 1y 0,1y ij

mP

Page 24: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

24

INSIEME DELLE SOLUZIONI – DEFINIZIONI

1V)E(V1u

v

Sia Vi N. Indichiamo con E(Vi) l’insieme degli archi che

connettono

nodi in Vi.

Se |Vi| = 1, E(Vi) è vuoto.

In generale, dati k sottoinsiemi

V1,…, Vk N, l’insieme degli

archi con estremi nello stesso

sottoinsieme viene indicato con

iii Vv,VA| uuv)E(V

)E(V ... )E(V)V,....,E(V k1k1 1V

2V3V

)V,V,E(V 321

Page 25: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

25

INSIEME DELLE SOLUZIONI – DEFINIZIONI

Ad ogni clustering P(G)= { V1, V2, …, Vk } del grafo G(N,A) è

possibile associare un insieme partizionepartizione E(P(G))

E(P(G)) = E( V1, V2, …, Vk )

Definiamo il vettore di incidenza xP

di un insieme partizione E(P(G))partizione E(P(G)) 1V

2V3V

)V,V,V,E(V 4321

4V

otherwise 0

E(P(G))ij 1 x0,1x ij

mP

mPP 1yx Gli insiemi multi-cutmulti-cut e partizionepartizione definiscono una partizione di A

Page 26: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

26

VETTORE DI INCIDENZA DI UNA PARTIZIONE

1V

2V

3V

)E(V3

)E(V1

)E(V2

1

8

76

5

43

2

1

1

1

0

0

0

0

0

0

1

0

0

0

1

1

0

0

0

0

0

0

0

0

0

0

0

0

1

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

78

68

67

58

57

56

48

47

46

45

38

37

36

35

34

28

27

26

25

24

23

18

17

16

15

14

13

12

321 V,V,VP(G)

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, 7, 8 } e A = { ij | 1 i j 8 }.

Consideriamo il clustering

P(G)= { V1, V2, V3 }

Px

Page 27: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

27

INSIEME DELLE SOLUZIONI

Supponiamo di voler determinare una partizione in k cluster.

Sia s = . Se vogliamo che i cluster contengano un numero numero

ugualeuguale di osservazioni, il problema è equivalente al problema di

determinare una partizione in cluster che abbiano ciascuno un

numero di osservazioni non inferiori a s.

kn

k

ji

δ(i)1sxx ikij

2

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.

E(P(G)) di incidenza di vettore x :{0,1}xS Pm

P

δ(i)ij

ijx 1 s Ni

Vincolo di

dimensione

s =3

Page 28: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

28

PROBLEMA DI PARTIZIONE IN CLIQUE

In base al valore di s possiamo avere diversi problemi:

}

{

Ni 1sx

,P(G) di incidenza di vettore x :{0,1}xS

δ(i)ijij

Pm

P

se s 1, S è l’insieme delle soluzioni del problema di partizione partizione

in in cliqueclique (CPP) dei nodi di un grafo

Consideriamo l’insieme delle soluzioni

se s 1, S è l’insieme delle soluzioni del problema di partizione partizione

in in clique con vincolo di dimensioneclique con vincolo di dimensione (CPPMIN)

se k = 2, S è l’insieme delle soluzioni del problema di

equipartizioneequipartizione se n è multiplo di s, S è l’insieme delle soluzioni del problema di

equipartizione in k sottoinsiemiequipartizione in k sottoinsiemi Ni 1sx 1sxδ(i)ij

ijδ(i)ij

ij

Page 29: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

29

CRITERIO DI OTTIMALITÀ

Esempio –– Sia X = { v1, v2, v3, v4, v5, v6, v7, v8 } 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 P1(G)= { V1, V2, V3 } e P2(G)= { V4, V5,

V6 }

Come valutare le soluzioni in S? Qual è la migliore soluzione?

1V

2V

3V1

8

76

5

43

24V5V

6V

1

8

76

5

43

2

In P1(G) i punti appartenenti allo stesso cluster sono più vicini…

Page 30: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

30

CRITERIO DI OTTIMALITÀ

1V

2V

3V1

8

76

5

43

24V5V

6V

1

8

76

5

43

2

In P1(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)ijd

1

1 1

5.1

1

11

1

1 1

32 3

1

3

Assegniamo ad ogni arco ij di A il peso ijd

Page 31: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

31

CRITERIO DI OTTIMALITÀ

1V

2V

3V1

8

6

5

43

24V5V

6V

1

8

6

5

43

2

Assegniamo ad ogni cluster V N la somma dei pesi degli archi in E(V)

1

1 1

5.1

1

11

1

1 1

32 3

1

3

Assegniamo ad ogni arco ij di A il peso ijd

E(V)ij

ijdc(V)

7 73)c(V2

3)c(V3

5.1)c(V1

11)c(V5

1)c(V6

3)c(V4

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(P1(G)) = 1.5 + 3 + 3 =

7.5

c(P2(G)) = 15<

P1(G) è migliore di P2(G)

Page 32: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

32

CRITERIO DI OTTIMALITÀ

Ad ogni partizione P(G)= { V1, V2, …, Vk } del grafo G(N,A) associamo il costo

P(G)V

i

i

)c(Vc(P(G))

Ad ogni P(G)= { V1, V2, …, Vk } è associato il vettore di incidenzavettore di incidenza

xP di un insieme partizione E(P(G))partizione E(P(G))

k

ji

E(V)

otherwise 0

E(P(G))ij 1 x0,1x ij

mP

k1,..., h

),E(Vij x hij

1

V

)V,...,E(VE(P(G)) k1

∑∑A∈ij

ijijE(P(G))∈ij

ij xddc(P(G)) ==

ijx

jkxikx

Page 33: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

33

CRITERIO DI OTTIMALITÀ

Ad ogni partizione P(G)= { V1, V2, …, Vk } del grafo G(N,A) associamo il costo

Aij

ijijxdc(P(G))

1

1

1

0

0

0

0

0

0

1

0

0

0

1

1

0

0

0

0

0

0

0

0

0

0

0

0

1

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

78

68

67

58

57

56

48

47

46

45

38

37

36

35

34

28

27

26

25

24

23

18

17

16

15

14

13

12

Px

Esempio –– Sia X = { v1, v2, v3, v4, v5, v6, v7, v8 } e s = 2

Consideriamo la soluzione xP associata al

clustering P(G)= { V1, V2, V3 }

1V

2V

3V1

8

6

5

43

2

1

1 1

5.1

1

11

7 3)c(V2

3)c(V3

5.1)c(V1

Aij

ijijxdc(P(G))

5.7

786867

45353412

ddd

dddd

Page 34: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

34

FORMULAZIONE MATEMATICA DEL CPP

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 è

Page 35: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

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)

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 36: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

36

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 37: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

37

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 38: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

38

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 39: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

39

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 40: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

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

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 41: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

41

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 42: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

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)

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 43: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

43

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 44: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

44

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 45: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

45

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 46: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

46

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 47: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

47

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 48: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

48

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 49: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

49

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

210

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 50: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

50

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

210

00

come individuare S e T tale che

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

Page 51: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

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 < 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 52: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

52

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 53: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

53

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 54: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

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,

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 55: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

55

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 56: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

56

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 57: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

57

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 58: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

58

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 59: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

59

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 60: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

60

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 61: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

61

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 62: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

62

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 63: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

63

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 64: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

64

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 65: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

65

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 66: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

66

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 67: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

67

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 68: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

68

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 69: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

69

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 70: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

70

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 71: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

71

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 72: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

72

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 73: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

73

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 74: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

74

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 75: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

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 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 76: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

76

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 77: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

77

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 78: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

78

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 79: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

79

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 80: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

80

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 81: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

81

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 82: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

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

PROBLEMA CPP – ALGORITMO EURISTICO

Page 83: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

83

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 84: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

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 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 85: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

85

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 86: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

86

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 87: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

87

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 a un cluster

NV RV :s

Page 88: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

88

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 89: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

89

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 90: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

90

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 91: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

91

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 92: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

92

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 93: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

93

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 94: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

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

Page 95: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

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.

1,...ki v|V|

1v ∑

ij V∈v

j

ii ==

2i

j

k1,..,i

*

i

j )]v,(v[d min argi :V v2

* ==↔

Page 96: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

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

Page 97: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

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

Page 98: Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.

98

MATERIALE DEL SEMINARIO

Le slide di questo seminario sono reperibili al seguente link:

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