Learning of non-homogeneous Continuous Times Bayesian Networks Thesis
-
Upload
guido-colangiuli -
Category
Technology
-
view
33 -
download
2
Transcript of Learning of non-homogeneous Continuous Times Bayesian Networks Thesis
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica eComunicazione
Corso di Laurea Magistrale in Informatica
APPRENDIMENTO DI RETI BAYESIANE NON
OMOGENEE A TEMPO CONTINUO
Relatore: Prof. Fabio STELLA
Co-relatore: Prof. Enrico FAGIUOLI
Tesi di Laurea Magistrale di
Guido COLANGIULI
Matricola 768987
Anno Accademico 2013-2014
I
Ai miei genitori,ai miei amici.
Indice
Indice V
Elenco delle figure IX
Elenco delle tabelle XVI
Elenco degli algoritmi XVI
Introduzione XVII
Contributi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XVIII
1 BN e modelli omogenei 1
1.1 BN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Apprendimento . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2 Inferenza . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 DBN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Processo di Markov . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 Processi di Markov condizionali . . . . . . . . . . . . . . . . . . 9
1.5 CTBN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2 Modelli non omogenei 13
2.1 Panoramica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 NSDBN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.1 Apprendimento NSDBN . . . . . . . . . . . . . . . . . . 16
2.2.1.1 Score . . . . . . . . . . . . . . . . . . . . . . . 18
3 NHCTBN 20
3.1 NHCTBN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2 Statistiche sufficienti e likelihood . . . . . . . . . . . . . . . . . 22
II
Indice
3.2.1 Statistiche sufficienti . . . . . . . . . . . . . . . . . . . . 22
3.2.2 Likelihood di un singolo nodo . . . . . . . . . . . . . . . 23
3.2.3 Likelihood di una struttura . . . . . . . . . . . . . . . . 23
3.3 Apprendimento di una NHCTBN . . . . . . . . . . . . . . . . . 25
3.3.1 Apprendimento dei parametri . . . . . . . . . . . . . . . 26
3.3.1.1 Approccio Maximum-Likelihood . . . . . . . . 26
3.3.1.2 Approccio Bayesiano . . . . . . . . . . . . . . . 27
3.3.2 Apprendimento della struttura . . . . . . . . . . . . . . 28
3.3.2.1 Funzione di scoring . . . . . . . . . . . . . . . 29
3.3.2.2 Ricerca della struttura . . . . . . . . . . . . . . 32
3.3.3 Apprendimento della sequenza . . . . . . . . . . . . . . 32
3.3.4 Apprendimento della sequenza: Approccio SA . . . . . 34
3.3.4.1 Informazione completa . . . . . . . . . . . . . . 36
3.3.4.2 Informazione parziale . . . . . . . . . . . . . . 38
3.3.4.3 Nessuna informazione . . . . . . . . . . . . . . 41
4 MapReduce 45
4.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.1.1 Funzionamento . . . . . . . . . . . . . . . . . . . . . . . 46
4.1.2 Esempio Word-Count . . . . . . . . . . . . . . . . . . . 47
4.2 Apache Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.3 Apprendimento Non-Homogeneous Continuous Time Bayesian
Network (NHCTBN) in MapReduce . . . . . . . . . . . . . . . . 50
5 Esperimenti 54
5.1 Dataset sintetici . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.1.1 Descrizione esperimenti caso A: Confronto modelli omo-
genei e modelli non omogenei . . . . . . . . . . . . . . . 55
5.1.2 Descrizione esperimenti caso B . . . . . . . . . . . . . . 55
5.1.3 Descrizione esperimenti caso C . . . . . . . . . . . . . . 55
5.1.4 Analisi dei risultati . . . . . . . . . . . . . . . . . . . . . 56
5.1.5 Analisi dei tempi di esecuzione MapReduce . . . . . . . 58
5.2 Dataset SongBird . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.2.1 Descrizione degli esperimenti . . . . . . . . . . . . . . . 59
5.2.2 Risultati Netork1 - Caso B . . . . . . . . . . . . . . . . 60
5.2.3 Risultati Netork1 - Caso C . . . . . . . . . . . . . . . . 64
Laurea Magistrale in Informatica III
Indice
5.2.4 Risultati Netork2 - Caso B . . . . . . . . . . . . . . . . 69
5.2.5 Risultati Netork2 - Caso C . . . . . . . . . . . . . . . . 73
5.2.6 Analisi dei risultati . . . . . . . . . . . . . . . . . . . . . 78
6 Conclusioni 79
Appendici 82
A Dettaglio esperimenti caso A 82
A.1 Confronto modelli omogenei e modelli non omogenei . . . . . . 83
B Dettaglio esperimenti caso B 96
B.1 Dataset1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
B.2 Dataset2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
B.3 Dataset3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
B.4 Dataset4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
B.5 Dataset5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
B.6 Dataset6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
B.7 Dataset7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
B.8 Dataset8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
B.9 Dataset9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
B.10 Dataset10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
B.11 Dataset11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
B.12 Dataset12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
B.13 Dataset13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
C Dettaglio esperimenti caso C 105
C.1 Dataset1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
C.2 Dataset2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
C.3 Dataset3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
C.4 Dataset4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
C.5 Dataset5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
C.6 Dataset6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
C.7 Dataset7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
C.8 Dataset8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
C.9 Dataset9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
C.10 Dataset10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Laurea Magistrale in Informatica IV
Indice
C.11 Dataset11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
C.12 Dataset12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
C.13 Dataset13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Bibliografia 158
Acronimi 161
Laurea Magistrale in Informatica V
Elenco delle figure
1.1 Bayesian Network (BN) di esempio con relative tabella di pro-
babilità condizionale (CPT) . . . . . . . . . . . . . . . . . . . . 3
1.2 Esempio di Dynamic Bayesian Network (DBN) . . . . . . . . . . 7
1.3 Continuous Time Bayesian Network (CTBN) che rappresenta
l’effetto di un farmaco . . . . . . . . . . . . . . . . . . . . . . . 12
4.1 Panoramica dell’esecuzione di un programma MapReduce. Im-
magine tratta da (Dean & Ghemawat, 2004, p. 3) . . . . . . . . 46
5.1 SongBird Network1- Caso B - τ = 120 - α = 0.1 . . . . . . . . 60
5.2 SongBird Network1- Caso B - τ = 120 - α = 0.1 . . . . . . . . 60
5.3 SongBird Network1- Caso B - τ = 120 - α = 0.1 . . . . . . . . 61
5.4 SongBird Network1- Caso B - τ = 120 - α = 0.1 . . . . . . . . 61
5.5 SongBird Network1- Caso B - τ = 120 - α = 0.1 . . . . . . . . 62
5.6 SongBird Network1- Caso B - τ = 120 - α = 0.1 . . . . . . . . 62
5.7 SongBird Network1- Caso B - τ = 120 - α = 0.1 . . . . . . . . 63
5.8 SongBird Network1- Caso B - τ = 120 - α = 0.1 . . . . . . . . 63
5.9 SongBird Network1- Caso C - τ = 120 - α = 0.1 . . . . . . . . 64
5.10 SongBird Network1- Caso C - τ = 120 - α = 0.1 . . . . . . . . 65
5.11 SongBird Network1- Caso C - τ = 120 - α = 0.1 . . . . . . . . 65
5.12 SongBird Network1- Caso C - τ = 120 - α = 0.1 . . . . . . . . 66
5.13 SongBird Network1- Caso C - τ = 120 - α = 0.1 . . . . . . . . 66
5.14 SongBird Network1- Caso C - τ = 120 - α = 0.1 . . . . . . . . 67
5.15 SongBird Network1- Caso C - τ = 120 - α = 0.1 . . . . . . . . 68
5.16 SongBird Network1- Caso C - τ = 120 - α = 0.1 . . . . . . . . 68
5.17 SongBird Network2- Caso B - τ = 135 - α = 0.1 . . . . . . . . 69
5.18 SongBird Network2- Caso B - τ = 135 - α = 0.1 . . . . . . . . 70
VI
Indice
5.19 SongBird Network2- Caso B - τ = 135 - α = 0.1 . . . . . . . . 70
5.20 SongBird Network2- Caso B - τ = 135 - α = 0.1 . . . . . . . . 71
5.21 SongBird Network2- Caso B - τ = 135 - α = 0.1 . . . . . . . . 71
5.22 SongBird Network2- Caso B - τ = 135 - α = 0.1 . . . . . . . . 72
5.23 SongBird Network2- Caso B - τ = 135 - α = 0.1 . . . . . . . . 72
5.24 SongBird Network2- Caso B - τ = 135 - α = 0.1 . . . . . . . . 73
5.25 SongBird Network2- Caso C - τ = 135 - α = 0.1 . . . . . . . . 74
5.26 SongBird Network2- Caso C - τ = 135 - α = 0.1 . . . . . . . . 74
5.27 SongBird Network2- Caso C - τ = 135 - α = 0.1 . . . . . . . . 75
5.28 SongBird Network2- Caso C - τ = 135 - α = 0.1 . . . . . . . . 75
5.29 SongBird Network2- Caso C - τ = 135 - α = 0.1 . . . . . . . . 76
5.30 SongBird Network2- Caso C - τ = 135 - α = 0.1 . . . . . . . . 76
5.31 SongBird Network2- Caso C - τ = 135 - α = 0.1 . . . . . . . . 77
5.32 SongBird Network2- Caso C - τ = 135 - α = 0.1 . . . . . . . . 77
A.1 Modello omogeneo - Dataset1 - 50 traiettorie - 4495 osservazioni 83
A.2 Modello non omogeneo - Dataset1 - 50 traiettorie - 4495 osser-
vazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
A.3 Modello omogeneo - Dataset2 - 50 traiettorie - 9882 osservazioni 84
A.4 Modello non omogeneo - Dataset2 - 50 traiettorie - 9882 osser-
vazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
A.5 Modello omogeneo - Dataset3 - 100 traiettorie - 12452 osservazioni 85
A.6 Modello non omogeneo - Dataset3 - 100 traiettorie - 12452 os-
servazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
A.7 Modello omogeneo - Dataset4 - 100 traiettorie - 12601 osservazioni 86
A.8 Modello non omogeneo - Dataset4 - 100 traiettorie - 12601 os-
servazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
A.9 Modello omogeneo - Dataset5 - 40 traiettorie - 4519 osservazioni 87
A.10 Modello non omogeneo - Dataset5 - 40 traiettorie - 4519 osser-
vazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
A.11 Modello omogeneo - Dataset6 - 150 traiettorie - 40246 osservazioni 88
A.12 Modello non omogeneo - Dataset6 - 150 traiettorie - 40246 os-
servazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
A.13 Modello omogeneo - Dataset7 - 180 traiettorie - 110415 osserva-
zioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Laurea Magistrale in Informatica VII
A.14 Modello non omogeneo - Dataset7 - 180 traiettorie - 110415
osservazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
A.15 Modello omogeneo - Dataset8 - 100 traiettorie - 22827 osservazioni 90
A.16 Modello non omogeneo - Dataset8 - 100 traiettorie - 22827 os-
servazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
A.17 Modello omogeneo - Dataset9 - 600 traiettorie - 202186 osserva-
zioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
A.18 Modello non omogeneo - Dataset9 - 600 traiettorie - 202186
osservazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
A.19 Modello omogeneo - Dataset10 - 50 traiettorie - 62996 osservazioni 92
A.20 Modello non omogeneo - Dataset10 - 50 traiettorie - 62996 os-
servazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
A.21 Modello omogeneo - Dataset11 - 50 traiettorie - 10396 osservazioni 93
A.22 Modello non omogeneo - Dataset11 - 50 traiettorie - 10396 os-
servazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
A.23 Modello omogeneo - Dataset12 - 200 traiettorie - 103110 osser-
vazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
A.24 Modello non omogeneo - Dataset12 - 200 traiettorie - 103110
osservazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
A.25 Modello omogeneo - Dataset13 - 70 traiettorie - 10867 osservazioni 95
A.26 Modello non omogeneo - Dataset13 - 70 traiettorie - 10867 os-
servazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Elenco delle tabelle
5.1 Configurazioni di parametri per esperimenti caso B . . . . . . . 55
5.2 Configurazioni di parametri per esperimenti caso C . . . . . . . 56
5.3 Tempi di esecuzione implementazione MapReduce su Dataset9 . 58
VIII
Elenchi
5.4 Configurazioni di parametri per esperimenti caso B e C su da-
taset SongBird . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
B.1 Dataset1 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
B.2 Dataset1 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
B.3 Dataset2 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
B.4 Dataset2 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
B.5 Dataset3 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
B.6 Dataset3 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
B.7 Dataset4 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
B.8 Dataset4 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
B.9 Dataset5 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
B.10 Dataset5 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Laurea Magistrale in Informatica IX
Elenchi
B.11 Dataset6 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
B.12 Dataset6 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
B.13 Dataset7 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
B.14 Dataset7 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
B.15 Dataset8 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
B.16 Dataset8 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
B.17 Dataset9 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
B.18 Dataset9 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
B.19 Dataset10 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
B.20 Dataset10 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
B.21 Dataset11 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Laurea Magistrale in Informatica X
Elenchi
B.22 Dataset11 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
B.23 Dataset12 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
B.24 Dataset12 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
B.25 Dataset13 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
B.26 Dataset13 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
C.1 Dataset1 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 2 ; Epoche Max = 5; . . . . . . . 106
C.2 Dataset1 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 3 ; Epoche Max = 6; . . . . . . . 107
C.3 Dataset1 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 2 ; Epoche Max = 5; . . . . . . . . 108
C.4 Dataset1 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 3 ; Epoche Max = 6; . . . . . . . . 109
C.5 Dataset2 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 2 ; Epoche Max = 5; . . . . . . . 110
C.6 Dataset2 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 3 ; Epoche Max = 6; . . . . . . . 111
Laurea Magistrale in Informatica XI
Elenchi
C.7 Dataset2 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 2 ; Epoche Max = 5; . . . . . . . . 112
C.8 Dataset2 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 3 ; Epoche Max = 6; . . . . . . . . 113
C.9 Dataset3 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 2 ; Epoche Max = 5; . . . . . . . 114
C.10 Dataset3 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 3 ; Epoche Max = 6; . . . . . . . 115
C.11 Dataset3 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 2 ; Epoche Max = 5; . . . . . . . . 116
C.12 Dataset3 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 3 ; Epoche Max = 6; . . . . . . . . 117
C.13 Dataset4 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 2 ; Epoche Max = 5; . . . . . . . 118
C.14 Dataset4 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 3 ; Epoche Max = 6; . . . . . . . 119
C.15 Dataset4 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 2 ; Epoche Max = 5; . . . . . . . . 120
C.16 Dataset4 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 3 ; Epoche Max = 6; . . . . . . . . 121
C.17 Dataset5 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 2 ; Epoche Max = 5; . . . . . . . 122
Laurea Magistrale in Informatica XII
Elenchi
C.18 Dataset5 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 3 ; Epoche Max = 6; . . . . . . . 123
C.19 Dataset5 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 2 ; Epoche Max = 5; . . . . . . . . 124
C.20 Dataset5 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 3 ; Epoche Max = 6; . . . . . . . . 125
C.21 Dataset6 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 2 ; Epoche Max = 5; . . . . . . . 126
C.22 Dataset6 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 3 ; Epoche Max = 6; . . . . . . . 127
C.23 Dataset6 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 2 ; Epoche Max = 5; . . . . . . . . 128
C.24 Dataset6 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 3 ; Epoche Max = 6; . . . . . . . . 129
C.25 Dataset7 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 2 ; Epoche Max = 8; . . . . . . . 130
C.26 Dataset7 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 4 ; Epoche Max = 8; . . . . . . . 131
C.27 Dataset7 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 2 ; Epoche Max = 8; . . . . . . . . 132
C.28 Dataset7 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 4 ; Epoche Max = 8; . . . . . . . . 133
Laurea Magistrale in Informatica XIII
Elenchi
C.29 Dataset8 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 2 ; Epoche Max = 5; . . . . . . . 134
C.30 Dataset8 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 3 ; Epoche Max = 6; . . . . . . . 135
C.31 Dataset8 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 2 ; Epoche Max = 5; . . . . . . . . 136
C.32 Dataset8 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 3 ; Epoche Max = 6; . . . . . . . . 137
C.33 Dataset9 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 2 ; Epoche Max = 5; . . . . . . . 138
C.34 Dataset9 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 3 ; Epoche Max = 6; . . . . . . . 139
C.35 Dataset9 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 2 ; Epoche Max = 5; . . . . . . . . 140
C.36 Dataset9 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 3 ; Epoche Max = 6; . . . . . . . . 141
C.37 Dataset10 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 2 ; Epoche Max = 5; . . . . . . . 142
C.38 Dataset10 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 3 ; Epoche Max = 6; . . . . . . . 143
C.39 Dataset10 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 2 ; Epoche Max = 5; . . . . . . . . 144
Laurea Magistrale in Informatica XIV
Elenchi
C.40 Dataset10 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 3 ; Epoche Max = 6; . . . . . . . 145
C.41 Dataset11 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 2 ; Epoche Max = 5; . . . . . . . 146
C.42 Dataset11 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 3 ; Epoche Max = 6; . . . . . . . 147
C.43 Dataset11 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 2 ; Epoche Max = 5; . . . . . . . . 148
C.44 Dataset11 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 3 ; Epoche Max = 6; . . . . . . . . 149
C.45 Dataset12 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 2 ; Epoche Max = 5; . . . . . . . 150
C.46 Dataset12 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 3 ; Epoche Max = 6; . . . . . . . 151
C.47 Dataset12 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 2; Epoche Max = 5; . . . . . . . . . 152
C.48 Dataset12 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 3; Epoche Max = 6; . . . . . . . . . 153
C.49 Dataset13 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 2; Epoche Max = 5; . . . . . . . 154
C.50 Dataset13 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDeu; Pesatura
= Ampiezza; Epoche Start = 3; Epoche Max = 6; . . . . . . . 155
Laurea Magistrale in Informatica XV
C.51 Dataset13 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 2; Epoche Max = 5; . . . . . . . . . 156
C.52 Dataset13 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;
Tipologia operatori = Proporzionali; Score = BDe; Pesatura =
Ampiezza; Epoche Start = 3; Epoche Max = 6; . . . . . . . . . 157
Elenco degli algoritmi
1 ARTIVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2 Apprendimento sequenza NHCTBN - SA - Informazione completa 38
3 Apprendimento sequenza NHCTBN - SA - Informazione parziale 41
4 Apprendimento sequenza NHCTBN - SA - Nessuna informazione 44
5 Word-Count in MapReduce . . . . . . . . . . . . . . . . . . . . 48
6 Apprendimento NHCTBN MapReduce: Funzione Map . . . . . . 51
7 Apprendimento NHCTBN MapReduce: Funzione Reduce . . . . 53
XVI
Introduzione
Una Bayesian Network (BN) è un modello grafico probabilistico che permette
di rappresentare le dipendenze condizionali tra variabili aleatorie, e consente di
fare previsioni su di esse, calcolando la probabilità che una variabile si trovi in
un determinato stato conoscendo lo stato di altre variabili; tuttavia nella loro
formulazione base le BN permettono di modellare solamente i sistemi statici,
ovvero solamente quelli che non mutano con il passare del tempo.
Proseguiamo con una estensione delle BN, le Dynamic Bayesian Network
(DBN) (Dean & Kanazawa, 1989), che permettono di rappresentare sistemi
dinamici a tempo discreto.
Le DBN modellano la distribuzione delle transizioni dal tempo t al tempo
t+ ∆t attraverso una BN, per una determinata granularità ∆t; si può dire che
le DBN fotografano il comportamento di un sistema in diversi istanti temporali
equidistanti tra loro, tuttavia portando con sé una limitazione non indifferente,
poiché la granularità scelta è unica per l’intero sistema. Tale situazione implica
che le variabili contenute nel sistema sono costrette ad evolvere con tassi o
velocità simili, anche se questo non necessariamente avviene nella realtà.
Un superamento delle DBN sono le Continuous Time Bayesian Network
(CTBN) (Nodelman et al. , 2002a) in cui l’evoluzione dello stato del sistema
modellato è rappresentata in modo esplicito rispetto al tempo. Questo modello
si basa sulle BN e sui processi di Markov, prestandosi molto bene a modellare
un sistema in cui le dipendenze condizionali tra le variabili in esso contenute
sono fisse.
Evoluzione di quanto detto sono le Non-Homogeneous Continuous Time
Bayesian Network (NHCTBN) che sono delle CTBN in cui le dipendenze condi-
zionali tra le variabili nel sistema che si sta modellando non sono fissate ma
variano nel tempo: questo si traduce nella la rappresentazione di più strutture
per modellare le dipendenze, una per ogni epoca che si vuole modellare.
XVII
Elenchi
Lo scopo di questa tesi è la progettazione, realizzazione e validazione di
un framework che permette l’apprendimento delle NHCTBN, rendendo possibile
l’utilizzo di questo nuovo modello in ambito applicativo.
La tesi è strutturata nel seguente modo:
• primo capitolo descrizione dei modelli omogenei, quindi BN, DBN, pro-
cessi di Markov e CTBN, necessari ad introdurre formalmente le NHCTBN.
• secondo capitolo panoramica e problematiche dei modelli non omogenei
attualmente presenti in letteratura;
• terzo capitolo definizione formale dell’apprendimento strutturale delle
NHCTBN e relativa rappresentazione;
• quarto capitolo si introduce il framework MapReduce, con relativa ar-
chitettura e funzionamento. Successivamente si illustra l’implementazio-
ne Apache Hadoop. Infine, si presenta l’algoritmo di apprendimento di
una NHCTBN per questo framework;
• quinto capitolo esperimenti sia su dataset creati in laboratorio che reali;
• sesto capitolo conclusioni e sviluppi futuri.
Contributi
I contributi innovativi di questo lavoro di tesi sono i seguenti:
• Progettazione di algoritmi che permettono l’apprendimento di NHCTBN;
• Implementazione mediante framework Hadoop MapReduce dei nuovi al-
goritmi, utile in caso di grandi quantità di dati.
• Implementazione dei nuovi algoritmi per il funzionamento su singola mac-
china (server), per l’esecuzione efficiente su medie e piccole quantità di
dati;
• Validazione del modulo software tramite una ricca campagna sperimen-
tale, con l’utilizzo di dataset simulati e reali presenti nella letteratura
specializzata.
Laurea Magistrale in Informatica XVIII
Capitolo 1
BN e modelli omogenei
In questo primo capitolo si discute dei modelli omogenei, ovvero quelli la cui
struttura non varia nel tempo. Si inizia definendo le Bayesian Network (BN) e si
forniscono le nozioni fondamentali che le caratterizzano. Le BN permettono di
modellare solo sistemi statici, tuttavia introducono concetti molto importanti,
come quelli di genitore e di indipendenza condizionale, che sono alla base dei
modelli trattati in questa tesi. Successivamente viene presentata un’evoluzione
delle BN, le Dynamic Bayesian Network (DBN), che introducono una prima
trattazione del tempo seppure in maniera discreta. Infine, si presentano le
Continuous Time Bayesian Network (CTBN), che permettono la trattazione
del tempo in maniera continua.
1.1 BN
Una Bayesian Network (BN) è un modello grafico che rappresenta un insieme di
variabili stocastiche e le loro relazioni mediante l’uso di un grafo aciclico orien-
tato (DAG), in cui ogni nodo rappresenta una variabile e gli archi rappresentano
le relazioni di dipendenza.
Per poter procedere con la definizione delle BN è necessario introdurre il
concetto di indipendenza condizionale e ancor prima fornire la definizione di
Indipendenza tra variabili casuali.
Definizione 1.1. Due variabili casuali A e B sono indipendenti se ∀x, y si ha
che:
P (x ∈ A|y ∈ B) = P (x ∈ A) (1.1)
1
1.1. BN
L’indipendenza condizionale è una proprietà più debole di quella di indi-
pendenza, ma più comune e realistica se si parla dei sistemi complessi.
Definizione 1.2 (Indipendenza Condizionale). (Whitt, 2006) Due variabili
casuali A e B sono Condizionalmente Indipendenti rispetto a una variabile
casuale C se
P (A |C,B) = P (A |C) (1.2)
Questo significa che quando è noto il valore della variabile C, le variabili A
e B sono indipendenti.
A questo punto è possibile fornire la definizione di BN:
Definizione 1.3 (Bayesian Network). (Pearl, 1988) Una BN rispetto a un
insieme di variabili casuali {X1, ..,Xn} è costituita da:
• G: un DAG, dove ogni nodo è associato ad una variabile casuale Xi ∈ X
• Una CPT per ogni Xi, che rappresenta la distribuzione condizionata
P (Xi |PaG(Xi)) come funzione dei suoi genitori in G. 1
Osservazione. Se nel grafo G non è presente un arco che collega due nodi,
allora i suddetti nodi sono condizionalmente indipendenti.
Rappresentiamo la probabilità che una variabile X ∈ X assuma valore
x, dati i valori u dei genitori U ∈ X, con il simbolo θx|u, che equivale alla
probabilità condizionata P (x | u).
Le BN si possono considerare la rappresentazione grafica di una distribuzio-
ne di probabilità congiunta, è infatti possibile rappresentare tale distribuzione
mediante la chain rule:
P (X1, . . . , XN ) =
N∏i=1
P (Xi | PaG(Xi)) (1.3)
Osservazione. Mediante la chain rule le BN sono in grado di rappresentare la
distribuzione di probabilità congiunta in modo molto efficace. Non c’è infatti
bisogno di rappresentare le probabilità di tutte le combinazioni di stati delle
variabili ma solo la probabilità di ogni variabile condizionata ai suoi genitori.
In Figura 1.1 è riportato un esempio di BN. Si evidenzia come i nodi
radice abbiano associata una tabella di probabilità marginale che rappresenta
la probabilità a priori della variabile ad essi associata.1PaG(Xi) rappresenta l’insieme dei genitori del nodo Xi in G
Laurea Magistrale in Informatica 2
1.1. BN
Figura 1.1: BN di esempio con relative CPT
1.1.1 Apprendimento
L’apprendimento di una BN si attua tramite due fasi:
1. Ricerca del grafo - Apprendimento della struttura;
2. Stima delle probabilità condizionate - Apprendimento dei parametri.
Esistono tre metodi principali per l’apprendimento delle BN:
1. Modellare la conoscenza degli esperti, cioè definire la struttura e i para-
metri sulla base delle valutazioni (soggettive) da parte di studiosi, esperti
del problema oggetto di studio;
2. Imparare dai dati (sia la struttura che i parametri);
3. Combinare i due metodi precedenti, usando la conoscenza dell’esperto
come conoscenza a priori, in modo tale da imporre la presenza o l’as-
senza di alcuni archi nella struttura o definire distribuzioni a priori sui
parametri e/o sulla struttura.
In questa tesi si assume di essere nel caso 3, quindi si focalizza l’apprendimento
della BN a partire dai dati (completi), lasciando comunque la possibilità di
inserire della conoscenza a priori sulla struttura (conoscenza dell’esperto).
Laurea Magistrale in Informatica 3
1.1. BN
Inoltre, per quanto riguarda l’apprendimento della struttura si utilizza
l’Approccio Search & Score, dove si usano funzioni di score per confrontare
la bontà delle possibili strutture della rete e selezionare quella che meglio si
adatta ai dati. Questo approccio, nel nostro caso, viene descritto in dettaglio
nell’apprendimento strutturale delle NHCTBN nel capitolo successivo.
Mentre, per quanto riguarda l’apprendimento dei parametri, si adotta il
caso in cui si conosce già la struttura, quindi l’apprendimento dai dati avviene
attraverso una stima a partire da una serie di osservazioni. Per fare questo si
ricorre al concetto di Statisticha Sufficiente.
Definizione 1.4 (Statistica Sufficiente). (Fisher, 1922) Una statistica T si
dice sufficiente se qualsiasi altra statistica che può essere calcolata dallo stesso
campione non fornisce maggiori informazioni circa il valore del parametro da
stimare.
Una statistica sufficiente che può essere usata per le BN è il numero di
osservazioni nelle quali la variabile X ∈ X assume valore x, e i suoi genitori U
assumono valori u, e si indica con M [x|u].
Quindi, data la struttura G, il likelihood dei dati D si può scrivere come
prodotto di likelihood locali, uno per ogni variabile X
LX(θ : D) =∏u∈U
∏x∈X
θM [x|u]x|u
dove θ è l’insieme dei parametri delle distribuzione di probabilità condizionale
(CPD). Per questioni numeriche viene di norma computato il log-likelihood
`X(θ : D) =∑u∈U
∑x∈X
M [x|u] ln(θx|u) (1.4)
La stima del parametro θ che massimizza il log-likelihood nell’equazione Equa-
zione 1.4 è:
θ̂x|u =M [x|u]
M [u]
dove M [u] =∑
xM [x|u].
1.1.2 Inferenza
Con inferenza si intende il processo mediante il quale si calcola la probabilità
a posteriori di una variabile Xi, avendo a disposizione l’osservazione di alcu-
Laurea Magistrale in Informatica 4
1.2. DBN
ne altre variabili. Quest’osservazione si dice evidenza, e la sua propagazione
consiste nell’aggiornare le distribuzioni di probabilità delle variabili aleatorie
in accordo con la nuova informazione disponibile.
La propagazione può avvenire in 2 modi:
• dall’alto verso il basso, ovvero quando si ha l’evidenza sui genitori, e si
calcolano le probabilità dei figli;
• dal basso verso l’alto, l’evidenza si ha sui figli, e si calcolano le probabilità
dei genitori.
Esistono inoltre due tipi di evidenza:
• evidenza hard: si conosce lo stato di una o più variabili;
• evidenza soft: non si conosce il valore dello stato delle variabili, ma si
possono fare affermazioni sul loro stato.
Gli algoritmi per fare inferenza sulle BN sono divisi in due famiglie:
• Inferenza Esatta: si applica la chain rule, descritta nell’ Equazione 1.3,
su tutte le variabili della rete;
• Inferenza Approssimata: se il numero di stati delle variabili è elevato,
l’inferenza esatta diventa onerosa, si usano quindi metodi per approssi-
mare le distribuzioni di probabilità a posteriori.
1.2 DBN
Una DBN (Murphy, 2002) è un’estensione di una BN per modellare le distri-
buzioni di probabilità su una collezione numerabile infinita di variabili casuali
{D0,D1,D2, . . . } indicizzate dal tempo. Si noti che sono dette dinamiche per-
ché modellano un sistema dinamico, non perché la rete cambi struttura nel
tempo.
Prima di procedere con la definizione di DBN è necessario fornire la defini-
zione di time-slice.
Definizione 1.5 (Time-slice). Un time slice, in una DBN, è un intervallo di
tempo in cui è valida una determinata struttura.
Laurea Magistrale in Informatica 5
1.2. DBN
Definizione 1.6 (Dynamic Bayesian Network). (Nodelman, 2007) Una DBN
è una coppia 〈B0,B2T 〉 dove:
• B0 è una BN su D0.
• B2T è una 2-time-slice BN, che definisce un modello di transizione dal-
l’istante i all’istante i + 1 come una BN sull’insieme di variabili casuali
Di+1 condizionate dal valore delle variabili casuali Di.
Sono permesse due tipologie di archi:
• Archi intra-time-slice, permessi tra variabili casuali appartenenti alla
stessa time-slice. Ad esempio tra D e D′, con D,D′ ∈ Di+1.
• Archi inter-time-slice, permessi tra una variabile casuale in una time-
slice e un’altra nella time-slice successiva. Ad esempio tra D ∈ Di e
D ∈ Di+1, oppure tra D ∈ Di e D′ ∈ Di+1.
Osservazione. La 2-time-slice BN specifica le CPD per le variabili in Di+1 ma
non in D.
Osservazione. Si può dire che le DBN fotografano il comportamento di un
sistema in diversi istanti temporali, equidistanti tra loro. Portano quindi
con sé una limitazione non indifferente, la granularità di evoluzione temporale
scelta è unica per l’intero sistema.
Esempio. In Figura A.26 possiamo vedere una DBN che rappresenta il ri-
schio di collisione in cui una nave può incorrere durante la sua navigazione.
In questo modello tutte le variabili sono di interfaccia a meno della variabile
collisione. Le variabili di interfaccia sono tutte quelle i cui valori al tempo
t influenzano in maniera diretta le variabili al tempo t + 1. Quindi solo le
variabili di interfaccia possono essere genitori delle variabili al tempo t+ 1.
Dalla componente dinamica del modello (la 2-time-slice BN B →) si evince
che:
• Il rischio di collisione dipende dai valori attuali di posizione e velocità;
• La velocità dipende dal suo valore nel time slice precedente;
• La posizione dipende sia dalla posizione che dalla velocità al time slice
precedente;
Laurea Magistrale in Informatica 6
1.3. Processo di Markov
In Figura A.26 si mostra sia il modello di transizione (la 2-time-slice BN
B →) che la struttura all’istante iniziale (B0). Si mostra inoltre la versione
“unrolled“ delle DBN che altro non è che una BN.
Figura 1.2: Esempio di DBN
1.3 Processo di Markov
Un processo di Markov è un processo stocastico, che soddisfa la proprietà di
Markov e può essere omogeneo o non omogeneo.
Definizione 1.7 (Proprietà di Markov). (Norris, 1998) Un processo stocastico
X soddisfa la proprietà di Markov se il suo stato futuro non dipende dagli
stati passati, ma solo dello stato attuale, o in termini più formali: P (X(t +
∆t) | X(t), X(s)) = P (X(t+ ∆t) | X(t)) per qualsiasi s, t : s < t.
Definizione 1.8 (processo di Markov omogeneo). (Neapolitan, 2004) Un pro-
cesso di Markov si dice omogeneo se la probabilità dello stato futuro non di-
pende dal tempo t, ma esclusivamente dallo stato attuale, ovvero se P (X(t+
∆t) | X(t)) = P (X(0 + ∆t) | X(0)).
Laurea Magistrale in Informatica 7
1.3. Processo di Markov
Un processo di Markov omogeneoX con dominio V al(X) = {x1, x2, . . . , xn}è definibile tramite una distribuzione di probabilità iniziale PX0 e una matrice
di intensità QX
QX =
−qx1 qx1x2 · · · qx1xn
qx2x1 −qx2 · · · qx2xn...
.... . .
...
qxnx1 qxnx2 · · · −qxn
dove l’intensità qxi =
∑xj 6=xi qxixj è proporzionale alla probabilità istantanea di
lasciare lo stato i, e l’intensità qxixj è proporzionale alla probabilità istantanea
di transizione dallo stato xi allo stato xj . Formalmente:
lim∆t→0
P (X(t+ ∆t) = xj | X(t) = xi) = lim∆t→0
qij∆t+O(∆t2), con i 6= j
lim∆t→0
P (X(t+ ∆t) = xi | X(t) = xi) = lim∆t→0
1− qi∆t+O(∆t2)
(1.5)
La quantità di tempo che un processo di Markov omogeneo X rimane nello
stato x, prima di transitare ad un altro stato, è una variabile aleatoria con
distribuzione di probabilità esponenziale di parametro qx, e quindi la funzione
di densità e la funzione di ripartizione risultano:
f(qx, t) = qxexp(−qxt)
F (qx, t) = 1− exp(−qxt)(1.6)
Il valore atteso per il tempo in cui il processo X rimane nello stesso stato x è
quindi 1/qx. Quando avviene il passaggio di stato X transita dallo stato x allo
stato x′ con probabilità qxx′/qx; La distribuzione che rappresenta i suddetti
cambi di stato è quindi imputabile a due componenti:
• Una distribuzione esponenziale che modella il tempo in cui avviene la
transizione;
• Una distribuzione multinomiale che modella lo stato in cui si troverà il
sistema dopo la transizione;
Esempio. Assumiamo di voler modellare l’andamento della pressione baro-
metrica B(t) discretizzata in tre stati (b1 = decresce, b2 = stazionaria, e b3 =
Laurea Magistrale in Informatica 8
1.4. Processi di Markov condizionali
cresce); possiamo quindi scrivere la seguente matrice di intensità:
QB =
−.21 .2 .01
.05 −.1 .05
.01 .2 −.21
Se usiamo come misura del tempo le ore, significa che se attualmente la pres-
sione decresce, smetterà di decrescere in poco meno di 5 ore ( 1.21 ore); diventerà
stazionaria con probabilità di .2.21 e crescerà con probabilità pari a .01
.21 .
Usando i parametri delle distribuzioni sopra elencate, oltre che con una
matrice di intensità, un processo di Markov si può rappresentare anche utiliz-
zando:qX = {qi : 1 ≤ i ≤ N}
θX = {θij : 1 ≤ i, j ≤ N, i 6= j}
dove qX è l’insieme dei parametri delle distribuzioni esponenziali e θX è
l’insieme dei parametri delle distribuzioni multinomiali. Questo metodo di
rappresentazione è chiamato parametrizzazione mista.
Teorema 1.1. (Nodelman, 2007) Siano X e Y due processi di Markov con
uguale distribuzione iniziale e uguale spazio degli stati. Se X è definito dalla
matrice di intensità QX e Y è definito tramite parametrizzazione mista qY ,θYallora X e Y sono stocasticamente equivalenti se e solo se:
qi ∈ qY = qi ∈ QX
θij =qijqi
Osservazione. Entrambi i modi di rappresentazione usano N2 parametri, ma
solo N2 −N parametri sono liberi.
1.4 Processi di Markov condizionali
Per poter modellare una rete, mediante l’utilizzo di processi di Markov, è ne-
cessario introdurre i processi di Markov condizionali. I processi di Markov
condizionali sono processi di Markov non omogenei, che evolvono nel tempo,
ma non come funzione diretta del tempo, bensì come funzione dello stato at-
Laurea Magistrale in Informatica 9
1.4. Processi di Markov condizionali
tuale di una serie di altre variabili, le quali evolvono a loro volta come dei
processi di Markov.
Con l’utilizzo dei processi di Markov condizionali è quindi possibile mo-
dellare il comportamento dei processi di Markov basandosi non sullo stato
dell’intero sistema ma su un insieme limitato di altre variabili. Questo è un
concetto fondamentale per poter modellare le CTBN.
Ora è necessario fornire una definizione di matrice di intensità condizionale
(CIM):
Definizione 1.9 (matrice di intensità condizionale). (Neapolitan, 2004) Dato
un processo di Markov condizionale X che evolve rispetto a un insieme di
processi di Markov Y - che vengono chiamati genitori di X e rappresentati
come Pa(X) - si definisce una CIM:
QX|Pa(X) =
−q1(Pa(X)) q12(Pa(X)) · · · q1n(Pa(X))
q21(Pa(X)) −q2(Pa(X)) · · · q2n(Pa(X))...
.... . .
...
qn1(Pa(X)) qn2(Pa(X)) · · · −qn(Pa(X))
Si può scrivere la CIM come una serie di matrici di intensità, una per ogni
possibile combinazione degli stati di Pa(X).
Esempio. Consideriamo una variabile E(t) che modella quando una persona
sta o non sta mangiando (e1 = non mangia, e2 = mangia), che è condizionata
dalla variabile H(t) che modella quando una persona ha o non ha fame (h1 =
non ha fame, h2 = ha fame).
Possiamo quindi scrivere le seguenti CIM per E(t):
QE|h1 =
[−.01 .01
10 −10
]QE|h2 =
[−2 2
.01 −.01
]
Mediamente ci si aspetta che una persona che ha fame e non sta mangiando,
inizi a mangiare in mezz’ora, oppure che una persona che non ha fame e sta
mangiando smetta di mangiare mediamente in 6 minuti ( 110 ore)
Laurea Magistrale in Informatica 10
1.5. CTBN
1.5 CTBN
Le CTBN sono un’ulteriore estensione delle BN e permettono di rappresenta-
re processi a stati finiti, in tempo continuo e con spazio degli stati discreto.
L’introduzione di questo modello si è resa necessaria al fine di superare le li-
mitazioni osservate nelle DBN, ovvero per poter trattare il tempo in maniera
continua.
Sfruttando la definizione di processi di Markov condizionali è possibile dare
una definizione formale di CTBN. Le CTBN possono essere infatti viste come la
composizione di un insieme di processi di Markov condizionali.
Definizione 1.10 (Continuous Time Bayesian Network). (Nodelman et al. ,
2002b) Sia X un insieme di variabili X1, X2, . . . , XN , ogni Xi ha un dominio
finito, rappresentato come V al(Xi). Una Continuous Time Bayesian Network
N su X consiste di 2 componenti:
• una distribuzione iniziale P 0X , specificata come una BN B su X.
• un modello di transizione a tempo continuo rappresentato da:
– un grafo orientato (anche ciclico) G, i cui nodi sono X1, X2, . . . , XN ;
L’insieme dei genitori di ogni nodo Xi viene denotato con Pa(Xi).
– una matrice di intensità condizionale QX|Pa(X) per ogni variabile
Xi ∈ X.
Osservazione. Dato che nelle CTBN gli archi rappresentano le dipendenze nel
tempo, non c’è motivo per cui il grafo G debba essere aciclico, e ciò porta ad
una notevole semplificazione di calcolo.
Esempio. (Nodelman, 2007) La Figura 1.3 mostra la struttura di una CTBN
che modella l’effetto di un farmaco. Ci sono nodi che rappresentano l’assun-
zione del farmaco e la concentrazione dello stesso nel flusso sanguigno. La
concentrazione dipende da quanto lo stomaco è pieno. Il farmaco dovrebbe
alleviare i dolori articolari, che potrebbero essere aggravati dalla diminuzione
della pressione. Il farmaco potrebbe anche causare sonnolenza. Il modello con-
tiene un ciclo, che modella il fatto che una persona sia affamata dipende da
quanto lo stomaco è pieno, che a sua volta dipende da quanto tempo è passato
da quando la persona ha mangiato.
Laurea Magistrale in Informatica 11
1.5. CTBN
Figura 1.3: CTBN che rappresenta l’effetto di un farmaco
Laurea Magistrale in Informatica 12
Capitolo 2
Modelli non omogenei
In questo capitolo si introduce il problema della modellazione di sistemi non
omogenei, ovvero in cui le dipendenze condizionali tra le variabili non sono
fissate ma variano nel tempo. A tal proposito si discuteranno le principali so-
luzioni presenti in letteratura al fine di motivare l’introduzione del nuovo mo-
dello delle Non-Homogeneous Continuous Time Bayesian Network (NHCTBN)
proposto in questo lavoro di tesi.
2.1 Panoramica
Le DBN e le CTBN, discusse nei capitoli precedenti, funzionano partendo dall’as-
sunzione che i dati temporali, su cui si effettua l’apprendimento, provengano
da una distribuzione che non varia nel tempo, ovvero è stazionaria. Questa
assunzione in molti ambiti è molto restrittiva. Per questo motivo si sente la ne-
cessità di introdurre modelli non omogenei in grado di superare i limiti dettati
dall’assunzione di stazionarietà della distribuzione.
Un primo modello non omogeneo, presente in letteratura, è TESLA (Ah-
med & Xing, 2009). TESLA si basa sull’apprendimento di Discrete Binary
Markov Random Field (Discrete Binary MRF), è in grado di scalare su un numero
elevato di variabili, tuttavia soffre le seguenti restrizioni:
• E’ in grado di apprendere solo variabili binarie;
• Gli archi che rappresenta, ovvero le relazioni, non sono orientati;
• E’ in grado di individuare le relazioni solo a coppie di variabili;
13
2.1. Panoramica
Un ulteriore modello non omogeneo, presente in letteratura, è ARTIVA
(S. Lèbre, 2010). ARTIVA si basa sulle Time-Varying Dynamic Bayesian Ne-
towrk (Time-Varying DBN), che sono delle DBN in cui gli archi, passando da
una time-slice alla successiva, possono variare. Questo si traduce nell’avere
una sequenza di DBN, che modellano l’evoluzione, nel tempo, delle dipendenze
condizionate tra variabili. Tuttavia rimane la principale limitazione delle DBN
legata alla trattazione del tempo in maniera discreta.
Come vedremo meglio nella sezione sezione 2.2, una DBN ha valenza in un
certo intervallo temporale chiamato epoca. La sequenza di epoche può inoltre
essere rappresentata come una sequenza di istanti di transizione che definiscono
il passaggio da un epoca alla successiva.
Di seguito si mostra l’algoritmo di ARTIVA che si basa sull’algoritmo RJ-
MCMC:
Algoritmo 1 ARTIVARequire: bk probabilità di aggiungere un nuovo cambio di struttura; dk pro-
babilità di rimuovere un cambio di struttura; sk probabilità di shift; Lnumero di iterazioni
1: function LearnArtiva(K,D,M)2: for l← 1 to L do3: u← estrai da U[0,1]
4: Estrai istante di transizione k5: Calcola bk, dk e vk6: if u < bk then7: Crea nuovo istante di transizione al tempo k8: else9: if u < bk + dk then
10: Elimina istante di transizione presente al tempo k11: else12: if u < bk + dk + sk then13: Sposta l’istante di transizione presente al tempo k14: else15: Considera un cambio di struttura16: end if17: end if18: end if19: end for20: end function
In questo algoritmo k è l’istante di transizione che viene estratto ad ogni
iterazione. I parametri bk, dk e sk rappresentano, rispettivamente, la probabi-
Laurea Magistrale in Informatica 14
2.2. NSDBN
lità di aggiunta, rimozione e shift di un istante di transizione. Vi è inoltre la
probabilità vk di effettuare un cambio di struttura, questa probabilità è rappre-
sentata dall’ultimo else dell’algoritmo. Queste probabilità vengono ricalcolate
ad ogni iterazione in base all’istante di transizione estratto. In base alle pro-
babilità calcolate sull’istante k si sceglie, quindi, se modificare gli istanti di
transizione o se modificare la struttura (DBN) della singola epoca.
Un ulteriore modello non omogeneo, che è anch’esso un’ evoluzione delle
DBN, è il Non Omogeneous Dynamic Bayesian Netowrk (NHDBN) (Robinson
& Hartemink, 2010).
Le NHDBN soffrono anch’esse le limitazioni delle DBN, legate alla trattazione
del tempo in maniera discreta, tuttavia molti concetti sono stati ereditati per
la formulazione della versione non omogenea delle CTBN. Per questo motivo
approfondiremo le NHDBN nel seguito di questo capitolo.
2.2 NSDBN
Prima di procedere con la discussione dei punti chiave riguardanti le NHDBN,
si presentano alcuni concetti fondamentali che ritorneranno utili in tutto lo
svolgimento della tesi.
Si assume di poter osservare lo stato di N variabili casuali discrete Xi.
Questi dati temporali multivariati, D, si assumono essere generati da un pro-
cesso non omogeneo sconosciuto. Si dice non omogeneo in quanto il grafo che lo
rappresenta, G, è una sequenza di reti G1,G2, . . . ,GM (Robinson & Hartemink,
2010). Si definisce il tempo di transizione del grafo tm l’istante temporale in
cui Gm viene sostituito da Gm+1 nel processo di generazione dei dati. Si defini-
sce epoca il periodo tra due tempi di transizione consecutivi, durante il quale
è operativa una singola CTBN.
Si ha quindi che un nodo può avere un insieme di genitori in una determi-
nata epoca; tuttavia questo insieme può cambiare da un’epoca ad un’altra.
Possiamo quindi definire le NHDBN come una sequenza di DBN, una per ogni
epoca. Mediante questa suddivisione in epoche è infatti possibile rappresentare
l’evoluzione nel tempo delle dipendenze condizionate tra variabili.
Laurea Magistrale in Informatica 15
2.2. NSDBN
2.2.1 Apprendimento NSDBN
In questa sezione si vuole dare un idea generale di come funziona l’apprendi-
mento di una NHDBN per poi affrontare nel dettaglio le principali problema-
tiche. Per avere informazioni più dettagliate in merito si faccia riferimento al
relativo articolo (Robinson & Hartemink, 2010).
L’obbiettivo dell’apprendimento è quello di ricostruire l’intera sequenza di
strutture di una NHDBN. Per raggiungerlo gli autori propongono un approccio
probabilistico basato su Markov Chain Monte Carlo (MCMC) (Murphy, 2012).
Il primo passo, per poter comprendere l’utilizzo del MCMC nel nostro caso
specifico, è dare una definizione di stato.
Definizione 2.1 (Stato nell’algoritmo Metropolis-Hastings (MH)). Si definisce
stato, nell’algoritmo MCMC, l’intera sequenza di DBN che compone una NHDBN,
con relativi istanti di transizione da un epoca all’altra.
Adesso si può descrivere l’idea alla base di questo algoritmo mediante i
seguenti passaggi:
1. si parte da uno stato iniziale x, in cui gli istanti di transizioni sono
equidistanti;
2. ad ogni iterazione si propone un nuovo stato x’, generato a partire da x
mediante una proposal distribution;
3. x’, a sua volta, ha una determinata probabilità di essere accettato (ac-
ceptance probability);
4. se si accetta x’, si salva, e successivamente si setta x = x’ e si riparte
dal punto 2;
5. altrimenti si rimane nello stato x e si riparte sempre dal punto 2.
L’algoritmo termina quando si è raggiunto un numero prefissato di itera-
zioni. L’obbiettivo è, dopo un congruo numero di iterazioni, di converge alla
distribuzione target, ovvero alla NHDBN obbiettivo dell’apprendimento.
La generazione di un nuovo stato viene effettuata utilizzando un insie-
me di operazioni, tale insieme dipende da quali sono le informazioni in nostro
possesso. Le tre casistiche, quando si parla di apprendimento di modelli non
omogeneo, sono:
Laurea Magistrale in Informatica 16
2.2. NSDBN
Caso A: informazione completa, si conosce sia il numero di transizioni che gli
istanti temporali in cui avvengono le transizioni.
Caso B: informazione parziale, si conosce il numero di transizioni ma non si
conoscono gli istanti temporali.
Caso C: nessuna informazione, non si conosce né il numero di transizioni né
gli istanti temporali.
Nel caso A, essendo a conoscenza esattamente di quali sono le epoche
avremo bisogno solo di operazioni per modificare le singole strutture. Tali
operazioni sono quindi inerenti all’aggiunta e rimozione di un arco tra due
nodi.
Nel caso B, essendo a conoscenza del numero di epoche ma non di quali esse
siano, oltre alle precedenti operazioni, avremo anche bisogno di una ulteriore
operazione di shift che permette di far variare la grandezza dell’epoca.
Nel caso C, di totale assenza di informazioni, oltre alle precedenti ope-
razioni, avremo bisogno di ulteriori operazioni per poter variare il numero di
epoche. Tali operazioni sono di merge, split e delete, di un epoca già esistente,
e l’operazione di creazione di una nuova epoca. L’operazione di merge consiste
nell’unire assieme un epoca con l’epoca successiva; L’operazione di split inve-
ce consiste nel dividere a metà un epoca, andando quindi a creare due diverse
epoche; L’operazione di delete elimina un istante di transizione, andando quin-
di ad effettuare il merge tra un epoca e l’epoca precedente; Creare una nuova
epoca invece consiste nell’aggiungere un istante di transizione.
L’accettazione di un nuovo stato dipende innanzi tutto dalla probabilità
di proporre il nuovo stato, ovvero dalle operazioni descritte precedentemente.
Dipende inoltre anche dal likelihood ratio, che può essere rappresentato tramite
la seguente formula:
P (D|x′)P (D|x)
Il likelihood ratio è quindi il rapporto tra la probabilità a posteriori del
dataset D dato il nuovo modello x′ e la probabilità a posteriori sempre del
datasetD dato il modello precedente x. Questa probabilità viene rappresentata
mediante una funzione di score che analizzeremo in seguito.
Laurea Magistrale in Informatica 17
2.2. NSDBN
Una volta generata una sequenza di stati (i nostri campioni), ovvero di
NHDBN, che converge alla nostra distribuzione target, gli autori Robinson e
Hartermink propongono di calcolare il modello medio. Il modello medio si
ottiene prendendo tutti quegli archi che occorrono in almeno il 50% dei cam-
pioni. Anche per quanto concerne i tempi di transizione si mantengono quelli
che occorrono nel maggior numero di campioni.
A questo punto abbiamo visto in via generale come funziona l’apprendi-
mento delle Non Omogeneous Dynamic Bayesian Netowrk (NHDBN). Un punto
molto importante che si vuole approfondire è come viene costruita la funzione
di score e tutte le problematiche ad essa collegate. Tali problematiche infatti si
ripresenteranno, in maniera leggermente diversa, anche per le NHCTBN, e per
questo le si dedica particolare attenzione.
2.2.1.1 Score
Nel costruire uno score che vada bene per le NHDBN quello di cui bisogna tenere
conto è la presenza di più epoche.
Si inizia considerando la singola epoca, per questo Robinson e Hartemink
propongono uno score di tipo BDeu (Murphy, 2012) con una variazione: gli
iperparametri α e τ vengono pesati anche in base alla grandezza dell’epoca.
Questo è equivalente a contare il numero di osservazioni presenti nella singola
epoca, avendo le NHDBN una granularità delle osservazioni fissa, come nelle
DBN.
Valutato lo score delle epoche singolarmente, bisogna aggregare i singoli
score per ottenere lo score globale della NHDBN. Un primo passo è moltiplicare
gli score delle singole epoche, andando ad ottenere il seguente score:
P (D|G1, ..., Gm, T ) ∝n∏i=1
pi∏h=1
qih∏j=1
Γ(αij(Ih))
Γ(αij(Ih) +Nij(Ih)
ri∏k=1
Γ(αijk(Ih) +Nijk(Ih)
Γ(αijk(Ih))
dove:
• n è il numero di nodi della rete;
• pi è il numero di epoche del modello;
Laurea Magistrale in Informatica 18
2.2. NSDBN
• qih è il numero di configurazioni di genitori del nodo i-esimo nell’epoca
h-esima;
• ri è il numero di configurazioni del nodo i-esimo, data la configurazione
j-esima di genitori;
• Ih è l’ampiezza dell’epoca h-esima;
Rimane ancora un problema da affrontare, ovvero questa tipologia di sco-
re (come anche lo score BDeu normale) tende a restituire valori più alti alle
epoche con un numero minore di osservazioni. Questo porta a prediligere la
ricostruzione di epoche più piccole.
Questo problema si nota particolarmente nel caso C di totale mancanza
di informazioni perché si tende a creare più epoche rispetto a quelle contenute
nel modello reale e di piccole dimensioni (micro epoche).
Pesare gli iperparametri per l’ampiezza dell’epoca non basta a risolvere
tale problema. Per ottenere la giusta sequenza di osservazioni Robinson e
Hartemink suggeriscono di sottrarre allo score dell’intera sequenza i seguenti
valori:
• λc ∗numero_cambi: ovvero si moltiplica un parametro λc per il numero
di archi che cambiano tra epoche contigue, questo per scoraggiare cambi
di struttura troppo bruschi tra epoche contigue;
• λe∗numero_epoche: ovvero si moltiplica un parametro λe per il numero
di epoche create.
Entrambi questi valori guidano l’algoritmo alla scoperta delle giuste strut-
ture e del giusto numero di epoche, andando a scoraggiare la creazione di micro
epoche.
Vedremo nel capitolo successivo come questa stessa problematica viene
affrontata nel caso delle NHCTBN
Laurea Magistrale in Informatica 19
Capitolo 3
NHCTBN
Nel capitolo precedente si è presentato il problema di modellare sistemi in
cui le dipendenze condizionali tra le variabili non sono fissate ma variano nel
tempo. In questo capitolo proponiamo le Non-Homogeneous Continuous Time
Bayesian Network (NHCTBN) come soluzione a questo problema.
Si inizia, quindi, fornendone la definizione. Successivamente si presenta
l’argomento chiave di questa tesi, cioè l’apprendimento, per il quale si propone
l’approccio basato su Simulated Annealing (SA).
3.1 NHCTBN
Le NHCTBN sono un evoluzione delle CTBN, in cui le dipendenze condizionali
tra le variabili nel sistema che si sta modellando non sono fissate ma variano
nel tempo. Possono quindi essere viste come una sequenza di CTBN.
Si fornisce di seguito la definizione formale di NHCTBN.
Definizione 3.1 (Non-Homogeneous Continuous Time Bayesian Network).
Sia X un insieme di variabili casuali X1, X2, . . . , XN . Ogni Xi ha un dominio
finito, rappresentato da V al(Xi) = {x1, x2, . . . , xn}. Una Non-Homogeneous
Continuous Time Bayesian Network N su X consiste di 2 componenti:
• una distribuzione iniziale P 0X , specificata come una BN B su X.
• un modello di transizione a tempo continuo rappresentato da:
– una sequenza di grafi orientati (anche ciclici) G = {G1,G2, . . . ,GM},i cui nodi sono X1, X2, . . . , XN .
20
3.1. NHCTBN
– un insieme di matrici di intensità condizionale QPae(Xi)Xi
per ogni
variabile Xi ∈ X, dove Pae(Xi) denota i genitori di Xi nell’epoca
e, definita come un intervallo omogeneo e = [m1,m2], con m1,m2 ∈{1, . . . ,M} e m1 < m2.
Data la variabile casuale Xi, la CIM QPae(Xi)Xi
consiste in un insieme di
matrici di intensità, una matrice di intensità (IM):
QPae(xi)Xi
=
−qPae(xi)x1 q
Pae(xi)x1x2 · · · q
Pae(xi)x1xn
qPae(xi)x2x1 −qPae(xi)x2 · · · q
Pae(xi)x2xn
......
. . ....
qPae(xi)xnx1 q
Pae(xi)xnx2 · · · −qPae(xi)xn
,
per ogni istanziazione Pae(xi) dei genitori Pae(Xi) del nodo Xi, nell’epoca
e, dove n è la cardinalità di V al(Xi).
Si ha che:
• con qPae(xi)xj =
∑xj 6=x′j
qPae(xi)xjx′j
si intende la probabilità istantanea di
lasciare lo stato xj , per una specifica istanziazione Pae(xi) nell’epoca e;
• con qPae(xi)xjx′j
si intende la probabilità istantanea di transizione dallo stato
xj allo stato x′j per la variabile casuale Xi, per una specifica istanziazione
Pae(xi) nell’epoca e.
La IM può essere rappresentata usando due insiemi di parametri:
• l’insieme delle intensità che parametrizzano le distribuzioni di quando
occorrono le transizioni:
qPae(xi)Xi
= {qPae(xi)xj : xj ∈ V al(Xn)}
• l’insieme delle probabilità che parametrizzano le distribuzioni di dove
occorrono le transizioni:
θPae(xi)Xi
= {θPae(xi)xj ,x′j
= qPae(xi)xj ,x′j
/qPae(xi)xj : xj , x′j ∈ V al(Xi), xj 6= x′j}.
I concetti che si presentano nelle seguenti sezioni faranno riferimento al
modello delle NHCTBN, sebbene molti di essi siano in comune con le CTBN.
Laurea Magistrale in Informatica 21
3.2. Statistiche sufficienti e likelihood
3.2 Statistiche sufficienti e likelihood
Definita la struttura formale della rete, andiamo al passo successivo che è quello
di mostrare cosa significa apprendere dai dati.
In questa sezione si mostra come rappresentare i dati in maniera aggregata,
utilizzando le statistiche sufficienti. Successivamente, con l’utilizzo di queste
ultime, si presenta il concetto di likelihood dei dati rispetto ad un modello
di NHCTBN predefinito, e trattando le likelihood si farà riferimento prima alla
likelihood di un singolo nodo e poi la likelihood di un’intera struttura.
3.2.1 Statistiche sufficienti
Di seguito presentiamo la definizione di statistica sufficiente:
Definizione 3.2 (Statistica Sufficiente per nodi senza genitori). Sia X un
processo di Markov che non ha genitori in Ge (cioè Pae(X) = ∅), e con spazio
degli stati V al(X), definiamo la sua statistica sufficiente come:
• Te[x], il tempo speso da X nello stato x ∈ V al(X), nell’epoca e;
• Me[x, x′], il numero di transizioni da x a x′ , con x′ 6= x, occorse
nell’epoca e.
Dall’ultima statistica si può definire Me[x] =∑
xi 6=xj Me[x, x′] come il numero
di transizioni in uscita dallo stato x, nell’epoca e.
Definizione 3.3 (Statistica Sufficiente per nodi con genitori). (Nodelman
et al. , 2002b) Sia X un processo di Markov che ha almeno un genitore in Ge(cioè Pae(X) 6= ∅), e con spazio degli stati V al(X), definiamo la sua statistica
sufficiente come:
• Te[x|u], il tempo speso da X nello stato x ∈ V al(X), mentre i genitori
hanno configurazione degli stati u, nell’epoca e;
• Me[x, x′|u], il numero di transizioni da x a x′, con x′ 6= x, mentre i
genitori hanno configurazione degli stati u, nell’epoca e.
Dall’ultima statistica si può definire Me[x|u] =∑
xi 6=xj Me[x, x′|u] come il
numero di transizioni in uscita dallo stato x, mentre i genitori hanno configu-
razione degli stati u, nell’epoca e.
Laurea Magistrale in Informatica 22
3.2. Statistiche sufficienti e likelihood
3.2.2 Likelihood di un singolo nodo
Dato un processo di Markov omogeneo X(t), la likelihood dei dati è definita
come un prodotto di likelihood, una per ogni transizione d =< xd, td, x′d >∈ D,
che rappresenta la transizione allo stato x′d dopo aver passato un tempo pari a
td nello stato xd. Si può scrivere la likelihood di una singola transizione d nel
seguente modo:
Lx(q,θ : d) = Lx(q : d)Lx(θ : d) (3.1)
= (qxde−qxd td)(θxdx′d) (3.2)
Moltiplicando le likelihood di tutte le transizioni d nell’epoca e, e facendo uso
delle statistiche sufficienti si ha:
Lx(qe,θe : De) =
∏d∈De
Lx(qe : d)
∏d∈De
Lx(θe : d)
=
(∏x
qMe[x]x e−qxTe[x]
)∏x
∏x′ 6=x
θMe[x|x′]xx′
.
3.2.3 Likelihood di una struttura
In una NHCTBN è necessario fornire la likelihood di ogni singola struttura Ge,per ogni epoca e. Si ha, quindi, che in ogni struttura ogni variabile X ∈ X
è condizionata dallo stato dei suoi genitori PaGe(X) nell’epoca e. Avendo i
dati completi si conosce lo stato in cui si trovano i genitori durante tutta la
traiettoria, quindi ad ogni istante si conosce la matrice di intensità QX|PaGe
che governa la dinamica di X. La likelihood di Ge è scomponibile per variabile:
LGe(qe,θe : De) =∏X∈X
LX(qX|Ue,θX|Ue
: De)
=∏X∈X
LX(qX|Ue: De)LX(θX|Ue
: De)(3.3)
Il termine LX(θX|Ue: De) rappresenta la probabilità delle transizioni di
stato, e dipende solo dal valore dei genitori nell’istante della transizione, e
quindi ignora il tempo in cui rimane nello stato precedente alla transizione.
Laurea Magistrale in Informatica 23
3.2. Statistiche sufficienti e likelihood
Usando le statistiche sufficienti è possibile scrivere:
LX(θX|Ue: De) =
∏u∈Ue
∏x∈X
∏x′ 6=x
θMe[x,x′|u]xx′|ue (3.4)
Il termine LX(qX|Ue: De) rappresenta la likelihood del parametro qX|Ue
rispetto ai dati De, ed è funzione del tempo.
Per riscrivere questo termine si ricorre alla statistica sufficiente Te[x|u],
che è scomponibile in 2 parti: Te[x|u] = T re [x|u] + T ce [x|u], dove T re [x|u] rap-
presenta la somma dei td delle transizioni che terminano con X invariato, e
T ce [x|u] la somma dei td delle transizioni che terminano con X in uno stato
differente. Questo perché la transizione può essere dovuta al cambio di stato
della variabile oppure al cambio di stato di uno dei suoi genitori.
Ora è possibile scrivere:
LX(qX|Ue: De) =
( ∏u∈Ue
∏x∈X
qMe[x|u]x|ue e−qx|ueT
ce [x|u]
)×
( ∏u∈Ue
∏x∈X
e−qx|ueTre [x|u]
)=∏u∈Ue
∏x∈X
qMe[x|u]x|ue e−qx|ueTe[x|u]
(3.5)
di conseguenza non è necessario distinguere T re [x|u] e T ce [x|u], ma è sufficiente
usare Te[x|u].
Sostituendo le equazioni 3.4 e 3.5 nell’equazione 3.3 si ottiene:
LGe(qe,θe : De) =∏X∈X
LX(qX|Ue,θX|Ue
: De)
=∏X∈X
∏u∈Ue
∏x∈X
∏x′ 6=x
θMe[x,x′|u]xx′|ue ×
∏u∈Ue
∏x∈X
qMe[x|u]x|ue e−qx|ueTe[x|u]
(3.6)
Passando ai logaritmi, per evitare produttorie di valori molto piccoli, ab-
Laurea Magistrale in Informatica 24
3.3. Apprendimento di una NHCTBN
biamo:
`Ge(qe,θe : De) =∑X∈X
[`X(qX|Ue
: De) + `X(θX|Ue: De)
]
=
[ ∑u∈Ue
∑x∈X
Me[x|u] ln(qx|ue)− qx|ueTe[x|u]
]
+
∑u∈U
∑x∈X
∑x′ 6=x
Me[x, x′|u] ln(θxx′|ue)
, ∀X ∈ X
(3.7)
3.3 Apprendimento di una NHCTBN
Fatte salve tutte le definizioni precedentemente enunciate atte a definire che
cos’è una NHCTBN, passiamo ad approfondire l’apprendimento di una NHCTBN
a partire dai dati.
La fase di apprendimento si compone di due parti:
• apprendimento dei parametri data una struttura Ge, per ogni epoca e,
dai dati disponibili;
• apprendimento della successione di strutture G1,G2, . . . ,GM che compon-
gono la NHCTBN.
Si forniscono alcune definizioni necessarie alla comprensione della fase di ap-
prendimento.
Definizione 3.4 (Traiettoria). Dato un insieme di processi di Markov X(t) =
(X1(t), X2(t), . . . , XN (t)), una traiettoria è un’istanziazione delle variabiliX(t)
per ogni valore di t.
In questo documento si tratterà l’apprendimento solo per dati completi.
Per l’apprendimento con dati incompleti, cioè nel caso in cui si hanno alcune
variabili non osservate, si rimanda a (Nodelman, 2007).
Definizione 3.5 (Dati Completi). (Nodelman, 2007) Dato un insieme di va-
riabili casuali X = (X1, X2, . . . , XN ), un insieme di dati D = (σ1, σ2, . . . , σh) si
dice completo se ogni σi è una traiettoria completamente osservata, ovvero se
per ogni punto nel tempo di ogni traiettoria si conosce la completa istanziazione
di tutte le variabili Xi.
Laurea Magistrale in Informatica 25
3.3. Apprendimento di una NHCTBN
3.3.1 Apprendimento dei parametri
Per quanto riguarda l’apprendimento dei parametri per una rete, data la strut-
tura Ge, con dati completi De, per l’epoca e, nella letteratura specializzata sono
disponibili due approcci:
• Approccio Maximum-Likelihood, si stimano i parametri in modo da mas-
simizzare la likelihood in Equazione 3.7.
• Approccio Bayesiano, si sceglie una distribuzione a priori per i parametri
e la si aggiorna in base ai dati.
3.3.1.1 Approccio Maximum-Likelihood
Teorema 3.1. (Nodelman et al. , 2002b) I parametri che massimizzano la
likelihood dell’Equazione 3.7 sono:
q̂x|ue =Me[x | u]
Te[x | u]
θ̂xx′|ue =Me[x, x
′ | u]
Me[x | u]
(3.8)
Questi parametri vengono chiamati Maximum Likelihood Estimation (MLE)
parameters.
Il parametro q̂x|ue si ricava eguagliando le medie: il tempo medio che una
variabile X rimane nello stato x, con configurazione dei genitori u, nell’epoca e
prima di una transizione è pari a Te[x|u]/Me[x|u]. La media della distribuzione
esponenziale di parametro qx|ue è 1/qx|ue . Si ha quindi:
1
qx|ue=
Te[x | u]
Me[x | u]
qx|ue =Me[x | u]
Te[x | u]
La probabilità che una variabile X transiti dallo stato x allo stato x′, quando i
genitori hanno configurazione dello stato u, nell’epoca e, è stimabile tramite il
rapporto tra il numero totale di transizioni da x a x′ (Me[x, x′|u]) e il numero
totale di transizioni in uscita dallo stato x (Me[x|u]). Si ha quindi:
θ̂xx′|ue =M [x, x′ | u]eM [x | u]e
.
Laurea Magistrale in Informatica 26
3.3. Apprendimento di una NHCTBN
3.3.1.2 Approccio Bayesiano
Per l’approccio Bayesiano, invece, è necessario definire una distribuzione a
priori per i parametri della rete. Al fine di avere un calcolo efficiente si è scelto
di usare una distribuzione a priori coniugata.
Per prima cosa si costruisce una distribuzione a priori adatta per un singolo
processo di Markov, la quale possiede due insiemi di parametri:
• una distribuzione esponenziale di parametri q, nel caso specifico si è scelta
la Distribuzione Gamma P (q) = Gamma(α, τ), dove
P (q) =(τ)α+1
Γ(α+ 1)qαe−qτ
• una distribuzione multinomiale di parametri θ, nel caso specifico si è scel-
ta la Distribuzione di Dirichlet P (θ) = Dir(αxx1 , . . . , αxxk) (Heckerman,
1996).
Osservazione. L’iperparametro1 αxx, chiamato dimensione equivalente del
campione, è costituito dalla somma dei conteggi immaginari αxx1 + . . .+αxxk ,
chiamati pseudo-conteggi (Steck, Harald and Jaakkola, 2002).
Assumendo che i due parametri siano indipendenti, ovvero che P (θe, qe) =
P (θe)P (qe), si ottengono le seguenti distribuzioni a posteriori:
P (θ|D) = Dir(αxx1 +M [x, x1], . . . , αxxk +M [x, xk])
P (q|D) = Gamma(αx +M [x], τx + T [x])
Si vuole ora estendere l’idea all’intera rete riferita all’epoca e. Si assume che
in una Bayesian Network (BN) (Heckerman, 1996) valgano la global parameter
independence:
P (qe,θe) =∏X∈X
P (qX|Pa(X)e ,θX|Pa(X)e)
e la local parameter independence:
P (qX|Ue,θX|Ue
) =
(∏x∈X
∏u∈Ue
P (qx|u)
)(∏x∈X
∏u∈Ue
P (θx|u)
).
1I parametri di una distribuzione a priori vengono chiamati iperparametri
Laurea Magistrale in Informatica 27
3.3. Apprendimento di una NHCTBN
Se le distribuzioni a priori scelte soddisfano le precedenti assunzioni, si ha
che anche le distribuzioni a posteriori le soddisfano (essendo coniugate), ed
è quindi possibile mantenere la distribuzione parametrica in forma chiusa, ed
aggiornarla con le statistiche sufficienti.
Data una distribuzione parametrica è possibile usarla per prevedere il pros-
simo evento, mediando la probabilità dell’evento su tutti i possibili valori dei
parametri. Questa previsione è equivalente all’uso dei valori attesi, che hanno
la stessa forma dei parametri MLE, ma tengono conto dei conteggi immaginari
degli iperparametri:
q̂x|ue =αx | ue +Me[x | u]
τx | ue + Te[x | u]
θ̂xx′|ue =αxx′|ue +Me[x, x
′ | u]
αx|ue +Me[x | u]
Osservazione. La scelta di questi parametri, teoricamente, è valida solo per
prevedere una transizione, dopo la quale, bisognerebbe aggiornare i parametri
di conseguenza. D’altra parte, in questi casi, è possibile approssimare il calcolo
esatto, usando questi parametri per prevedere una traiettoria intera.
3.3.2 Apprendimento della struttura
Per apprendimento della struttura si intende il processo mediante il quale, a
partire dai dati disponibili, si effettua una ricerca delle relazioni tra le variabili
a cui si riferiscono i dati.
Poichè le NHCTBN non hanno vincoli di aciclicità, l’apprendimento della
struttura è molto più semplice rispetto alle DBN, per le quali consiste nel ri-
solvere un problema di ottimizzazione NP-completo (Chickering, 1994). Si ha
quindi che l’apprendimento della struttura è la ricerca della miglior configura-
zione di genitori per un nodo. Tale ricerca, nel caso delle NHCTBN, la si può
effettuare nodo per nodo.
Per l’apprendimento della struttura si intende utilizzare, come per le BN,
l’approccio Search&Score, in cui definiremo una funzione di score per confron-
tare la bontà delle possibili strutture della rete e selezionare quella che meglio
si adatta ai dati.
Laurea Magistrale in Informatica 28
3.3. Apprendimento di una NHCTBN
3.3.2.1 Funzione di scoring
Come già detto, poichè una NHCTBN consiste in una sequenza di grafi orientati,
è necessario introdurre una funzione di scoring per il singolo grafo. Nella sot-
tosezione 3.3.3 si mostra come comporre gli score dei singoli grafi per ottenere
lo score dell’intera sequenza
In questa tesi si è deciso di utilizzare uno score di tipo Bayesiano, e poiché
il principio dell’approccio Bayesiano implica la definizione di una distribuzione
a priori ovunque ci sia incertezza, come in questo caso, si definisce, quindi, una
distribuzione a priori per la struttura nell’epoca e P (Ge) e una per i parametri
P (θGe |Ge). Applicando il teorema di Bayes si ha:
P (Ge | De) =P (De | Ge)P (Ge)
P (De)
con De si intende l’istanziazione delle variabili negli istanti di tempo contenuti
nell’epoca e.
Dato che il denominatore è solo un fattore di normalizzazione, esso non è
necessario per distinguere due strutture, per cui è possibile definire lo score
come (Koller & Friedman, 2009):
scoreB(Ge : De) = lnP (De | Ge) + lnP (Ge) (3.9)
Inoltre, per aumentare l’efficienza dell’algoritmo di ricerca, si assume che
le distribuzioni a priori scelte soddisfino le seguenti proprietà (Nodelman et al.
, 2002b):
• P (Ge) soddisfi la structure modularity, cioè
P (Ge) =N∏i=1
P (Pae(Xi) = PaGe(Xi))
• parameter modularity, cioè per qualsiasi coppia di strutture Ge e G′etali che PaGe(X) = PaG′e(X) con e fissato, vale P (qx,θX | Ge) =
P (qx,θX | G′e)
Combinando la parameter modularity con il fatto che i parametri sono
Laurea Magistrale in Informatica 29
3.3. Apprendimento di una NHCTBN
indipendenti, abbiamo:
P (qGe ,θGe , | Ge, ) =∏Xi
P (qXi|Uei | Pae(Xi) = PaGe , (Xi))P (θXi|Uei | Pae(Xi) = PaGe , (Xi))
Dato che P (Ge) non cresce con l’aumentare dei dati, la parte significativa
nell’Equazione 3.9 è lamarginal likelihood P (De|Ge). Questo termine incorpora
l’incertezza sui parametri integrando su tutti i loro possibili valori
P (De | Ge) =
∫qGe ,θGe
P (De | qGe ,θGe)P (qGe ,θGe | Ge) dqGe dθGe
La likelihood si può scomporre in un prodotto di likelihood:
P (De | qGe ,θGe) =∏Xi
LXi(qXi|uei : De)LXi(θXi|uei : De)
=
∏Xi
LXi(qXi|uei : De)
︸ ︷︷ ︸
L(q:De)
∏Xi
LXi(θXi|uei : De)
︸ ︷︷ ︸
L(θ:De)
Combinando questa decomposizione e la global parameter independence
abbiamo:
P (De | Ge) =
∫qGe ,θGe
L(qGe : De)L(θGe : De)P (θGe)P (qGe) dqGe dθGe
=
(∫qGe
L(qGe : De)P (qGe) dqGe
)(3.10)
×
(∫θGe
L(θGe : De)P (θGe) dθGe
)(3.11)
Usando la local parameter independence il termine (3.10) si può decomporre
Laurea Magistrale in Informatica 30
3.3. Apprendimento di una NHCTBN
nel seguente modo:
∏X∈X
∏ue
∏x
∫ ∞0
P (qx|ue)Lx(qx|ue : De) dqx|ue
=∏X∈X
∏ue
∏x
∫ ∞0
(τx|ue )αx|ue+1
Γ(αx|ue+1) (qx|ue)αx|uee−qx|ueτx|ue
×(qx|ue)Me[x|u]e−qx|ueTe[x|u] dqx|ue
=∏X∈X
∏ue
∏x
∫ ∞0
(τx|ue )αx|ue+1
Γ(αx|ue+1) (qx|ue)αx|ue+Me[x|u]
×e−qx|ue (τx|ue+Te[x|u])
dqx|ue=∏X∈X
∏ue
∏x
Γ(αx|ue +Me[x|u] + 1)(τx|ue)αx|ue+1
Γ(αx|ue + 1)(τx|ue + Te[x|u])αx|ue+Me[x|u]+1(3.12)
=∏X∈X
MargLq(X,PaGe(X) : De)
Poiché la distribuzione dei parametri θ è Dirichlet, l’analisi dell’Equazione 3.11
è analoga a quella delle BN, quindi:
∏X∈X
∏ue
∏x
Γ(αx|ue)
Γ(αx|ue +Me[x|u])×∏x′ 6=x
Γ(αxx′|ue +Me[x, x′|u])
Γ(αxx′|ue)(3.13)
=∏X∈X
MargLθ(X,PaGe(X) : De) (3.14)
Usando queste due scomposizioni, e assumendo la structure modularity, lo
score Bayesiano dell’Equazione 3.9 può essere ora scomposto come una somma
di family score denotati come FamScore(X,PaGe(X) : De), che assegna un
punteggio ai genitori di X (ovvero PaGe(X)), così da poter scegliere per ogni
nodo X ∈ X i genitori che massimizzano il family score
scoreB(Ge : De) =∑Xi∈X
FamScore(Xi,PaGe(Xi) : De)
=∑Xi∈X
lnP (Pae(X) = PaGe(Xi)) + lnMargLq(Xi,U i : De) + lnMargLθ(Xi,U i : De)
Si giunge, così, a definire lo score della struttura, in una singola epoca prefissata
e, come una somma di score locali, uno per ogni nodo X.
Laurea Magistrale in Informatica 31
3.3. Apprendimento di una NHCTBN
3.3.2.2 Ricerca della struttura
Passiamo ora alla ricerca della struttura Ge per la singola epoca e. Questo è un
problema di ottimizzazione, ed è stato formalizzato sotto il nome di K-Learn.
Il K-Learn consiste nella ricerca della struttura che massimizza lo score,
vincolando ogni nodo ad avere al massimo k genitori. Per le BN è un problema
NP-hard già con K uguale a 2 (Chickering, 1994). La motivazione è che le BN
sono soggette al vincolo di aciclicità, e quindi la determinazione dei genitori
ottimali di un nodo è condizionata dalla scelta effettuata per gli altri nodi. La
stessa complessità si ha anche sulle DBN se ammettiamo archi intra time slice.
Nel caso delle NHCTBN gli archi rappresentano l’effetto del valore corrente di
una variabile, sul prossimo valore di un’altra variabile. Quindi, nelle NHCTBN
non è presente il vincolo di aciclitià. Senza tale vincolo è possibile ottimizzare
la ricerca dei genitori effettuandola nodo per nodo, indipendentemente dagli
altri nodi.
Teorema 3.2. (Nodelman, 2007) Dato K, il problema K-Learn per una strut-
tura di una NHCTBN può essere risolto in tempo polinomiale rispetto al numero
di variabili N e alla dimensione dei dati D.
Si ha, quindi, che è possibile ricavare in tempo polinomiale una struttura
a partire dai dati D.
3.3.3 Apprendimento della sequenza
Per poter affrontare l’apprendimento dell’intera sequenza di strutture della
NHCTBN è necessario fornire un’altra funzione di scoring, ma questa volta, per
l’intera sequenza.
La funzione di scoring per la sequenza G = {G1,G2, . . . ,GE} (Robinson &
Hartemink, 2010) è definita come segue:
scoreB(G : D) =E∑e=1
scoreB(Ge : De)−E∑e=2
λc∆(Ge,Ge−1)− λeE (3.15)
dove λc∆(Ge,Ge−1) è il numero di cambi di archi dalla struttura per l’epoca
e − 1 alla struttura per l’epoca e, pesato per un certo parametro λc, e λeE è
il numero di epoche per un certo parametro λe.
Laurea Magistrale in Informatica 32
3.3. Apprendimento di una NHCTBN
Osservazione. Le strutture ottime localmente ad ogni epoca non è detto che
formino la sequenza ottima di strutture. Questo deriva dallo score dell’intera
sequenza che pesa, tramite λc, il numero di cambi di archi tra epoche contigue, e
tramite λe il numero di epoche totali. Si vuole infatti evitare sia che le strutture
cambino in maniera considerevole in due epoche contigue, sia la presenza di
un numero elevato di epoche.
Nell’apprendimento della sequenza di strutture particolare attenzione va
alla pesatura degli iperparametri αxx′|ue e τx|ue presenti nelle equazioni 3.12 e
3.13.
In questa tesi proponiamo quattro tipologie di pesatura, le prime due si
basano sullo score di tipo BDe (Murphy, 2012) e sono:
1. Pesatura basata sul numero di osservazioni presenti nell’epoca conside-
rata:
αxx′|ue = αxx′|ue ∗#Osservazioni_Epoca#Osservazioni_Totali
(3.16)
τx|ue = τx|ue ∗#Osservazioni_Epoca#Osservazioni_Totali
(3.17)
2. Pesatura basata sull’ampiezza dell’epoca considerata:
αxx′|ue = αxx′|ue ∗te − te−1
T(3.18)
τx|ue = τx|ue ∗te − te−1
T(3.19)
dove T è l’ampiezza temporale dell’intero dataset.
Le ultime due invece si basano sullo score di tipo BDeu (Murphy, 2012) e
sono:
1. Pesatura basata sul numero di osservazioni presenti nell’epoca conside-
rata:
αxx′|ue =αxx′|ueqi ∗ ri
∗ #Osservazioni_Epoca#Osservazioni_Totali
(3.20)
τx|ue =τx|ueqi ∗ ri
∗ #Osservazioni_Epoca#Osservazioni_Totali
(3.21)
Laurea Magistrale in Informatica 33
3.3. Apprendimento di una NHCTBN
2. Pesatura basata sull’ampiezza dell’epoca considerata:
αxx′|ue =αxx′|ueqi ∗ ri
∗ te − te−1
T(3.22)
τx|ue =τx|ueqi ∗ ri
∗ te − te−1
T(3.23)
dove T è l’ampiezza temporale dell’intero dataset mentre qi ed ri sono,
rispettivamente, il numero di stati congiunti dei genitori del nodo i, e il
numero di stati del nodo i.
La pesatura introdotta nella BDeu ha lo scopo di non favorire quei nodi che
hanno un elevato numero di stati o un elevato numero di genitori. L’introduzio-
ne invece della pesatura sull’ampiezza dell’epoca o sul numero di osservazioni
serve per non favorire lo score di epoche troppo corte o con poche osservazioni.
A questo punto è necessario affrontare un altro problema, quello delle
informazioni che si hanno sui dati a disposizione.
Poiché nell’apprendimento di una rete non omogenea è necessario sapere
quante transizioni2 ci sono ed il punto esatto in cui queste avvengono, e queste
due informazioni non sempre sono disponibili nei dati, si contemplano quindi
tre casi:
Caso A: informazione completa, si conosce sia il numero di transizioni che gli
istanti temporali in cui avvengono le transizioni.
Caso B: informazione parziale, si conosce il numero di transizioni ma non si
conoscono gli istanti temporali.
Caso C: nessuna informazione, non si conosce né il numero di transizioni né
gli istanti temporali.
Questi tre casi sono gli stessi visti nella trattazione delle NHDBN
3.3.4 Apprendimento della sequenza: Approccio SA
Il problema che si vuole affrontare è la mancanza di informazioni, Caso B
e Caso C, ovvero non sapere dove sono gli istanti di transizione da un epo-
ca all’altra o addirittura non sapere nemmeno quanti sono. La soluzione è2Istanti temporali in cui la rete Ge+1 sostituisce la rete Ge
Laurea Magistrale in Informatica 34
3.3. Apprendimento di una NHCTBN
un’approccio probabilistico che permette di ottenere queste informazioni in
modo tale da riportarsi al Caso A. Una volta che l’informazione è completa
l’apprendimento della sequenza si esegue in maniera esatta. Questo significa
che una volta individuate le informazioni mancanti è possibile ricostruire la
struttura ottima, a patto che le informazioni individuate siano corrette.
L’approccio probabilistico che si è scelto di utilizzare è basato sull’algoritmo
Simulated Annealing (SA) (Murphy, 2012).
Il primo passo, per poter comprendere l’utilizzo dell’algoritmo SA nel nostro
caso specifico, è fornire una definizione di stato.
Definizione 3.6 (Stato nell’algoritmo SA). Si definisce stato, nell’algoritmo
SA, la sequenza di istanti di transizione (da un’epoca all’altra) di una NHCTBN.
Adesso si può descrivere l’idea alla base di questo algoritmo mediante i
seguenti passaggi:
1. si parte da uno stato iniziale x, in cui gli istanti di transizioni sono
equidistanti;
2. ad ogni iterazione si propone un nuovo stato x’, generato a partire da x;
3. x’, a sua volta, ha una determinata probabilità di essere accettato (ac-
ceptance probability);
4. se si accetta x’, si salva, e successivamente si pone x = x’ e si riparte
dal punto 2;
5. altrimenti si rimane nello stato x e si riparte sempre dal punto 2.
Osservazione. Nel caso C, di totale mancanza di informazione, lo stato ini-
ziale consiste non solo in istanti di transizione equidistanti ma anche nell’e-
strazione di un numero di epoche iniziali di partenza.
Iterando questi punti, ed utilizzando adeguati operatori per generare nuovi
stati, si vuole scoprire la struttura reale del modello inerente al dataset che si
sta analizzando. Per farlo si ritorna l’NHCTBN ricostruita a partire dallo stato
più probabile.
Per ottenere la struttura con score massimo bisogna ancora specificare:
1. come è definita l’acceptance probability;
Laurea Magistrale in Informatica 35
3.3. Apprendimento di una NHCTBN
2. quali sono le operazioni necessarie per generare nuovi stati.
Il punto 2 verrà trattato nel dettaglio nelle successive sottosezioni, di se-
guito si descrive come è calcolata l’acceptance probability.
L’acceptance probability viene calcolata come l’esponenziale della dif-
ferenza tra, la probabilità del nuovo stato, e la probabilità dello stato attuale.
Se questo valore è ≥ 1, ovvero lo stato x’ ha una probabilità maggiore o uguale
a x, allora x’ viene accettato. Tuttavia se il nuovo stato ha una probabilità
minore del precedente si ha comunque una probabilità, determinata dalla dif-
ferenza precedente, di accettarlo ugualmente. Questo accorgimento serve per
evitare di rimanere bloccati in massimi locali.
In formule si può scrivere come:
α = exp(P (x′)− P (x)) (3.24)
Osservazione. Si fa notare che la probabilità degli stati si ottiene dallo score
della NHCTBN che individuano.
Osservazione. Il valore di accettazione α si può moltiplicare per un parametro
δacceptance ∈ (0, 1] al fine di rendere meno probabile l’accettazione di un nuovo
stato. Tale parametro viene inserito dall’utente.
Una miglioria consiste nell’introdurre una funzione di cooling. Questa
funzione restituisce un valore ∈ [0, 1] che decresce in funzione del tempo (nu-
mero dell’iterazione corrente). Tale valore viene moltiplicato per l’acceptance
probability (solo quando acceptance probability < 1) facendo si che più si
va avanti con le iterazioni più si rende difficile accettare uno stato con score
peggiore di quello attuale.
3.3.4.1 Informazione completa
Si entra ora nello specifico del caso A, in cui si è a conoscenza sia del numero
di transizioni che degli istanti temporali in cui tali transizioni avvengono.
In questa situazione si è a conoscenza dell’informazione completa necessaria
per l’apprendimento della NHCTBN. Non è quindi necessario eseguire l’algorit-
mo SA, tuttavia la si riporta in questa sezione in quanto è il caso base a cui si
ricollegano il caso B e il caso C
Laurea Magistrale in Informatica 36
3.3. Apprendimento di una NHCTBN
Avendo a disposizione tutte le informazioni l’approccio di risoluzione è
esatto e consiste nei seguenti punti:
1. calcolare gli score di tutte le possibili combinazioni di k-parent set (k
fissato), di tutti i nodi, in tutte le epoche;
2. scegliere per ogni nodo e per ogni epoca i k-parent set che massimizzano
lo score dell’intera sequenza, tenendo conto dello specifico valore di λccome visto nella sottosezione 3.3.3;
Il punto 2 si può ripetere per più valori di λc i quali si estraggono da una
distribuzione gamma. Questo porta a trovare diverse NHCTBN. Non è invece
necessario calcolare il λe, che sarà quindi impostato a 0, essendo a conoscenza
dell’informazione esatta sul numero di epoche.
Di seguito è riportato l’algoritmo completo in cui si può notare che:
• Riga 4-6: si cicla su tutte le epoche, sul numero massimo di genitori e su
tutti i nodi;
• Riga: 7: vengono create tutte le combinazioni di k-parentSet per un k
fissato;
• Riga: 8-9: si calcola lo score per un determinato parentSet U;
• Riga 14: si ritorna il parentSet con score massimo.
Laurea Magistrale in Informatica 37
3.3. Apprendimento di una NHCTBN
Algoritmo 2 Apprendimento sequenza NHCTBN - SA - Informazione completaRequire: Massimo numero di genitori K, insieme di traiettorie completamen-
te osservate D, istanti di transizione T , valore del lambda cambi λc, valoredel lambda epoche λe.
Ensure: Sequenza di strutture con il miglior score per i dati DEnumerateParents(Xi, k) è una funzione che enumera tutte le possibilicombinazioni di k genitori per il nodo Xi.CalculateScore(Xi, U,D, Tfirst, Tlast, λc) è una funzione che calcolalo score del nodo Xi con insieme dei genitori U dai dati D compresinell’intervallo da Tfirst a Tlast, per un λc prefissato.getBestParentSet(score[], λc, λe) è una funzione che dati in input gliscore, il valore del lambda cambi e dei lambda epoca, e ritorna il miglioriparent set globali con relativo score.
1: function LearnFullInformation(K,D, T, λc, λe)2: E ← Length[T ] + 13: bestParent[N,E]← ∅4: for e← 1 to E do5: for k ← 0 to K do6: for i← 1 to N do7: parentSet← EnumerateParent(Xi, k)8: for all U in parentSet do9: score[e].add( CalculateScore(Xi, U,D, T [e], T [e +
1], λc, λe))10: end for11: end for12: end for13: end for14: bestParentSet← getBestParentSet(score[], λc,λe)15: return bestParentSet16: end function
3.3.4.2 Informazione parziale
Si entra ora nello specifico del caso B, in cui si è a conoscenza solamente del
numero di transizioni, ma non degli istanti temporali in cui tali transizioni
avvengono. Si entra quindi nel vivo dell’algoritmo SA.
Si definisce di seguito l’operatore che, ad ogni iterazione dell’algoritmo,
ci propone un nuovo stato in cui spostarci, a partire da quello attuale. In
questo caso, in cui il numero di istanti di transizione è noto, può variare solo
la posizione dei suddetti. Sarà quindi necessario utilizzare un solo operatore
che si occupa dello shift degli istanti temporali di transizione.
Laurea Magistrale in Informatica 38
3.3. Apprendimento di una NHCTBN
Si propongono due tipologie di shift che l’utente può selezionare: omogeneo
e proporzionale.
Lo shift omogeneo funziona nel seguente modo:
1. si estrae un istante di transizione t da tutti gli istanti possibili, utilizzando
una distribuzione di probabilità uniforme;
2. si estrae un ulteriore valore u ≈ U [−1, 1];
3. si propone infine lo spostamento s = t+ δshift ∗ u.
Osservazione. Mentre il valore u definisce la direzione dello spostamento, il
parametro δshift definisce la grandezza dello spostamento.
Lo shift proporzionale funziona nel seguente modo:
1. si estrae un istante di transizione t da tutti gli istanti possibili, utilizzando
una distribuzione di probabilità uniforme, supponendo che t separi le
epoche (ta, t)(t, tb);
2. si estrae un ulteriore valore u ≈ U [−1, 1];
3. se u < 0 allora si propone lo spostamento s = t+ δshift ∗ u ∗ (t− ta)
4. altrimenti si propone lo spostamento s = t+ δshift ∗ u ∗ (tb − t)
Osservazione. Lo shift proporzionale permette di eseguire uno spostamento
che non è fisso, ma che appunto è proporzionale alla distanza dei tempi contigui
a t.
Osservazione. E’ inoltre possibile fornire una versione discreta degli operatori
di shift, che consiste nel ritornare non il tempo generato dall’operatore, ma
quello dell’osservazione più vicina (a tale tempo) presente nel dataset.
Per entrambe le versioni, al valore di δshift viene associato una funzione
di cooling, come per l’acceptance probability, al fine di diminuire la grandezza
dello spostamento proposto in proporzione al numero di iterazioni dell’algorit-
mo.
L’idea generale di funzionamento dell’algoritmo SA, descritta nella sotto-
sezione 3.3.4, si riferisce all’apprendimento di una sola sequenza di stati. Nel
caso B, invece, si estraggono più λc da una distribuzione gamma, come per il
Laurea Magistrale in Informatica 39
3.3. Apprendimento di una NHCTBN
caso A, e per ognuno di essi si fa partire una sequenza differente. Alla fine,
da tutti gli stati contenuti in ogni sequenza, si ritorna lo stato più probabile
con il modello NHCTBN che esso individua.
Non è invece necessario valutare il λe, che sarà impostato a 0, essendo noto
il numero di epoche.
Di seguito è riportato l’algoritmo completo in cui si può notare che:
• Riga 2-7: si estrae un numero pari ad N di valori λc e si fa partire una
nuova sequenza per ogni valore estratto;
• Riga 8: per ogni sequenza si effettua un numero pari ad IT di iterazioni;
• Riga 9-11: Si genera il nuovo stato, ricostruendone la struttura, e si
calcola l’acceptance probability;
• Riga 12-20: Si decide se accettare o meno il nuovo stato in accordo con
l’acceptance probability;
• Riga 25: Si ritorna la sequenza ricostruita da cui poi si andrà ad estrarre
la struttura con score massimo;
Laurea Magistrale in Informatica 40
3.3. Apprendimento di una NHCTBN
Algoritmo 3 Apprendimento sequenza NHCTBN - SA - Informazione parzialeRequire: Massimo numero di genitori K, insieme di traiettorie completamen-
te osservate D, numero di istanti di transizione M , numero di iterazioniIT , tipo di shift ShiftType, parametro per lo shift δshift, numero di se-quenze N, numero di λc da estrarre L, iperparametri della distribuzionegamma sul numero di cambio di archi Kc, θc, parametro da moltiplicareper l’acceptance probability δacceptance;
Ensure: Sequences: N sequenze di lunghezza ITShiftTime(T, ShiftType, δshift) è l’operazione di shift, omogenea oproporzionale a seconda del ShiftType
1: function LearnPartialInformation(K,D,M, IT, ShiftType, δshift, N, L,Kc, θc, δacceptance)2: V ettoreλc[]← estrai L volte λc ≈ Γ(Kc, θc)3: for n← 1 to N do4: λc ← estrai da V ettoreλc[]5: T []← M istanti di transizione equidistanti6: x← LearnFullInformation(K,D, T, λc, λe = 0)7: Sequences[n].add(x)8: for t← 1 to IT do9: T ← shiftTime(T, ShiftType, δshift)
10: x′ ← LearnFullInformation(K,D, T, λc, λe = 0)11: α← exp(P (x′)− P (x))12: if α ≥ 1 then13: Sequences[n].add(x′)14: else15: u ≈ U [0, 1]16: α← α ∗ δacceptance17: if u < α then18: Sequences[n].add(x′)19: else20: Sequences[n].add(x)21: end if22: end if23: end for24: end for25: return Sequences[]26: end function
3.3.4.3 Nessuna informazione
Si entra ora nello specifico del caso C in cui non si è a conoscenza né del numero
di transizioni, né degli istanti temporali in cui tali transizioni avvengono.
In questo caso, oltre l’operatore di shift visto nel caso B, è necessario ag-
giungere due ulteriori operatori: l’operatore di split e quello di merge. Questi,
Laurea Magistrale in Informatica 41
3.3. Apprendimento di una NHCTBN
come il nome stesso suggerisce, permettono di dividere un epoca o di unirne
due assieme, al fine di poter generare nuovi stati con un diverso numero di
epoche.
Come per lo shift, anche per l’operazione split e l’operazione di merge, si
propongono due versioni: una omogenea ed una proporzionale.
Lo split omogeneo funziona nel seguente modo:
1. si estrae un istante di transizione ti utilizzando una distribuzione di
probabilità uniforme;
2. si divide a metà l’epoca individuata dagli istanti di transizione ti−1, t.
Lo split proporzionale invece funziona nel seguente modo:
1. si considera l’ampiezza di ogni epoca i come ampi = ti − ti−1;
2. si seleziona l’epoca i da sottoporre ad operazione di split estraendo un
numero casuale con probabilità proporzionale ad amp, ovvero si estrae
dalla seguente distribuzione multinomiale: Mul[amp1
T , .., ampMT]. Dove
M è il numero totale di epoche e T la somma dell’ampiezza di tutte le
epoche.
Il merge omogeneo funziona nel seguente modo:
1. si sceglie a caso un tempo di transizione t;
2. si uniscono assieme le due epoche che vengono separate da t, ovvero:
(ta, t)(t, tb)→ (ta, tb)
Il merge proporzionale invece funziona nel seguente modo:
1. per ogni coppia di epoche contigue (ta, t), (t, tb) si selezionano le due
epoche che sono collegate dal tempo t che minimizza lo sbilanciamento
mint
(t−tatb−t ,
tb−tt−ta
)Osservazione. Anche per gli operatori di split e di merge è possibile fornire
una versione discreta in maniera analoga allo split.
Il funzionamento di questo approccio è simile al caso B. La differenza
principale è nella possibilità di scegliere tra tre diversi operatori per generare
un nuovo stato. Infatti, ad ogni iterazione, si sceglie, mediante distribuzione
Laurea Magistrale in Informatica 42
3.3. Apprendimento di una NHCTBN
di probabilità uniforme, quale operatore applicare. Una volta però ricreate le
sequenze di stati, come per il caso B si ritorna l’NHCTBN costruita a partire
dallo stato più probabile individuato.
Un’ ulteriore differenza sta nell’introduzione del λe relativo al numero di
epoche. Anche questo verrà estratto, come per il λc, da una distribuzione
gamma.
Di seguito è riportato l’algoritmo completo in cui si può notare che:
• Riga 2-9: si estraggono i valori di λc e λe e si fa partire una sequenza
con i valori estratti;
• Riga 10: per ogni sequenza si effettua un numero pari ad IT di iterazioni;
• Riga 11-13: Si genera il nuovo stato, ricostruendone la struttura, e si
calcola l’acceptance probability;
• Riga 14-22: Si decide se accettare o meno il nuovo stato in accordo con
l’acceptance probability;
• Riga 28: Si ritorna la sequenza ricostruita da cui poi si andrà ad estrarre
la struttura con score massimo.
Laurea Magistrale in Informatica 43
3.3. Apprendimento di una NHCTBN
Algoritmo 4 Apprendimento sequenza NHCTBN - SA - Nessuna informazioneRequire: Massimo numero di genitori K, insieme di traiettorie completamen-
te osservate D, numero massimo di epocheMmax, numero di iterazioni IT ,parametro per lo shift δshift, tipo di shift ShiftType, tipo di split Split-Type, tipo di merge MergeType, numero di λe da estrarre NE, numerodi λc da estrarre L, numero di sequenze da far partire con lo stesso λcNC, iperparametri della distribuzione gamma sul numero di cambio di ar-chi Kc, θc, iperparametri della distribuzione gamma sul numero di epocheKa, θa, parametro da moltiplicare per l’acceptance probability δacceptance;
Ensure: Sequences[][] matrice NCxNE di sequenze di lunghezza ITSAOperation(T, δshift, ShiftType,MergeType, SplitType,Mmax) è lafunzione che si occupa di scegliere e applicare una delle tre operazioniper proporre un nuovo stato
1: function LearnNoInformation(K,D,M)2: V ettoreλc[]← estrai L volte λc ≈ Γ(Kc, θc)3: for ne← 1 to NE do4: λe ≈ Γ(Ka, θa)5: for nc← 1 to NC do6: λc ← estrai da V ettoreλc[]7: T []← M istanti di transizione equidistanti8: x← LearnFullInformation(K,D, T, λc, λe)9: Sequences[ne][nc].add(x)
10: for t← 1 to IT do11: T ← SAOperation(T, δshift, ShiftType,MergeType, SplitType,Mmax)12: x′ ← LearnFullInformation(K,D, T, λc, λe)13: α← exp(P (x′)− P (x))14: if α ≥ 1 then15: Sequences[ne][nc].add(x′)16: else17: u ≈ U [0, 1]18: α← α ∗ δacceptance19: if u < α then20: Sequences[ne][nc].add(x′)21: else22: Sequences[ne][nc].add(x)23: end if24: end if25: end for26: end for27: end for28: return Sequences[][]29: end function
Laurea Magistrale in Informatica 44
Capitolo 4
MapReduce
In questo capitolo si introduce il framework MapReduce, in particolare si mo-
stra il funzionamento del paradigma, l’architettura e la relativa implementazio-
ne in Java, Apache Hadoop. Infine, si presenta l’algoritmo di apprendimento
delle NHCTBN, descritte nel precedente capitolo, sfruttando questo framework.
4.1 Introduzione
MapReduce è un paradigma di programmazione che consente di processare
grandi quantità di dati. Questo paradigma nasce nel 2004 (Dean & Ghemawat,
2004), il nome deriva dalle funzioni map e reduce dei linguaggi di programma-
zione funzionale. I programmi scritti per questo framework vengono eseguiti
su grandi cluster di macchine, le quali utilizzano un file system distribuito ad
hoc, al fine di essere parallelizzati. Il sistema è in grado di partizionare i dati di
input per sfruttare la parallelizzazione, pianificare l’esecuzione dei programmi
e gestire la comunicazione tra le macchine coinvolte.
Il paradigma si basa sull’implementazione da parte dell’utente di due funzioni
fondamentali, che danno il nome al paradigma stesso:
Funzione map: si occupa di leggere una serie di record dal file di input, li
elabora in base alle finalità dell’applicazione ed emette in output una
lista di coppie 〈chiave, valore〉 intermedie.
Funzione reduce: si occupa di ricevere in input tutti i valori che condividono
la stessa chiave intermedia, li elabora in base alle finalità dell’applicazione
45
4.1. Introduzione
ed emette una coppia 〈chiave, valore〉 finale, la quale viene scritta in un
file di output.
Si ha che una libreria MapReduce si occupa di:
• dividere i file di input in blocchi;
• distribuire i blocchi tra le macchine;
• richiamare uno o più mapper per ogni blocco;
• raggruppare tutti i valori, emessi dai mapper, che hanno la stessa chiave;
• richiamare un reducer per ogni chiave.
4.1.1 Funzionamento
Si vuole spiegare il funzionamento di un programma scritto nel paradigma di
programmazione MapReduce.
Figura 4.1: Panoramica dell’esecuzione di un programma MapReduce. Immaginetratta da (Dean & Ghemawat, 2004, p. 3)
Il programma dell’utente chiama la funzione MapReduce, a questo punto
vengono eseguite le seguenti azioni (i numeri corrispondono alle etichette della
Figura 4.1):
Laurea Magistrale in Informatica 46
4.1. Introduzione
1. Il file di input viene diviso in M blocchi. L’utente può impostarne la
dimensione.
2. Il master, una macchina speciale del cluster, si occupa di assegnare il
compito di mapper o reducer alle macchine che sono in quel momento
libere. Deve assegnare M compiti mapper e R compiti reducer.
3. Una macchina mapper legge il contenuto del blocco a lei assegnato, ne
estrae tutte le coppie 〈chiave, valore〉 e le passa alla funzione map. Le
coppie 〈chiave, valore〉 intermedie emesse dalla funzione map vengono
poi memorizzate nel buffer.
4. Periodicamente, le coppie presenti nel buffer vengono scritte su disco,
partizionate in R blocchi. Il master riceve la locazione di questi blocchi
e si occupa di inoltrare queste locazioni alle macchine reducer.
5. Una macchina reducer si occupa di leggere il blocco con le coppie 〈chiave, valore〉intermedie e di unire tutti i valori che condividono la stessa chiave.
6. Quando tutti i mapper hanno terminato l’esecuzione e tutti i blocchi
intermedi elaborati, la macchina reducer passa, per ogni chiave univoca,
la lista di valori associati alla funzione reduce. Il risultato della funzione
reduce viene infine appeso ad un file di output finale.
Al termine dell’esecuzione, si ha che l’output è diviso in R file, uno per
ogni reducer, ed è possibile unire i file in un unico file, oppure fornire questi
file come ad un altro programma MapReduce.
Esiste la possibilità di utilizzare una terza funzione, chiamata combiner,
che viene eseguita da ogni macchina mapper, e si occupa di eseguire un’aggre-
gazione parziale sulle coppie 〈chiave, valore〉 intermedie emesse dalla funzione
map prima di essere salvate e distribuite.
4.1.2 Esempio Word-Count
Si vuole fornire un esempio classico di problema risolvibile facendo uso dell’ap-
proccio MapReduce. L’esempio che si intende analizzare è il Word-Count.
Esempio (Word-Count). Data una collezione di file testuali, si vuole contare
il numero di occorrenze di ogni parola presente nell’intera collezione di file di
testi. Si utilizza il seguente pseudo codice per risolvere il problema in analisi.
Laurea Magistrale in Informatica 47
4.2. Apache Hadoop
Algoritmo 5 Word-Count in MapReducekey: stringa che rappresenta il nome del filevalue: contenuto del file
1: function map(key, value)2: for all word w in value do3: emit(w, 1)4: end for5: end function
key: stringa che rappresenta la parolavalue: iterator che contiene la lista dei conteggi
6: function reduce(key, values)7: sum← 08: for all v in value do9: sum← sum+ v
10: end for11: emit(key, sum)12: end function
La funzione MAP emette, per ogni parola, una coppia 〈chiave, valore〉 in cui
la chiave è la parola e il valore è il numero di occorrenze, ovvero 1. La funzione
REDUCE somma tutti i conteggi emessi per una particolare parola.
4.2 Apache Hadoop
Apache Hadoop è un’implementazione open source scritta in Java del para-
digma di programmazione MapReduce che include anche il file system distri-
buito associato: Hadoop Distributed File System (HDFS), anche se è possibile
utilizzare qualsiasi altro file system distribuito1.
Hadoop è stato creato da Doug Cutting e Mike Cafarella nel 2005. Ini-
zialmente sviluppato come sistema di supporto ad Apache Nutch2, si è poi
separato da esso per formare un progetto indipendente chiamato Hadoop, sup-
portato da Yahoo! che ha messo a disposizione un team dedicato e le risorse
necessarie (un cluster di 200 nodi nel 2006, fino a raggiungere 17 cluster e un
totale di 24000 nodi nel 2009).
Tra i tanti utilizzatori di Hadoop figurano:1Ad esempio: Amazon S3 e MapR2Apache Nutch è un progetto finalizzato alla creazione di un motore di ricerca open source
basato sulla piattaforma Lucene
Laurea Magistrale in Informatica 48
4.2. Apache Hadoop
• Facebook: 1100 nodi, 8800 processori e 12 PB di storage.
• eBay: 532 nodi, 4300 processori e 5,3 PB di storage.
• Spotify: 690 nodi, 8300 processori, 38TB di memoria RAM, e 28PB di
storage.
I dati sono tratti da http://wiki.apache.org/hadoop/PoweredBy.
In Hadoop si ha che una macchina è designata come master, mentre le altre
macchine vengono definite slave. Il master può essere contemporaneamente
anche slave, ma in un cluster di più macchine questa soluzione è sconsigliabile
per evitare di sovraccaricare di lavoro il nodo master.
HDFS utilizza 2 daemon3 per gestire i dati:
• NameNode: in esecuzione sulla macchina master e si occupa di gestire
lo spazio dei nomi del file system, l’accesso ai dati, e le operazioni di
apertura, chiusura, rinomina dei file e delle cartelle.
• DataNode: in esecuzione su ogni macchina slave e si occupa di gestire
i file che risiedono sulla macchina su cui è eseguito. Si occupa anche
di servire richieste di lettura e scrittura dei file e di creare ed eliminare
blocchi su richiesta del NameNode.
Il servizio MapReduce di Hadoop si serve a sua volta di 2 daemon:
• JobTracker: in esecuzione sulla macchina master, si occupa di delegare
le operazioni di map e reduce ai vari slave, cercando, quando possibile, di
assegnare l’operazione alla macchina che ospita i dati di cui l’operazione
necessita.
• TaskTracker: in esecuzione su ogni macchina slave, accetta le operazioni
che le vengono assegnate dal JobTracker e crea un processo separato
per eseguirle. Ogni TaskTracker è configurato con una serie di slot, che
rappresentano il numero di operazioni che può accettare.3Un daemon è un processo eseguito in background senza essere sotto il controllo diretto
dell’utente.
Laurea Magistrale in Informatica 49
4.3. Apprendimento NHCTBN in MapReduce
4.3 Apprendimento NHCTBN in MapReduce
In questa sezione si presenta l’algoritmo di apprendimento di una NHCTBN
(struttura e parametri) mediante l’utilizzo del paradigma di programmazione
MapReduce.
L’algoritmo implementato per l’apprendimento strutturale e parametrico
si basa sulle seguenti idee:
• Si istanzia un job MapReduce per ogni k con 0 ≤ k ≤ K, con K il
numero massimo di genitori per ogni nodo.
• La funzione map si occupa di calcolare per ogni nodo Xi le possibili
combinazioni di k genitori. Successivamente calcola, per ogni nodo, per
ogni possibile combinazione di genitori, e per ogni epoca e le transizioni di
stato e il tempo che rimane in ogni stato (ovvero le statistiche sufficienti).
• Si utilizza la seguente coppia 〈chiave, valore〉:
– La chiave è una tripla (Xi, U, e).
– Il valore è un array associativo nella forma < (u, (xi, xj), e), v >,
dove u rappresenta lo stato dei genitori ed e rappresenta l’epoca; v
rappresenta M [xi, xj | u] se xi 6= xj , in caso contrario rappresenta
T [xi | u].
• La funzione reduce riceve tutte le statistiche sufficienti di un particolare
nodo Xi, di un particolare set di genitori U e di una particolare epoca e,
le aggrega e le utilizza per calcolare lo score e la CIM.
Di seguito si riporta la funzione map in cui si può notare che:
• Righe 2-4: Si itera su tutte le traiettorie, su tutte le epoche e su tutti i
nodi;
• Righe 5-6: Si itera su tutti i parentSet del singolo nodo;
• Righe 7-12: Si generano tutte le coppie chiavi, che non sono altro che le
possibili combinazioni di genitori;
• Righe 13-17: Si effettuano i conteggi per ognuna delle chiavi;
• Riga 22: Si emette la coppia chiave valore.
Laurea Magistrale in Informatica 50
4.3. Apprendimento NHCTBN in MapReduce
Algoritmo 6 Apprendimento NHCTBN MapReduce: Funzione MapRequire: Massimo numero di genitori K, insieme di traiettorie completamen-
te osservate (X1,X2, . . . ,XJ), numero di epoche EEnsure: Insieme di coppie 〈key, value〉1: function NHCTBNmap(k, (X1,X2, . . . ,XJ))2: for j ← 1 to J do3: for e← 1 to E do4: for i← 1 to N do5: parentSet← enumerateParent(Xi, k)6: for all U in parentSet do7: key ← Text(〈Xn, U, e〉)8: value← new AssociativeArray()9: keyPar ← “ ”
10: for all Xw in U do11: keyPar ← keyPar + xj−1
w + “, ”12: end for13: v ← 〈(keyPar, (xj−1
n , xj−1n ), e), tj − tj−1〉
14: value← merge(value, v)15: if xjn 6= xj−1
n then16: v ← 〈(keyPar, (xj−1
n , xjn), e), 1〉17: value← merge(value, v)18: end if19: end for20: end for21: end for22: emit(〈key, value〉)23: end for24: end function
Laurea Magistrale in Informatica 51
4.3. Apprendimento NHCTBN in MapReduce
Di seguito si riporta la funzione reduce in cui si può notare che:
• Righe 2-5: Si itera su tutte le coppie chiave-valore;
• Righe 6-7: Si calcola la statistica sufficiente sul tempo di permanenza;
• Righe 8-10: Si calcola la statistica sufficiente sul cambio di tasto;
• Righe16-17: si itera su ogni configurazione di genitori;
• Righe 18-21: Se xi = xj si calcola la componente dello score margLq;
• Righe 22-25: Se xi è diversa da xj si calcola la componente dello score
margLo;
• Riga 26: si aggiorna il valore delle CIM;
• Riga 29: Si calcola il valore finale dello score;
• Riga 30: Si emette la terna chiave-score-CIM.
Laurea Magistrale in Informatica 52
4.3. Apprendimento NHCTBN in MapReduce
Algoritmo 7 Apprendimento NHCTBN MapReduce: Funzione ReduceRequire: Insieme di coppie 〈key, value〉, valori degli iperparametri alphaxx
e tauEnsure: Insieme di coppie 〈key, (score,CIM)〉1: function NHCTBNreduce(〈key, value〉, alphaxx, tau)2: (Xi, U, e)← key3: alpha← alphaxx ∗ (Card(Xi))4: for all v in value do5: (u, (xi, xj), e)← getKey(v)6: if xi = xj then7: T [xi | u]e ← T [xi | u]e+ getValue(v)8: else9: M [xi, xj | u]e ←M [xi, xj | u]e+ getValue(v)
10: M [xi | u]e ←M [xi | u]e+ getValue(v)11: end if12: end for13: CIM ← new AssociativeArray()14: margLo← 015: margLq ← 016: for all u do17: for all (xi, xj) do18: if xi = xj then19: q(xi|ue) = alpha+M [xi | u]e
tau+T [xi | u]e
20: margLq ← ln Γ(alpha+M [xi|u]e+1)+(alpha+1) ln(tau)−ln Γ(alpha+ 1)− (alpha+M [xi|u]e + 1) ln(tau+ T [xi|u]e)
21: margLo← ln Γ(alpha)− ln Γ(alpha+M [xi|u]e)22: else23: θ(xi, xj |ue) =
alphaxx+M [xi,xj | u]ealpha+M [xi | u]e
24: margLo← ln Γ(alphaxx+M [xi, xj |u]e)− ln Γ(alphaxx)25: end if26: CIM ← update(CIM, q(xi|ue), θ(xi, xj |ue))27: end for28: end for29: score← margLo+margLq30: emit(〈key, (score, CIM)〉)31: end function
Laurea Magistrale in Informatica 53
Capitolo 5
Esperimenti
5.1 Dataset sintetici
In questa prima sezione si descrivono gli esperimenti, in tutti e tre i casi, su
13 Dataset sintetici.
Nel caso A si mostra il paragone tra l’apprendimento di modelli omogenei
e modelli non omogenei. Per valutare la qualità dei risultati è stata riportata
la rappresentazione grafica del modello appreso.
Nel caso B e nel caso caso C, si mostra l’apprendimento della struttura
con varie tipologie di parametri di input. Per valutare la qualità dei risultati
sono state riportare le seguenti informazioni:
• Epoche: numero di epoche ritrovate e numero di epoche reali;
• Recall: percentuale di archi reali ritrovati;
• Precision: rapporto tra archi reali ritrovati e totale di archi ritrovati;
• Dist. Tempi: distanza totale tra i tempi di transizione ritrovati e quelli
reali;
• %Dist. Tempi: La stessa misura di sopra ma in percentuale.
Le informazioni inerenti ai Dataset sono mostrate direttamente nel caso A,
in quanto l’apprendimento dei modelli omogenei ritorna la struttura corretta.
54
5.1. Dataset sintetici
5.1.1 Descrizione esperimenti caso A: Confronto modelli omo-genei e modelli non omogenei
Il caso A consiste nell’essere a conoscenza sia del numero di epoche, sia di
dove esse siano. Nei test svolti in questo caso si vuole mostrare la differenza
tra apprendere i modelli omogenei, ovvero le CTBN, e apprendere modelli non
omogenei, ovvero le NHCTBN.
Sia per apprendere i modelli omogenei, che quelli non omogenei, si è utiliz-
zato lo score BDeu, pesato sull’ampiezza della singola epoca. Per la costruzio-
ne dei modelli omogenei, inoltre, si è settata una sola, grande, epoca. Questa
epoca, infatti, conterrà tutte le osservazioni del Dataset.
Come parametri si è fissato α = 1 e τ = 10 sia per i modelli omogenei
che non omogenei. Nel caso dei modelli non omogenei, la struttura ottenuta,
è quella esatta.
5.1.2 Descrizione esperimenti caso B
Il caso B consiste nell’essere a conoscenza del numero di epoche ma non di dove
inizino e terminino. Per valutare al meglio questo caso si è scelto di utilizzare
diverse configurazioni per i parametri in ingresso, rappresentate nella tabella
sottostante:
Parametro Valori Assunti Descrizioneλc {1,2,6,8,10} Parametro sul numero di cambio di archi tra epocheαxx′ {1} Iperparametro dello score inerente ai cambi di statoτ {0.1,10} Iperparametro dello score inerente ai tempi di permanenza
Tipo score {BDe, BDeu} Tipologia di score utilizzatoPesatura score {Amp., #Occ} Modalità di pesatura degli iperparametri
Tabella 5.1: Configurazioni di parametri per esperimenti caso B
5.1.3 Descrizione esperimenti caso C
Il caso C consiste nel non avere nessuna informazione riguardo alla posizione ed
il numero di epoche. Per valutare al meglio questo caso si è scelto di utilizzare
diverse configurazioni per i parametri in ingresso, rappresentate nella tabella
sottostante:
Laurea Magistrale in Informatica 55
5.1. Dataset sintetici
Parametro Valori Assunti Descrizioneλc {1,2,6,8,10} Parametro sul numero di cambio di archi tra epocheλe {1,5,10,15,25} Parametro sul numero di epoche considerateαxx′ {1} Iperparametro dello score inerente ai cambi di statoτ {0.1,10} Iperparametro dello score inerente ai tempi di permanenza
Tipo score {BDe, BDeu} Tipologia di score utilizzato
Tabella 5.2: Configurazioni di parametri per esperimenti caso C
5.1.4 Analisi dei risultati
I test del caso A mostrano come i modelli non omogenei ritornano strutture
più accurate rispetto i modelli omogenei.
A titolo esemplificativo si considera il modello omogeneo ottenuto sul Data-
set1, visibile in Figura A.1. Si nota che questo modello riporta come genitore
del nodo X, il nodo 1, per tutto l’intervallo di tempo tempo [0.0, 10.0]. Se
invece si considera il modello non omogeneo, visibile in Figura A.2, si nota che
il nodo 1 è genitore di X solo fino al tempo 5.91, successivamente la struttura
cambia per due volte.
Il medesimo comportamento si è riscontrato anche sugli altri Dataset sinte-
tici, mettendo in evidenza l’importanza di imparare modelli non omogenei, che
permettono alla struttura di evolvere nel tempo, anziché ritornare un singolo
modello medio.
Nei test del caso B un primo risultato importante si ha sul valore di preci-
sion che è sempre al 100%. Questo significa che gli archi che vengono ritrovati
sono tutti veri positivi.
Per quanto riguarda la recall si è ottenuto il 100%, per tutte le configura-
zioni di parametri, nei Dataset6, Dataset7, Dataset8, Dataset9, Dataset10 e
Dataset13. Per la maggior parte delle configurazioni di parametri si è ottenuto
il 100% sui Dataset2, Dataset3, Dataset4, Dataset5 e Dataset12. Infine sui
Dataset1 e Dataset11 non si è mai ottenuto il 100% di recall.
Si fa notare che valori di precision e recall entrambi al 100% significano
ritrovare la struttura corretta, e questo risultato si è ottenuto nella maggior
parte dei test.
Per quanto riguarda la distanza dei tempi di transizione ottenuti, rispet-
to quelli reali, l’errore in percentuale è molto basso, infatti non si raggiunge
nemmeno il 3%.
Laurea Magistrale in Informatica 56
5.1. Dataset sintetici
Ci sono dei casi in cui non si mostrano i valori di precision e recall e si
mostra il valore N/A, questi sono i casi in cui non viene ritrovato il numero
corretto di epoche. E’ infatti possibile trovare un numero minore di epoche
anche nel caso B in quanto epoche contigue con il medesimo ParentSet vengono
unite assieme.
L’utilizzo di score Bayesian Dirichlet Equivalent (BDe) e l’utilizzo di score
Bayesian Dirichlet Equivalent Uniform (BDeu) hanno dato risultati qualitati-
vamente molto simili.
Nei test del caso C si è ottenuto, per tutte le configurazioni di valori, un
valore del 100% di precision, meno quelle in cui non è stato trovato il numero
corretto di epoche (per le quali si è riportato un valore di tipo N/A).
Per quanto riguarda la recall si è ottenuto un valore del 100% per tutte le
configurazioni di parametri solo nei Dataset8 e Dataset13. Per la maggior parte
delle configurazioni di parametri si è ottenuto recall del 100% sui Dataset3,
Dataset4, Dataset5, Dataset6, Dataset7, Dataset9, Dataset10 e Dataset12.
Solo per alcune configurazioni di parametri si è riuscito ad ottenere una recall
del 100% sui Dataset1 e Dataset2, mentre non si è mai ottenuta una recall dell
100% sul Dataset11.
Si fa ancora notare che i valori di recall e precision vengono calcolati solo
quando il numero di epoche ritrovate è esatto, questo significa che avere un
recall al 100% significa ritrovare anche il numero esatto di epoche.
Rispetto al caso B è possibile notare che il comportamento è molto me-
no stabile al variare dei parametri di ingresso, questo è dovuto alla maggior
complessità data dal trovare il numero corretto di epoche. Tuttavia per alcune
configurazioni di parametri si è riuscito ad ottenere una recall del 100% sul
Dataset1, mentre nel caso B questo non è accaduto per nessuna configurazione
di parametri.
Per quanto riguarda la distanza dei tempi di transizione si può notare anche
qui un errore molto basso, sebbene leggermente superiore a quello ottenuto nel
caso B.
Nei test invece si nota come l’utilizzo dello score BDe in alcuni casi ritorna
risultati migliori rispetto lo score BDeu. Ad esempio si prendano in considera-
zione i risultati del Dataset4, presenti nelle tabelle Tabella C.13, Tabella C.14,
Tabella C.15 e Tabella C.16. Si può notare che l’utilizzo dello score BDeu gene-
ra dei valori di tipo N/A, cosa che invece non accade con l’utilizzo dello score
Laurea Magistrale in Informatica 57
5.2. Dataset SongBird
BDe.
In appendice sono riportati i risultati di tutti i test eseguiti.
5.1.5 Analisi dei tempi di esecuzione MapReduce
Nel seguito si analizzano i tempi di esecuzione dell’implementazione MapRe-
duce. Si testano sia il caso B che il caso C al variare del numero dei nodi del
cluster su cui si eseguono i test.
Il Dataset utilizzato per questi test è il più pesante tra i Dataset sintetici,
ovvero il Dataset9.
Nella tabella in seguito si riportano, oltre ai tempi di esecuzione, anche lo
speedup rispetto al cluster con un solo nodo. Lo speedup è stato calcolato nel
seguente modo:
Sp =T1
Tp
Dove p è il numero di nodi, T1 è il tempo di esecuzione sul cluster da 1 nodo
e Tp è il tempo di esecuzione sul cluster con p nodi.
Nodi Cluster Caso Secondi SpeedUp1 b 75794 N/A1 c 80509 N/A2 b 62928 1.202 c 63237 1.273 b 54587 1.393 c 55005 1.464 b 55271 1.374 c 55264 1.465 b 54997 1.385 c 55135 1.46
Tabella 5.3: Tempi di esecuzione implementazione MapReduce su Dataset9
I risultati di questi test mostrano che aumentando fino a 3 nodi i tempi di
esecuzione vanno via via migliorando. L’aumento invece a 4 e a 5 nodi, invece,
riporta dei tempi di esecuzione simili all’utilizzo di soli 3 nodi.
5.2 Dataset SongBird
Ulteriori esperimenti sono stati condotti sul dataset SongBird, che rappresenta
il flusso di informazioni passanti nel cervello dei SongBird.
Laurea Magistrale in Informatica 58
5.2. Dataset SongBird
Il dataset integrale consiste di:
• 6 uccelli femmina zebra finches;
• 8 microelettrodi, per ogni uccello, per un totale di 48;
• misurazioni effettuate a diverse amplificazioni di stimoli sonori (4 diffe-
renti stimoli), in diversi istanti temporali;
• le rmisurazioni sono state fatte con una granularità di 5ms;
• gli esperimenti sono stati eseguiti su 4 diversi giorni andando a formare
16 diversi Network (4 stimoli sonori per 4 diversi giorni).
Al fine del nostro esperimento sono stati valutati solo due diversi Network:
• Network1: Uccello Red648, giorno 1, con stimolo sonoro bl280song;
• Network2: Uccello Red648, giorno 1, con stimolo sonoro whitenoise;
In entrambi i casi i si è eseguita una discretizzazione a 4 stati.
5.2.1 Descrizione degli esperimenti
Lo scopo di questi esperimenti è valutare il comportamento delle NHCTBN su
dataset reale, in modo da poter effettuare delle comparazioni con i risultati
presenti in letteratura.
I test sono stati eseguiti sul caso B e sul caso C con le seguenti configu-
razioni di parametri:
Parametro Valori Assunti Descrizioneλc {5} Parametro sul numero di cambio di archi tra epocheλe {25} Parametro sul numero di epoche considerateαxx′ {0.1, 1} Iperparametro dello score inerente ai cambi di statoτ {120, 135} Iperparametro dello score inerente ai tempi di permanenza
Tipo score {BDeu} Tipologia di score utilizzatoPesatura score {#Occ} Modalità di pesatura degli iperparametri
Tabella 5.4: Configurazioni di parametri per esperimenti caso B e C su datasetSongBird
Nelle seguenti sottosezioni si riportano solo i risultati che hanno dato esito
migliore.
Laurea Magistrale in Informatica 59
5.2. Dataset SongBird
5.2.2 Risultati Netork1 - Caso B
Di seguito si riportano i risultati riguardante il Network1 del dataset SongBird
nel caso B:
Figura 5.1: SongBird Network1- Caso B - τ = 120 - α = 0.1
Figura 5.2: SongBird Network1- Caso B - τ = 120 - α = 0.1
Laurea Magistrale in Informatica 60
5.2. Dataset SongBird
Figura 5.3: SongBird Network1- Caso B - τ = 120 - α = 0.1
Figura 5.4: SongBird Network1- Caso B - τ = 120 - α = 0.1
Laurea Magistrale in Informatica 61
5.2. Dataset SongBird
Figura 5.5: SongBird Network1- Caso B - τ = 120 - α = 0.1
Figura 5.6: SongBird Network1- Caso B - τ = 120 - α = 0.1
Laurea Magistrale in Informatica 62
5.2. Dataset SongBird
Figura 5.7: SongBird Network1- Caso B - τ = 120 - α = 0.1
Figura 5.8: SongBird Network1- Caso B - τ = 120 - α = 0.1
Laurea Magistrale in Informatica 63
5.2. Dataset SongBird
5.2.3 Risultati Netork1 - Caso C
Di seguito si riportano i risultati riguardante il Network1 del dataset SongBird
nel caso C:
Figura 5.9: SongBird Network1- Caso C - τ = 120 - α = 0.1
Laurea Magistrale in Informatica 64
5.2. Dataset SongBird
Figura 5.10: SongBird Network1- Caso C - τ = 120 - α = 0.1
Figura 5.11: SongBird Network1- Caso C - τ = 120 - α = 0.1
Laurea Magistrale in Informatica 65
5.2. Dataset SongBird
Figura 5.12: SongBird Network1- Caso C - τ = 120 - α = 0.1
Figura 5.13: SongBird Network1- Caso C - τ = 120 - α = 0.1
Laurea Magistrale in Informatica 66
5.2. Dataset SongBird
Figura 5.14: SongBird Network1- Caso C - τ = 120 - α = 0.1
Laurea Magistrale in Informatica 67
5.2. Dataset SongBird
Figura 5.15: SongBird Network1- Caso C - τ = 120 - α = 0.1
Figura 5.16: SongBird Network1- Caso C - τ = 120 - α = 0.1
Laurea Magistrale in Informatica 68
5.2. Dataset SongBird
5.2.4 Risultati Netork2 - Caso B
Di seguito si riportano i risultati riguardante il Network2 del dataset SongBird
nel caso B:
Figura 5.17: SongBird Network2- Caso B - τ = 135 - α = 0.1
Laurea Magistrale in Informatica 69
5.2. Dataset SongBird
Figura 5.18: SongBird Network2- Caso B - τ = 135 - α = 0.1
Figura 5.19: SongBird Network2- Caso B - τ = 135 - α = 0.1
Laurea Magistrale in Informatica 70
5.2. Dataset SongBird
Figura 5.20: SongBird Network2- Caso B - τ = 135 - α = 0.1
Figura 5.21: SongBird Network2- Caso B - τ = 135 - α = 0.1
Laurea Magistrale in Informatica 71
5.2. Dataset SongBird
Figura 5.22: SongBird Network2- Caso B - τ = 135 - α = 0.1
Figura 5.23: SongBird Network2- Caso B - τ = 135 - α = 0.1
Laurea Magistrale in Informatica 72
5.2. Dataset SongBird
Figura 5.24: SongBird Network2- Caso B - τ = 135 - α = 0.1
5.2.5 Risultati Netork2 - Caso C
Di seguito si riportano i risultati riguardante il Network2 del dataset SongBird
nel caso C:
Laurea Magistrale in Informatica 73
5.2. Dataset SongBird
Figura 5.25: SongBird Network2- Caso C - τ = 135 - α = 0.1
Figura 5.26: SongBird Network2- Caso C - τ = 135 - α = 0.1
Laurea Magistrale in Informatica 74
5.2. Dataset SongBird
Figura 5.27: SongBird Network2- Caso C - τ = 135 - α = 0.1
Figura 5.28: SongBird Network2- Caso C - τ = 135 - α = 0.1
Laurea Magistrale in Informatica 75
5.2. Dataset SongBird
Figura 5.29: SongBird Network2- Caso C - τ = 135 - α = 0.1
Figura 5.30: SongBird Network2- Caso C - τ = 135 - α = 0.1
Laurea Magistrale in Informatica 76
5.2. Dataset SongBird
Figura 5.31: SongBird Network2- Caso C - τ = 135 - α = 0.1
Figura 5.32: SongBird Network2- Caso C - τ = 135 - α = 0.1
Laurea Magistrale in Informatica 77
5.2. Dataset SongBird
5.2.6 Analisi dei risultati
Di seguito si comparano i risultati ottenuti sul dataset SongBird, con i risultati
riportati da Robinson e Hartemink (Robinson & Hartemink, 2010). Secondo
quanto riportato nell’articolo di Robinson e Hartemink, il numero di epoche
più probabili è pari a 4 sul Network1, ovvero il dataset riguardante lo stimolo
bl280song, mentre è pari a 3 sul Network2, ovvero il dataset riguardante lo
stimolo whitenoise.
I risultati ottenuti dai test mostrano che, per molti nodi, il numero di
epoche ritrovato è differente da quello ottenuto da Robinson e Hartemink.
Questa differenza può essere in parte attribuibile alla modalità di ricostruzione
della rete: nel caso delle NHCTBN la scoperta delle epoche viene effettuata
singolarmente nodo per nodo, nelle NHDBN, invece, la scoperta delle epoche
viene eseguita apprendendo l’intera rete.
Laurea Magistrale in Informatica 78
Capitolo 6
Conclusioni
In questo lavoro di tesi si parte dall’analisi di alcuni modelli già presenti in
letteratura, come si vede nel Capitolo 2. Questi modelli sono in grado di
rappresentare sistemi dinamici, tuttavia sono accomunati dalla problematica di
rappresentare il tempo in maniera discreta. Questo implica che tutte le variabili
rappresentate dai modelli sono costrette ad evolvere con velocità simili.
Al fine di superare tale restrizione si presenta il modello delle NHCTBN, che
permettono, infatti, la trattazione del tempo in maniera continua.
In questa tesi si è raggiunto l’obbiettivo di progettare, realizzare e validare
un framework che permette l’apprendimento delle NHCTBN, rendendo quindi
possibile l’utilizzo di questo nuovo modello in ambito applicativo.
L’implementazione dell’algoritmo è stata eseguita utilizzando il framework
Apache Hadoop MapReduce, che permette di analizzare grandi moli di dati,
sfruttando un approccio di computazione parallela su più server.
Gli esperimenti eseguiti hanno mostrato che la ricostruzione della struttura
corretta avviene nella maggior parte dei casi, hanno inoltre messo in evidenza
la potenzialità di apprendere strutture non omogenee rispetto alle strutture
omogenee delle CTBN.
Gli esperimenti mostrano anche che, grazie all’utilizzo del framework Ha-
doop, è stato possibile distribuire la computazione su più macchine, e che
passando da 1 a 5 macchine si è raggiunto un incremento di velocità di com-
putazione di circa il 50%.
Alcune proposte di sviluppi futuri sono:
• Studio di funzioni di score che permettano di ricostruire sempre la strut-
79
tura corretta;
• Studio di nuove modalità di apprendimento della struttura, come ad
esempio l’apprendimento online, al fine di apprendere la struttura man
mano che i dati vengono prodotti;
• Studio di nuove modalità di esplorazione dello spazio di ricerca delle
strutture, ad esempio adattando il lavoro di Campos alle NHCTBN (Cassio
P. de Campos, 2011).
Laurea Magistrale in Informatica 80
Appendici
81
Appendice A
Dettaglio esperimenti caso A
82
A.1. Confronto modelli omogenei e modelli non omogenei
A.1 Confronto modelli omogenei e modelli non omo-
genei
Epoca1conf.Xi: 3conf.PA: 2
[0.0,10.0]
X
1
Figura A.1: Modello omogeneo - Dataset1 - 50 traiettorie - 4495 osservazioni
Epoca3conf.Xi: 3conf.PA: 3
#Oss.Dataset: 727
Epoca2conf.Xi: 3conf.PA: 0
#Oss.Dataset: 1219
Epoca1conf.Xi: 3conf.PA: 2
#Oss.Dataset: 2549
[0.0,5.91] [5.91,8.41] [8.41,10.0]
X
1 X
X
2
Figura A.2: Modello non omogeneo - Dataset1 - 50 traiettorie - 4495 osservazioni
Laurea Magistrale in Informatica 83
A.1. Confronto modelli omogenei e modelli non omogenei
Epoca1conf.Xi: 3conf.PA: 4
[0.0,20.0]
X
12
Figura A.3: Modello omogeneo - Dataset2 - 50 traiettorie - 9882 osservazioni
Epoca3conf.Xi: 3conf.PA: 0
#Oss.Dataset: 2481
Epoca2conf.Xi: 3conf.PA: 4
#Oss.Dataset: 6677
Epoca1conf.Xi: 3conf.PA: 2
#Oss.Dataset: 724
[0.0,1.42] [1.42,14.85] [14.85,20.0]
X
1
X
12 X
Figura A.4: Modello non omogeneo - Dataset2 - 50 traiettorie - 9882 osservazioni
Laurea Magistrale in Informatica 84
A.1. Confronto modelli omogenei e modelli non omogenei
Epoca1conf.Xi: 3conf.PA: 2
[0.0,20.0]
X
1
Figura A.5: Modello omogeneo - Dataset3 - 100 traiettorie - 12452 osservazioni
Epoca2conf.Xi: 3conf.PA: 0
#Oss.Dataset: 2537
Epoca1conf.Xi: 3conf.PA: 2
#Oss.Dataset: 2394
Epoca3conf.Xi: 3conf.PA: 2
#Oss.Dataset: 3660
Epoca4conf.Xi: 3conf.PA: 6
#Oss.Dataset: 3861
[0.0,3.68] [3.68,7.8] [7.8,13.71] [13.71,20.0]
X
1 X
X
1
X
12
Figura A.6: Modello non omogeneo - Dataset3 - 100 traiettorie - 12452 osservazioni
Laurea Magistrale in Informatica 85
A.1. Confronto modelli omogenei e modelli non omogenei
Epoca1conf.Xi: 3conf.PA: 2
[0.0,20.0]
X
1
Figura A.7: Modello omogeneo - Dataset4 - 100 traiettorie - 12601 osservazioni
Epoca3conf.Xi: 3conf.PA: 2
#Oss.Dataset: 3763
Epoca2conf.Xi: 3conf.PA: 0
#Oss.Dataset: 2533
Epoca4conf.Xi: 3conf.PA: 6
#Oss.Dataset: 3831
Epoca1conf.Xi: 3conf.PA: 2
#Oss.Dataset: 2474
[0.0,3.68] [3.68,7.8] [7.8,13.71] [13.71,20.0]
X
1 X
X
1
X
12
Figura A.8: Modello non omogeneo - Dataset4 - 100 traiettorie - 12601 osservazioni
Laurea Magistrale in Informatica 86
A.1. Confronto modelli omogenei e modelli non omogenei
Epoca1conf.Xi: 3conf.PA: 2
[0.0,20.0]
X
1
Figura A.9: Modello omogeneo - Dataset5 - 40 traiettorie - 4519 osservazioni
Epoca2conf.Xi: 3conf.PA: 0
#Oss.Dataset: 1265
Epoca1conf.Xi: 3conf.PA: 2
#Oss.Dataset: 2551
Epoca3conf.Xi: 3conf.PA: 3
#Oss.Dataset: 703
[0.0,11.83] [11.83,16.82] [16.82,20.0]
X
1 X
X
2
Figura A.10: Modello non omogeneo - Dataset5 - 40 traiettorie - 4519 osservazioni
Laurea Magistrale in Informatica 87
A.1. Confronto modelli omogenei e modelli non omogenei
Epoca1conf.Xi: 4
conf.PA: 16
[0.0,20.0]
X
1234
Figura A.11: Modello omogeneo - Dataset6 - 150 traiettorie - 40246 osservazioni
Epoca2conf.Xi: 4conf.PA: 2
#Oss.Dataset: 5578
Epoca1conf.Xi: 4
conf.PA: 16#Oss.Dataset: 34668
[0.0,17.14] [17.14,20.0]
X
1234
X
1
Figura A.12: Modello non omogeneo - Dataset6 - 150 traiettorie - 40246 osservazioni
Laurea Magistrale in Informatica 88
A.1. Confronto modelli omogenei e modelli non omogenei
Epoca1conf.Xi: 3conf.PA: 8
[0.0,60.0]
X
123
Figura A.13: Modello omogeneo - Dataset7 - 180 traiettorie - 110415 osservazioni
Epoca1conf.Xi: 3conf.PA: 8
#Oss.Dataset: 22464
Epoca6conf.Xi: 3conf.PA: 2
#Oss.Dataset: 13281
Epoca4conf.Xi: 3conf.PA: 2
#Oss.Dataset: 13971
Epoca2conf.Xi: 3conf.PA: 2
#Oss.Dataset: 12944
Epoca5conf.Xi: 3conf.PA: 8
#Oss.Dataset: 23122
Epoca3conf.Xi: 3conf.PA: 8
#Oss.Dataset: 24633
[0.0,12.73] [12.73,20.0] [20.0,32.73] [32.73,40.0] [40.0,52.73] [52.73,60.0]
X
123
X
2
X
123
X
2
X
123
X
2
Figura A.14: Modello non omogeneo - Dataset7 - 180 traiettorie - 110415osservazioni
Laurea Magistrale in Informatica 89
A.1. Confronto modelli omogenei e modelli non omogenei
Epoca1conf.Xi: 5conf.PA: 2
[0.0,30.0]
X
2
Figura A.15: Modello omogeneo - Dataset8 - 100 traiettorie - 22827 osservazioni
Epoca3conf.Xi: 5conf.PA: 2
#Oss.Dataset: 8742
Epoca1conf.Xi: 5conf.PA: 4
#Oss.Dataset: 10441
Epoca2conf.Xi: 5conf.PA: 0
#Oss.Dataset: 3644
[0.0,13.85] [13.85,18.46] [18.46,30.0]
X
12 X
X
2
Figura A.16: Modello non omogeneo - Dataset8 - 100 traiettorie - 22827 osservazioni
Laurea Magistrale in Informatica 90
A.1. Confronto modelli omogenei e modelli non omogenei
Epoca1conf.Xi: 2conf.PA: 4
[0.0,40.0]
X
12
Figura A.17: Modello omogeneo - Dataset9 - 600 traiettorie - 202186 osservazioni
Epoca1conf.Xi: 2conf.PA: 4
#Oss.Dataset: 91860
Epoca3conf.Xi: 2conf.PA: 2
#Oss.Dataset: 74155
Epoca2conf.Xi: 2conf.PA: 0
#Oss.Dataset: 36171
[0.0,18.18] [18.18,25.45] [25.45,40.0]
X
12 X
X
1
Figura A.18: Modello non omogeneo - Dataset9 - 600 traiettorie - 202186osservazioni
Laurea Magistrale in Informatica 91
A.1. Confronto modelli omogenei e modelli non omogenei
Epoca1conf.Xi: 3conf.PA: 8
[0.0,100.0]
X
234
Figura A.19: Modello omogeneo - Dataset10 - 50 traiettorie - 62996 osservazioni
Epoca4conf.Xi: 3conf.PA: 4
#Oss.Dataset: 13840
Epoca2conf.Xi: 3conf.PA: 0
#Oss.Dataset: 8433
Epoca1conf.Xi: 3
conf.PA: 16#Oss.Dataset: 27448
Epoca3conf.Xi: 3conf.PA: 2
#Oss.Dataset: 13275
[0.0,42.86] [42.86,57.14] [57.14,78.57] [78.57,100.0]
X
1234 X
X
2
X
12
Figura A.20: Modello non omogeneo - Dataset10 - 50 traiettorie - 62996 osservazioni
Laurea Magistrale in Informatica 92
A.1. Confronto modelli omogenei e modelli non omogenei
Epoca1conf.Xi: 3conf.PA: 2
[0.0,20.0]
X
2
Figura A.21: Modello omogeneo - Dataset11 - 50 traiettorie - 10396 osservazioni
Epoca3conf.Xi: 3conf.PA: 2
#Oss.Dataset: 2550
Epoca4conf.Xi: 3conf.PA: 2
#Oss.Dataset: 2588
Epoca2conf.Xi: 3conf.PA: 2
#Oss.Dataset: 2703
Epoca1conf.Xi: 3conf.PA: 0
#Oss.Dataset: 2555
[0.0,5.0] [5.0,10.0] [10.0,15.0] [15.0,20.0]
X
X
1
X
2
X
1
Figura A.22: Modello non omogeneo - Dataset11 - 50 traiettorie - 10396 osservazioni
Laurea Magistrale in Informatica 93
A.1. Confronto modelli omogenei e modelli non omogenei
Epoca1conf.Xi: 3conf.PA: 4
[0.0,20.0]
X
12
Figura A.23: Modello omogeneo - Dataset12 - 200 traiettorie - 103110 osservazioni
Epoca2conf.Xi: 3conf.PA: 0
#Oss.Dataset: 12664
Epoca3conf.Xi: 3conf.PA: 2
#Oss.Dataset: 18799
Epoca1conf.Xi: 3conf.PA: 4
#Oss.Dataset: 25359
Epoca4conf.Xi: 3conf.PA: 8
#Oss.Dataset: 46288
[0.0,12.5] [12.5,18.75] [18.75,28.13] [28.13,50.0]
X
12 X
X
1
X
123
Figura A.24: Modello non omogeneo - Dataset12 - 200 traiettorie - 103110osservazioni
Laurea Magistrale in Informatica 94
A.1. Confronto modelli omogenei e modelli non omogenei
Epoca1conf.Xi: 3conf.PA: 4
#Oss.Dataset: 10727
[0.0,20.0]
X
12
Figura A.25: Modello omogeneo - Dataset13 - 70 traiettorie - 10867 osservazioni
Epoca3conf.Xi: 3conf.PA: 4
#Oss.Dataset: 4176
Epoca1conf.Xi: 3conf.PA: 2
#Oss.Dataset: 3296
Epoca2conf.Xi: 3conf.PA: 2
#Oss.Dataset: 3395
[0.0,5.93] [5.93,11.85] [11.85,20.0]
X
1
X
2
X
12
Figura A.26: Modello non omogeneo - Dataset13 - 70 traiettorie - 10867 osservazioni
Laurea Magistrale in Informatica 95
Appendice B
Dettaglio esperimenti caso B
96
B.1. Dataset1
B.1 Dataset1
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 2/3 N/A N/A N/A N/A2 0.0 3 2/3 N/A N/A N/A N/A3 0.0 6 2/3 N/A N/A N/A N/A4 0.0 8 2/3 N/A N/A N/A N/A5 0.0 10 2/3 N/A N/A N/A N/A
Tabella B.1: Dataset1 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 2/3 N/A N/A N/A N/A2 0.0 3 2/3 N/A N/A N/A N/A3 0.0 6 2/3 N/A N/A N/A N/A4 0.0 8 2/3 N/A N/A N/A N/A5 0.0 10 2/3 N/A N/A N/A N/A
Tabella B.2: Dataset1 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;
B.2 Dataset2
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 3/3 67.0% 100.0% 0.83 4.17%2 0.0 3 3/3 67.0% 100.0% 0.83 4.17%3 0.0 6 3/3 100.0% 100.0% 0.12 0.59%4 0.0 8 3/3 100.0% 100.0% 0.12 0.59%5 0.0 10 3/3 100.0% 100.0% 0.12 0.59%
Tabella B.3: Dataset2 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 3/3 67% 100.0% 0.83 4.17%2 0.0 3 3/3 67% 100.0% 0.86 4.3%3 0.0 6 3/3 67% 100.0% 0.86 4.3%4 0.0 8 3/3 100.0% 100.0% 0.12 0.59%5 0.0 10 3/3 100.0% 100.0% 0.12 0.59%
Tabella B.4: Dataset2 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;
Laurea Magistrale in Informatica 97
B.3. Dataset3
B.3 Dataset3
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 4/4 100.0% 100.0% 0.0 0.0%2 0.0 3 4/4 100.0% 100.0% 0.0 0.0%3 0.0 6 4/4 100.0% 100.0% 0.02 0.1%4 0.0 8 4/4 100.0% 100.0% 0.0 0.0%5 0.0 10 2/4 N/A N/A N/A
Tabella B.5: Dataset3 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 4/4 100.0% 100.0% 0.07 0.37%2 0.0 3 4/4 100.0% 100.0% 0.0 0.01%3 0.0 6 4/4 100.0% 100.0% 0.0 0.0%4 0.0 8 4/4 100.0% 100.0% 0.02 0.08%5 0.0 10 4/4 100.0% 100.0% 0.0 0.0%
Tabella B.6: Dataset3 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;
B.4 Dataset4
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 4/4 100.0% 100.0% 0.0 0.0%2 0.0 3 4/4 100.0% 100.0% 0.0 0.01%3 0.0 6 4/4 100.0% 100.0% 0.0 0.0%4 0.0 8 4/4 100.0% 100.0% 0.07 0.37%5 0.0 10 2/4 N/A N/A N/A N/A
Tabella B.7: Dataset4 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 4/4 100.0% 100.0% 0.07 0.37%2 0.0 3 4/4 100.0% 100.0% 0.07 0.37%3 0.0 6 4/4 100.0% 100.0% 0.02 0.08%4 0.0 8 4/4 100.0% 100.0% 0.0 0.0%5 0.0 10 4/4 100.0% 100.0% 0.0 0.0%
Tabella B.8: Dataset4 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;
Laurea Magistrale in Informatica 98
B.5. Dataset5
B.5 Dataset5
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 3/3 100.0% 100.0% 0.0 0.0%2 0.0 3 3/3 100.0% 100.0% 0.0 0.0%3 0.0 6 3/3 100.0% 100.0% 0.0 0.0%4 0.0 8 3/3 100.0% 100.0% 0.0 0.0%5 0.0 10 3/3 100.0% 100.0% 0.01 0.06%
Tabella B.9: Dataset5 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 3/3 100.0% 100.0% 0.0 0.0%2 0.0 3 3/3 100.0% 100.0% 0.0 0.0%3 0.0 6 3/3 100.0% 100.0% 0.0 0.0%4 0.0 8 3/3 100.0% 100.0% 0.0 0.0%5 0.0 10 2/3 N/A N/A N/A N/A
Tabella B.10: Dataset5 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;Tipologia operatori = Proporzionali; Score = BDe; Pesatura =Ampiezza;
B.6 Dataset6
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 2/2 100.0% 100.0% 0.0 0.0%2 0.0 3 2/2 100.0% 100.0% 0.0 0.0%3 0.0 6 2/2 100.0% 100.0% 0.0 0.0%4 0.0 8 2/2 100.0% 100.0% 0.0 0.0%5 0.0 10 2/2 100.0% 100.0% 0.0 0.0%
Tabella B.11: Dataset6 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 2/2 100.0% 100.0% 0.0 0.0%2 0.0 3 2/2 100.0% 100.0% 0.0 0.0%3 0.0 6 2/2 100.0% 100.0% 0.0 0.0%4 0.0 8 2/2 100.0% 100.0% 0.0 0.0%5 0.0 10 2/2 100.0% 100.0% 0.0 0.0%
Tabella B.12: Dataset6 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;Tipologia operatori = Proporzionali; Score = BDe; Pesatura =Ampiezza;
Laurea Magistrale in Informatica 99
B.7. Dataset7
B.7 Dataset7
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 6/6 100.0% 100.0% 0.19 0.32%2 0.0 3 6/6 100.0% 100.0% 0.44 0.73%3 0.0 6 6/6 100.0% 100.0% 0.16 0.26%4 0.0 8 6/6 100.0% 100.0% 0.62 13%5 0.0 10 6/6 100.0% 100.0% 0.7 1.17%
Tabella B.13: Dataset7 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 6/6 100.0% 100.0% 0.45 0.75%2 0.0 3 6/6 100.0% 100.0% 0.48 0.8%3 0.0 6 6/6 100.0% 100.0% 0.2 0.33%4 0.0 8 6/6 100.0% 100.0% 0.41 0.68%5 0.0 10 6/6 100.0% 100.0% 0.77 1.29%
Tabella B.14: Dataset7 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;Tipologia operatori = Proporzionali; Score = BDe; Pesatura =Ampiezza;
B.8 Dataset8
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 3/3 100.0% 100.0% 0.0 0.0%2 0.0 3 3/3 100.0% 100.0% 0.0 0.0%3 0.0 6 3/3 100.0% 100.0% 0.03 0.1%4 0.0 8 3/3 100.0% 100.0% 0.0 0.0%5 0.0 10 3/3 100.0% 100.0% 0.0 0.0%
Tabella B.15: Dataset8 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 3/3 100.0% 100.0% 0.0 0.0%2 0.0 3 3/3 100.0% 100.0% 0.11 0.36%3 0.0 6 3/3 100.0% 100.0% 0.0 0.0%4 0.0 8 3/3 100.0% 100.0% 0.0 0.0%5 0.0 10 3/3 100.0% 100.0% 0.0 0.0%
Tabella B.16: Dataset8 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;Tipologia operatori = Proporzionali; Score = BDe; Pesatura =Ampiezza;
Laurea Magistrale in Informatica 100
B.9. Dataset9
B.9 Dataset9
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 3/3 100.0% 100.0% 0.69 1.72%2 0.0 3 3/3 100.0% 100.0% 0.69 1.72%3 0.0 6 3/3 100.0% 100.0% 0.69 1.72%4 0.0 8 3/3 100.0% 100.0% 0.69 1.72%5 0.0 10 3/3 100.0% 100.0% 0.71 1.76%
Tabella B.17: Dataset9 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 3/3 100.0% 100.0% 0.69 1.72%2 0.0 3 3/3 100.0% 100.0% 0.69 1.72%3 0.0 6 3/3 100.0% 100.0% 0.69 1.72%4 0.0 8 3/3 100.0% 100.0% 0.71 1.78%5 0.0 10 3/3 100.0% 100.0% 0.69 1.72%
Tabella B.18: Dataset9 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;Tipologia operatori = Proporzionali; Score = BDe; Pesatura =Ampiezza;
B.10 Dataset10
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 4/4 100.0% 100.0% 0.36 0.36%2 0.0 3 4/4 100.0% 100.0% 0.04 0.04%3 0.0 6 4/4 100.0% 100.0% 0.45 0.45%4 0.0 8 4/4 100.0% 100.0% 0.53 0.53%5 0.0 10 4/4 100.0% 100.0% 0.58 0.58%
Tabella B.19: Dataset10 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;Tipologia operatori = Proporzionali; Score = BDeu; Pesatura =Ampiezza;
Laurea Magistrale in Informatica 101
B.11. Dataset11
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 4/4 100.0% 100.0% 0.14 0.14%2 0.0 3 4/4 100.0% 100.0% 0.22 0.22%3 0.0 6 4/4 100.0% 100.0% 0.36 0.36%4 0.0 8 4/4 100.0% 100.0% 0.24 0.24%5 0.0 10 4/4 100.0% 100.0% 0.21 0.21%
Tabella B.20: Dataset10 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;Tipologia operatori = Proporzionali; Score = BDe; Pesatura =Ampiezza;
B.11 Dataset11
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 4/4 67.0% 100.0% 0.22 1.11%2 0.0 3 4/4 67.0% 100.0% 0.22 1.11%3 0.0 6 4/4 67.0% 100.0% 0.46 2.29%4 0.0 8 4/4 67.0% 100.0% 0.22 1.11%5 0.0 10 3/4 N/A N/A N/A
Tabella B.21: Dataset11 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;Tipologia operatori = Proporzionali; Score = BDeu; Pesatura =Ampiezza;
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 4/4 67% 100.0% 0.22 1.11%2 0.0 3 4/4 67% 100.0% 0.22 1.11%3 0.0 6 4/4 67% 100.0% 0.14 0.69%4 0.0 8 3/4 N/A N/A N/A N/A5 0.0 10 3/4 N/A N/A N/A N/A
Tabella B.22: Dataset11 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;Tipologia operatori = Proporzionali; Score = BDe; Pesatura =Ampiezza;
Laurea Magistrale in Informatica 102
B.12. Dataset12
B.12 Dataset12
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 4/4 100.0% 100.0% 0.02 0.04%2 0.0 3 4/4 100.0% 100.0% 0.21 0.42%3 0.0 6 3/4 N/A N/A N/A N/A4 0.0 8 4/4 100.0% 100.0% 0.19 0.37%5 0.0 10 4/4 100.0% 100.0% 0.0 0.0%
Tabella B.23: Dataset12 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;Tipologia operatori = Proporzionali; Score = BDeu; Pesatura =Ampiezza;
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 4/4 100.0% 100.0% 0.38 0.77%2 0.0 3 4/4 100.0% 100.0% 0.02 0.04%3 0.0 6 4/4 100.0% 100.0% 0.19 0.37%4 0.0 8 4/4 100.0% 100.0% 0.02 0.04%5 0.0 10 4/4 100.0% 100.0% 0.03 0.07%
Tabella B.24: Dataset12 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;Tipologia operatori = Proporzionali; Score = BDe; Pesatura =Ampiezza;
B.13 Dataset13
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 3/3 100.0% 100.0% 0.14 0.71%2 0.0 3 3/3 100.0% 100.0% 0.34 1.7%3 0.0 6 3/3 100.0% 100.0% 0.0 0.0%4 0.0 8 3/3 100.0% 100.0% 0.34 1.7%5 0.0 10 3/3 100.0% 100.0% 0.34 1.7%
Tabella B.25: Dataset13 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200;Tipologia operatori = Proporzionali; Score = BDeu; Pesatura =Ampiezza;
Laurea Magistrale in Informatica 103
B.13. Dataset13
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 0.0 1 3/3 100.0% 100.0% 0.34 1.7%2 0.0 3 3/3 100.0% 100.0% 0.34 1.7%3 0.0 6 3/3 100.0% 100.0% 0.34 1.7%4 0.0 8 3/3 100.0% 100.0% 0.34 1.7%5 0.0 10 3/3 100.0% 100.0% 0.34 1.7%
Tabella B.26: Dataset13 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200;Tipologia operatori = Proporzionali; Score = BDe; Pesatura =Ampiezza;
Laurea Magistrale in Informatica 104
Appendice C
Dettaglio esperimenti caso C
105
C.1. Dataset1
C.1 Dataset1
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 2/3 N/A N/A N/A N/A2 25 3 2/3 N/A N/A N/A N/A3 25 6 2/3 N/A N/A N/A N/A4 25 8 2/3 N/A N/A N/A N/A5 25 10 2/3 N/A N/A N/A N/A6 15 1 2/3 N/A N/A N/A N/A7 15 3 2/3 N/A N/A N/A N/A8 15 6 2/3 N/A N/A N/A N/A9 15 8 2/3 N/A N/A N/A N/A10 15 10 2/3 N/A N/A N/A N/A11 10 1 2/3 N/A N/A N/A N/A12 10 3 3/3 100.0% 100.0% 0.09 0.91%13 10 6 2/3 N/A N/A N/A N/A14 10 8 2/3 N/A N/A N/A N/A15 10 10 2/3 N/A N/A N/A N/A16 5 1 2/3 N/A N/A N/A N/A17 5 3 2/3 N/A N/A N/A N/A18 5 6 2/3 N/A N/A N/A N/A19 5 8 2/3 N/A N/A N/A N/A20 5 10 2/3 N/A N/A N/A N/A21 1 1 2/3 N/A N/A N/A N/A22 1 3 2/3 N/A N/A N/A N/A23 1 6 2/3 N/A N/A N/A N/A24 1 8 2/3 N/A N/A N/A N/A25 1 10 2/3 N/A N/A N/A N/A
Tabella C.1: Dataset1 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 2 ; Epoche Max = 5;
Laurea Magistrale in Informatica 106
C.1. Dataset1
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 2/3 N/A N/A N/A N/A2 25 3 2/3 N/A N/A N/A N/A3 25 6 2/3 N/A N/A N/A N/A4 25 8 2/3 N/A N/A N/A N/A5 25 10 2/3 N/A N/A N/A N/A6 15 1 2/3 N/A N/A N/A N/A7 15 3 2/3 N/A N/A N/A N/A8 15 6 2/3 N/A N/A N/A N/A9 15 8 2/3 N/A N/A N/A N/A10 15 10 2/3 N/A N/A N/A N/A11 10 1 3/3 100.0% 100.0% 0.09 0.91%12 10 3 2/3 N/A N/A N/A N/A13 10 6 2/3 N/A N/A N/A N/A14 10 8 2/3 N/A N/A N/A N/A15 10 10 2/3 N/A N/A N/A N/A16 5 1 3/3 100.0% 100.0% 0.09 0.91%17 5 3 3/3 100.0% 100.0% 0.67 6.68%18 5 6 2/3 N/A N/A N/A N/A19 5 8 2/3 N/A N/A N/A N/A20 5 10 2/3 N/A N/A N/A N/A21 1 1 2/3 N/A N/A N/A N/A22 1 3 3/3 100.0% 100.0% 0.28 2.81%23 1 6 2/3 N/A N/A N/A N/A24 1 8 2/3 N/A N/A N/A N/A25 1 10 2/3 N/A N/A N/A N/A
Tabella C.2: Dataset1 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 3 ; Epoche Max = 6;
Laurea Magistrale in Informatica 107
C.1. Dataset1
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 2/3 N/A N/A N/A N/A2 25 3 2/3 N/A N/A N/A N/A3 25 6 2/3 N/A N/A N/A N/A4 25 8 2/3 N/A N/A N/A N/A5 25 10 2/3 N/A N/A N/A N/A6 15 1 2/3 N/A N/A N/A N/A7 15 3 2/3 N/A N/A N/A N/A8 15 6 2/3 N/A N/A N/A N/A9 15 8 2/3 N/A N/A N/A N/A10 15 10 2/3 N/A N/A N/A N/A11 10 1 2/3 N/A N/A N/A N/A12 10 3 2/3 N/A N/A N/A N/A13 10 6 2/3 N/A N/A N/A N/A14 10 8 2/3 N/A N/A N/A N/A15 10 10 2/3 N/A N/A N/A N/A16 5 1 2/3 N/A N/A N/A N/A17 5 3 2/3 N/A N/A N/A N/A18 5 6 2/3 N/A N/A N/A N/A19 5 8 2/3 N/A N/A N/A N/A20 5 10 2/3 N/A N/A N/A N/A21 1 1 2/3 N/A N/A N/A N/A22 1 3 2/3 N/A N/A N/A N/A23 1 6 2/3 N/A N/A N/A N/A24 1 8 2/3 N/A N/A N/A N/A25 1 10 2/3 N/A N/A N/A N/A
Tabella C.3: Dataset1 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipo-logia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 2 ; Epoche Max = 5;
Laurea Magistrale in Informatica 108
C.1. Dataset1
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 2/3 N/A N/A N/A N/A2 25 3 2/3 N/A N/A N/A N/A3 25 6 2/3 N/A N/A N/A N/A4 25 8 2/3 N/A N/A N/A N/A5 25 10 2/3 N/A N/A N/A N/A6 15 1 2/3 N/A N/A N/A N/A7 15 3 2/3 N/A N/A N/A N/A8 15 6 2/3 N/A N/A N/A N/A9 15 8 2/3 N/A N/A N/A N/A10 15 10 2/3 N/A N/A N/A N/A11 10 1 2/3 N/A N/A N/A N/A12 10 3 2/3 N/A N/A N/A N/A13 10 6 2/3 N/A N/A N/A N/A14 10 8 2/3 N/A N/A N/A N/A15 10 10 2/3 N/A N/A N/A N/A16 5 1 2/3 N/A N/A N/A N/A17 5 3 2/3 N/A N/A N/A N/A18 5 6 2/3 N/A N/A N/A N/A19 5 8 2/3 N/A N/A N/A N/A20 5 10 2/3 N/A N/A N/A N/A21 1 1 2/3 N/A N/A N/A N/A22 1 3 2/3 N/A N/A N/A N/A23 1 6 2/3 N/A N/A N/A N/A24 1 8 2/3 N/A N/A N/A N/A25 1 10 2/3 N/A N/A N/A N/A
Tabella C.4: Dataset1 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipo-logia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 3 ; Epoche Max = 6;
Laurea Magistrale in Informatica 109
C.2. Dataset2
C.2 Dataset2
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 2/3 N/A N/A N/A N/A2 25 3 3/3 67% 100% 0.9 4.52%3 25 6 2/3 N/A N/A N/A N/A4 25 8 2/3 N/A N/A N/A N/A5 25 10 2/3 N/A N/A N/A N/A6 15 1 3/3 100.0% 100.0% 0.19 0.94%7 15 3 2/3 N/A N/A N/A N/A8 15 6 2/3 N/A N/A N/A N/A9 15 8 3/3 100.0% 100.0% 0.14 0.72%10 15 10 3/3 100.0% 100.0% 0.05 0.26%11 10 1 3/3 67% 100.0% 0.83 4.17%12 10 3 2/3 N/A N/A N/A N/A13 10 6 2/3 N/A N/A N/A N/A14 10 8 2/3 N/A N/A N/A N/A15 10 10 2/3 N/A N/A N/A N/A16 5 1 2/3 N/A N/A N/A N/A17 5 3 2/3 N/A N/A N/A N/A18 5 6 3/3 100.0% 100.0% 0.1 0.49%19 5 8 2/3 N/A N/A N/A N/A20 5 10 2/3 N/A N/A N/A N/A21 1 1 3/3 67% 100.0% 0.83 4.17%22 1 3 3/3 100.0% 100.0% 0.05 0.26%23 1 6 3/3 100.0% 100.0% 0.08 0.39%24 1 8 3/3 100.0% 100.0% 0.05 0.26%25 1 10 2/3 N/A N/A N/A N/A
Tabella C.5: Dataset2 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 2 ; Epoche Max = 5;
Laurea Magistrale in Informatica 110
C.2. Dataset2
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 3/3 67.0% 100.0% 0.83 4.17%2 25 3 3/3 67.0% 100.0% 0.83 4.17%3 25 6 2/3 N/A N/A N/A N/A4 25 8 2/3 N/A N/A N/A N/A5 25 10 2/3 N/A N/A N/A N/A6 15 1 3/3 67.0% 100.0% 0.81 4.07%7 15 3 3/3 67.0% 100.0% 0.86 4.3%8 15 6 3/3 100.0% 100.0% 0.12 0.59%9 15 8 3/3 100.0% 100.0% 0.21 1.07%10 15 10 3/3 100.0% 100.0% 0.12 0.59%11 10 1 3/3 67.0% 100.0% 0.72 3.58%12 10 3 3/3 100.0% 100.0% 0.0 0.0%13 10 6 3/3 100.0% 100.0% 0.24 1.2%14 10 8 3/3 100.0% 100.0% 0.31 1.56%15 10 10 3/3 100.0% 100.0% 0.31 1.56%16 5 1 3/3 67.0% 100.0% 0.9 4.52%17 5 3 3/3 67.0% 100.0% 1.52 7.61%18 5 6 3/3 100.0% 100.0% 0.19 0.94%19 5 8 2/3 N/A N/A N/A N/A20 5 10 2/3 N/A N/A N/A N/A21 1 1 2/3 N/A N/A N/A N/A22 1 3 3/3 67.0% 100.0% 1.92 9.6%23 1 6 3/3 100.0% 100.0% 0.31 1.56%24 1 8 3/3 100.0% 100.0% 0.24 1.2%25 1 10 2/3 N/A N/A N/A N/A
Tabella C.6: Dataset2 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 3 ; Epoche Max = 6;
Laurea Magistrale in Informatica 111
C.2. Dataset2
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 2/3 N/A N/A N/A N/A2 25 3 2/3 N/A N/A N/A N/A3 25 6 3/3 100.0% 100.0% 0.12 0.59%4 25 8 2/3 N/A N/A N/A N/A5 25 10 2/3 N/A N/A N/A N/A6 15 1 2/3 N/A N/A N/A N/A7 15 3 2/3 N/A N/A N/A N/A8 15 6 2/3 N/A N/A N/A N/A9 15 8 2/3 N/A N/A N/A N/A10 15 10 2/3 N/A N/A N/A N/A11 10 1 3/3 67.0% 100.0% 1.03 5.14%12 10 3 3/3 100.0% 100.0% 0.14 0.72%13 10 6 2/3 N/A N/A N/A N/A14 10 8 3/3 100.0% 100.0% 0.08 0.39%15 10 10 2/3 N/A N/A N/A N/A16 5 1 2/3 N/A N/A N/A N/A17 5 3 2/3 N/A N/A N/A N/A18 5 6 2/3 N/A N/A N/A N/A19 5 8 2/3 N/A N/A N/A N/A20 5 10 3/3 33.0% 100.0% 0.77 3.84%21 1 1 3/3 67.0% 100.0% 1.03 5.14%22 1 3 3/3 67.0% 100.0% 0.9 4.52%23 1 6 3/3 67.0% 100.0% 0.83 4.17%24 1 8 2/3 N/A N/A N/A N/A25 1 10 2/3 N/A N/A N/A N/A
Tabella C.7: Dataset2 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipo-logia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 2 ; Epoche Max = 5;
Laurea Magistrale in Informatica 112
C.2. Dataset2
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 2/3 N/A N/A N/A N/A2 25 3 2/3 N/A N/A N/A N/A3 25 6 3/3 67.0% 100.0% 0.83 4.17%4 25 8 2/3 N/A N/A N/A N/A5 25 10 2/3 N/A N/A N/A N/A6 15 1 3/3 67.0% 100.0% 0.83 4.17%7 15 3 3/3 100.0% 100.0% 0.1 0.49%8 15 6 3/3 100.0% 100.0% 0.12 0.59%9 15 8 3/3 100.0% 100.0% 0.1 0.49%10 15 10 2/3 N/A N/A N/A N/A11 10 1 3/3 67.0% 100.0% 0.72 3.58%12 10 3 3/3 67.0% 100.0% 0.74 3.7%13 10 6 3/3 100.0% 100.0% 0.24 1.2%14 10 8 2/3 N/A N/A N/A N/A15 10 10 2/3 N/A N/A N/A N/A16 5 1 3/3 67.0% 100.0% 0.83 4.17%17 5 3 2/3 N/A N/A N/A N/A18 5 6 3/3 67.0% 100.0% 0.9 4.52%19 5 8 3/3 100.0% 100.0% 0.08 0.39%20 5 10 2/3 N/A N/A N/A N/A21 1 1 3/3 67.0% 100.0% 0.86 4.3%22 1 3 2/3 N/A N/A N/A N/A23 1 6 2/3 N/A N/A N/A N/A24 1 8 2/3 N/A N/A N/A N/A25 1 10 2/3 N/A N/A N/A N/A
Tabella C.8: Dataset2 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipo-logia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 3 ; Epoche Max = 6;
Laurea Magistrale in Informatica 113
C.3. Dataset3
C.3 Dataset3
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 4/4 100.0% 100.0% 0.07 0.37%2 25 3 4/4 100.0% 100.0% 0.03 0.15%3 25 6 4/4 100.0% 100.0% 0.09 0.45%4 25 8 4/4 100.0% 100.0% 0.02 0.1%5 25 10 4/4 100.0% 100.0% 0.09 0.45%6 15 1 4/4 100.0% 100.0% 0.09 0.45%7 15 3 4/4 100.0% 100.0% 0.02 0.1%8 15 6 4/4 100.0% 100.0% 0.02 0.08%9 15 8 4/4 100.0% 100.0% 0.0 0.01%10 15 10 2/4 N/A N/A N/A N/A11 10 1 4/4 100.0% 100.0% 0.02 0.08%12 10 3 4/4 100.0% 100.0% 0.51 2.53%13 10 6 4/4 100.0% 100.0% 0.0 0.0%14 10 8 4/4 100.0% 100.0% 0.07 0.37%15 10 10 2/4 N/A N/A N/A N/A16 5 1 4/4 100.0% 100.0% 0.07 0.37%17 5 3 4/4 100.0% 100.0% 0.08 0.39%18 5 6 4/4 100.0% 100.0% 0.07 0.37%19 5 8 4/4 100.0% 100.0% 0.09 0.45%20 5 10 4/4 100.0% 100.0% 0.08 0.39%21 1 1 4/4 100.0% 100.0% 0.86 4.31%22 1 3 4/4 100.0% 100.0% 0.81 4.07%23 1 6 4/4 100.0% 100.0% 0.02 0.08%24 1 8 4/4 100.0% 100.0% 0.07 0.37%25 1 10 2/4 N/A N/A N/A N/A
Tabella C.9: Dataset3 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 2 ; Epoche Max = 5;
Laurea Magistrale in Informatica 114
C.3. Dataset3
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 4/4 100.0% 100.0% 0.09 0.45%2 25 3 4/4 100.0% 100.0% 0.07 0.37%3 25 6 4/4 100.0% 100.0% 0.33 1.67%4 25 8 4/4 100.0% 100.0% 0.51 2.53%5 25 10 4/4 100.0% 100.0% 0.02 0.08%6 15 1 4/4 100.0% 100.0% 0.22 1.11%7 15 3 4/4 100.0% 100.0% 0.23 1.13%8 15 6 4/4 100.0% 100.0% 0.07 0.37%9 15 8 4/4 100.0% 100.0% 0.0 0.01%10 15 10 2/4 N/A N/A N/A N/A11 10 1 4/4 100.0% 100.0% 0.09 0.45%12 10 3 4/4 100.0% 100.0% 0.19 0.96%13 10 6 4/4 100.0% 100.0% 0.51 2.53%14 10 8 4/4 100.0% 100.0% 0.75 3.76%15 10 10 2/4 N/A N/A N/A N/A16 5 1 4/4 100.0% 100.0% 0.19 0.96%17 5 3 4/4 100.0% 100.0% 0.09 0.45%18 5 6 4/4 100.0% 100.0% 0.2 0.98%19 5 8 4/4 100.0% 100.0% 0.49 2.45%20 5 10 4/4 100.0% 100.0% 0.2 0.98%21 1 1 4/4 100.0% 100.0% 0.07 0.37%22 1 3 4/4 100.0% 100.0% 0.07 0.37%23 1 6 4/4 100.0% 100.0% 0.09 0.45%24 1 8 4/4 100.0% 100.0% 0.07 0.37%25 1 10 4/4 100.0% 100.0% 0.02 0.08%
Tabella C.10: Dataset3 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 3 ; Epoche Max = 6;
Laurea Magistrale in Informatica 115
C.3. Dataset3
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 4/4 100.0% 100.0% 0.51 2.53%2 25 3 4/4 100.0% 100.0% 0.02 0.08%3 25 6 4/4 100.0% 100.0% 0.02 0.1%4 25 8 4/4 100.0% 100.0% 0.07 0.37%5 25 10 4/4 100.0% 100.0% 0.02 0.1%6 15 1 4/4 100.0% 100.0% 0.02 0.08%7 15 3 4/4 100.0% 100.0% 0.13 0.65%8 15 6 4/4 100.0% 100.0% 0.02 0.1%9 15 8 4/4 100.0% 100.0% 0.49 2.45%10 15 10 4/4 100.0% 100.0% 0.07 0.37%11 10 1 4/4 100.0% 100.0% 0.09 0.45%12 10 3 4/4 100.0% 100.0% 0.12 0.61%13 10 6 4/4 100.0% 100.0% 0.55 2.73%14 10 8 4/4 100.0% 100.0% 0.02 0.08%15 10 10 4/4 100.0% 100.0% 0.07 0.37%16 5 1 4/4 100.0% 100.0% 0.0 0.01%17 5 3 4/4 100.0% 100.0% 0.49 2.45%18 5 6 4/4 100.0% 100.0% 0.09 0.45%19 5 8 4/4 100.0% 100.0% 0.61 34%20 5 10 4/4 100.0% 100.0% 0.49 2.45%21 1 1 4/4 100.0% 100.0% 0.02 0.1%22 1 3 4/4 100.0% 100.0% 0.53 2.65%23 1 6 4/4 100.0% 100.0% 0.09 0.45%24 1 8 4/4 100.0% 100.0% 0.2 0.98%25 1 10 4/4 100.0% 100.0% 0.49 2.45%
Tabella C.11: Dataset3 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 2 ; Epoche Max = 5;
Laurea Magistrale in Informatica 116
C.3. Dataset3
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 4/4 100.0% 100.0% 0.12 0.61%2 25 3 4/4 100.0% 100.0% 0.02 0.1%3 25 6 4/4 100.0% 100.0% 0.53 2.65%4 25 8 4/4 100.0% 100.0% 0.09 0.45%5 25 10 4/4 100.0% 100.0% 0.51 2.53%6 15 1 4/4 100.0% 100.0% 0.02 0.08%7 15 3 4/4 100.0% 100.0% 0.15 0.75%8 15 6 4/4 100.0% 100.0% 0.46 2.28%9 15 8 4/4 100.0% 100.0% 0.07 0.37%10 15 10 4/4 100.0% 100.0% 0.07 0.37%11 10 1 4/4 100.0% 100.0% 0.09 0.45%12 10 3 4/4 100.0% 100.0% 0.07 0.37%13 10 6 4/4 100.0% 100.0% 0.09 0.45%14 10 8 4/4 100.0% 100.0% 0.49 2.45%15 10 10 4/4 100.0% 100.0% 0.07 0.37%16 5 1 4/4 100.0% 100.0% 0.07 0.37%17 5 3 4/4 100.0% 100.0% 0.07 0.37%18 5 6 4/4 100.0% 100.0% 0.02 0.08%19 5 8 4/4 100.0% 100.0% 0.07 0.37%20 5 10 4/4 100.0% 100.0% 0.0 0.01%21 1 1 4/4 100.0% 100.0% 0.07 0.37%22 1 3 4/4 100.0% 100.0% 0.09 0.45%23 1 6 4/4 100.0% 100.0% 0.0 0.01%24 1 8 4/4 100.0% 100.0% 0.0 0.01%25 1 10 4/4 100.0% 100.0% 0.02 0.08%
Tabella C.12: Dataset3 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 3 ; Epoche Max = 6;
Laurea Magistrale in Informatica 117
C.4. Dataset4
C.4 Dataset4
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 4/4 100.0% 100.0% 0.09 0.45%2 25 3 4/4 100.0% 100.0% 0.09 0.45%3 25 6 4/4 100.0% 100.0% 0.02 0.1%4 25 8 4/4 100.0% 100.0% 0.07 0.37%5 25 10 4/4 100.0% 100.0% 0.09 0.45%6 15 1 4/4 100.0% 100.0% 0.07 0.37%7 15 3 4/4 100.0% 100.0% 0.09 0.45%8 15 6 4/4 100.0% 100.0% 0.02 0.08%9 15 8 4/4 100.0% 100.0% 0.02 0.08%10 15 10 2/4 N/A N/A N/A N/A11 10 1 4/4 100.0% 100.0% 0.09 0.45%12 10 3 4/4 100.0% 100.0% 0.02 0.08%13 10 6 4/4 100.0% 100.0% 0.09 0.45%14 10 8 4/4 100.0% 100.0% 0.55 2.73%15 10 10 2/4 N/A N/A N/A N/A16 5 1 4/4 100.0% 100.0% 0.02 0.08%17 5 3 4/4 100.0% 100.0% 0.22 1.1%18 5 6 4/4 100.0% 100.0% 0.0 0.01%19 5 8 4/4 100.0% 100.0% 0.09 0.45%20 5 10 2/4 N/A N/A N/A N/A21 1 1 4/4 100.0% 100.0% 0.51 2.53%22 1 3 4/4 100.0% 100.0% 0.0 0.01%23 1 6 4/4 100.0% 100.0% 0.8 3.98%24 1 8 4/4 100.0% 100.0% 0.07 0.37%25 1 10 4/4 100.0% 100.0% 0.15 0.73%
Tabella C.13: Dataset4 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 2 ; Epoche Max = 5;
Laurea Magistrale in Informatica 118
C.4. Dataset4
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 4/4 100.0% 100.0% 0.09 0.45%2 25 3 4/4 100.0% 100.0% 0.0 0.01%3 25 6 4/4 100.0% 100.0% 0.0 0.01%4 25 8 4/4 100.0% 100.0% 0.07 0.37%5 25 10 4/4 100.0% 100.0% 0.02 0.1%6 15 1 4/4 100.0% 100.0% 0.94 4.72%7 15 3 4/4 100.0% 100.0% 0.09 0.45%8 15 6 4/4 100.0% 100.0% 0.02 0.1%9 15 8 4/4 100.0% 100.0% 0.07 0.37%10 15 10 2/4 N/A N/A N/A N/A11 10 1 4/4 100.0% 100.0% 0.0 0.01%12 10 3 4/4 100.0% 100.0% 0.51 2.53%13 10 6 4/4 100.0% 100.0% 0.49 2.45%14 10 8 4/4 100.0% 100.0% 0.02 0.1%15 10 10 2/4 N/A N/A N/A N/A16 5 1 4/4 100.0% 100.0% 0.63 3.16%17 5 3 4/4 100.0% 100.0% 0.72 3.59%18 5 6 4/4 100.0% 100.0% 0.07 0.37%19 5 8 2/4 N/A N/A N/A N/A20 5 10 4/4 100.0% 100.0% 0.09 0.45%21 1 1 4/4 100.0% 100.0% 0.02 0.1%22 1 3 4/4 100.0% 100.0% 0.0 0.01%23 1 6 4/4 100.0% 100.0% 0.07 0.37%24 1 8 4/4 100.0% 100.0% 0.03 0.15%25 1 10 4/4 100.0% 100.0% 0.09 0.45%
Tabella C.14: Dataset4 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 3 ; Epoche Max = 6;
Laurea Magistrale in Informatica 119
C.4. Dataset4
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 4/4 100.0% 100.0% 0.8 3.99%2 25 3 4/4 100.0% 100.0% 0.07 0.37%3 25 6 4/4 100.0% 100.0% 0.72 3.58%4 25 8 4/4 100.0% 100.0% 0.27 1.33%5 25 10 4/4 100.0% 100.0% 0.02 0.08%6 15 1 4/4 100.0% 100.0% 0.55 2.73%7 15 3 4/4 100.0% 100.0% 0.07 0.37%8 15 6 4/4 100.0% 100.0% 0.02 0.1%9 15 8 4/4 100.0% 100.0% 0.07 0.37%10 15 10 4/4 100.0% 100.0% 0.09 0.45%11 10 1 4/4 100.0% 100.0% 0.09 0.45%12 10 3 4/4 100.0% 100.0% 0.07 0.37%13 10 6 4/4 100.0% 100.0% 0.07 0.37%14 10 8 4/4 100.0% 100.0% 0.46 2.32%15 10 10 4/4 100.0% 100.0% 0.09 0.45%16 5 1 4/4 100.0% 100.0% 0.07 0.37%17 5 3 4/4 100.0% 100.0% 0.09 0.45%18 5 6 4/4 100.0% 100.0% 0.02 0.1%19 5 8 4/4 100.0% 100.0% 0.49 2.45%20 5 10 4/4 100.0% 100.0% 0.02 0.08%21 1 1 4/4 100.0% 100.0% 0.02 0.1%22 1 3 4/4 100.0% 100.0% 0.02 0.1%23 1 6 4/4 100.0% 100.0% 0.2 0.98%24 1 8 4/4 100.0% 100.0% 0.22 1.1%25 1 10 4/4 100.0% 100.0% 0.02 0.1%
Tabella C.15: Dataset4 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 2 ; Epoche Max = 5;
Laurea Magistrale in Informatica 120
C.4. Dataset4
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 2/4 N/A N/A N/A N/A2 25 3 4/4 100.0% 100.0% 0.09 0.45%3 25 6 4/4 100.0% 100.0% 0.07 0.37%4 25 8 4/4 100.0% 100.0% 0.46 2.29%5 25 10 4/4 100.0% 100.0% 0.09 0.45%6 15 1 4/4 100.0% 100.0% 0.0 0.01%7 15 3 4/4 100.0% 100.0% 0.09 0.45%8 15 6 4/4 100.0% 100.0% 0.19 0.93%9 15 8 4/4 100.0% 100.0% 0.13 0.65%10 15 10 4/4 100.0% 100.0% 0.07 0.37%11 10 1 4/4 100.0% 100.0% 0.49 2.45%12 10 3 4/4 100.0% 100.0% 0.09 0.45%13 10 6 4/4 100.0% 100.0% 0.2 1.01%14 10 8 4/4 100.0% 100.0% 0.09 0.45%15 10 10 4/4 100.0% 100.0% 0.09 0.45%16 5 1 4/4 100.0% 100.0% 0.07 0.37%17 5 3 4/4 100.0% 100.0% 0.07 0.37%18 5 6 4/4 100.0% 100.0% 0.09 0.45%19 5 8 4/4 100.0% 100.0% 0.02 0.08%20 5 10 4/4 100.0% 100.0% 0.07 0.37%21 1 1 4/4 100.0% 100.0% 0.22 1.1%22 1 3 4/4 100.0% 100.0% 0.09 0.45%23 1 6 4/4 100.0% 100.0% 0.55 2.73%24 1 8 4/4 100.0% 100.0% 0.0 0.01%25 1 10 4/4 100.0% 100.0% 0.02 0.08%
Tabella C.16: Dataset4 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 3 ; Epoche Max = 6;
Laurea Magistrale in Informatica 121
C.5. Dataset5
C.5 Dataset5
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 3/3 100.0% 100.0% 0.0 0.0%2 25 3 3/3 100.0% 100.0% 0.0 0.0%3 25 6 3/3 100.0% 100.0% 0.0 0.0%4 25 8 3/3 100.0% 100.0% 0.0 0.0%5 25 10 2/3 N/A N/A N/A N/A6 15 1 3/3 100.0% 100.0% 0.0 0.0%7 15 3 3/3 100.0% 100.0% 0.19 0.97%8 15 6 3/3 100.0% 100.0% 0.0 0.0%9 15 8 3/3 100.0% 100.0% 0.0 0.0%10 15 10 3/3 100.0% 100.0% 0.1 0.48%11 10 1 3/3 100.0% 100.0% 0.01 0.06%12 10 3 3/3 100.0% 100.0% 0.0 0.0%13 10 6 3/3 100.0% 100.0% 0.0 0.0%14 10 8 3/3 100.0% 100.0% 0.0 0.0%15 10 10 3/3 100.0% 100.0% 0.0 0.0%16 5 1 3/3 100.0% 100.0% 0.0 0.0%17 5 3 3/3 100.0% 100.0% 0.0 0.0%18 5 6 3/3 100.0% 100.0% 0.0 0.0%19 5 8 3/3 100.0% 100.0% 0.0 0.0%20 5 10 3/3 100.0% 100.0% 0.01 0.06%21 1 1 3/3 100.0% 100.0% 0.0 0.0%22 1 3 3/3 100.0% 100.0% 0.0 0.0%23 1 6 3/3 100.0% 100.0% 0.0 0.0%24 1 8 3/3 100.0% 100.0% 0.0 0.0%25 1 10 3/3 100.0% 100.0% 0.0 0.0%
Tabella C.17: Dataset5 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 2 ; Epoche Max = 5;
Laurea Magistrale in Informatica 122
C.5. Dataset5
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 3/3 100.0% 100.0% 0.0 0.0%2 25 3 3/3 100.0% 100.0% 0.0 0.0%3 25 6 3/3 100.0% 100.0% 0.0 0.0%4 25 8 3/3 100.0% 100.0% 0.0 0.0%5 25 10 3/3 100.0% 100.0% 0.0 0.0%6 15 1 3/3 100.0% 100.0% 0.0 0.0%7 15 3 3/3 100.0% 100.0% 0.0 0.0%8 15 6 3/3 100.0% 100.0% 0.0 0.0%9 15 8 3/3 100.0% 100.0% 0.0 0.0%10 15 10 3/3 100.0% 100.0% 0.0 0.0%11 10 1 3/3 100.0% 100.0% 0.01 0.06%12 10 3 3/3 100.0% 100.0% 0.01 0.06%13 10 6 3/3 100.0% 100.0% 0.1 0.48%14 10 8 3/3 100.0% 100.0% 0.0 0.0%15 10 10 3/3 100.0% 100.0% 0.0 0.0%16 5 1 3/3 100.0% 100.0% 0.0 0.0%17 5 3 3/3 100.0% 100.0% 0.43 2.16%18 5 6 3/3 100.0% 100.0% 0.0 0.0%19 5 8 3/3 100.0% 100.0% 0.01 0.06%20 5 10 3/3 100.0% 100.0% 0.0 0.0%21 1 1 3/3 100.0% 100.0% 0.0 0.0%22 1 3 3/3 100.0% 100.0% 0.01 0.06%23 1 6 3/3 100.0% 100.0% 0.0 0.0%24 1 8 3/3 100.0% 100.0% 0.0 0.0%25 1 10 3/3 100.0% 100.0% 0.0 0.0%
Tabella C.18: Dataset5 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 3 ; Epoche Max = 6;
Laurea Magistrale in Informatica 123
C.5. Dataset5
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 2/3 N/A N/A N/A N/A2 25 3 2/3 N/A N/A N/A N/A3 25 6 2/3 N/A N/A N/A N/A4 25 8 3/3 100.0% 100.0% 0.0 0.0%5 25 10 2/3 N/A N/A N/A N/A6 15 1 3/3 100.0% 100.0% 0.0 0.0%7 15 3 3/3 100.0% 100.0% 0.1 0.48%8 15 6 3/3 100.0% 100.0% 0.0 0.0%9 15 8 3/3 100.0% 100.0% 0.01 0.06%10 15 10 2/3 N/A N/A N/A N/A11 10 1 3/3 100.0% 100.0% 0.0 0.0%12 10 3 3/3 100.0% 100.0% 0.0 0.0%13 10 6 3/3 100.0% 100.0% 0.0 0.0%14 10 8 3/3 100.0% 100.0% 0.0 0.0%15 10 10 2/3 N/A N/A N/A N/A16 5 1 3/3 100.0% 100.0% 0.0 0.0%17 5 3 3/3 100.0% 100.0% 0.01 0.06%18 5 6 3/3 100.0% 100.0% 0.0 0.0%19 5 8 3/3 100.0% 100.0% 0.01 0.06%20 5 10 2/3 N/A N/A N/A N/A21 1 1 3/3 100.0% 100.0% 0.0 0.0%22 1 3 3/3 100.0% 100.0% 0.0 0.0%23 1 6 3/3 100.0% 100.0% 0.0 0.0%24 1 8 3/3 100.0% 100.0% 0.0 0.0%25 1 10 2/3 N/A N/A N/A N/A
Tabella C.19: Dataset5 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 2 ; Epoche Max = 5;
Laurea Magistrale in Informatica 124
C.5. Dataset5
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 2/3 N/A N/A N/A N/A2 25 3 2/3 N/A N/A N/A N/A3 25 6 3/3 100.0% 100.0% 0.0 0.0%4 25 8 3/3 100.0% 100.0% 0.01 0.06%5 25 10 2/3 N/A N/A N/A N/A6 15 1 3/3 100.0% 100.0% 0.0 0.0%7 15 3 3/3 100.0% 100.0% 0.0 0.0%8 15 6 3/3 100.0% 100.0% 0.0 0.0%9 15 8 3/3 100.0% 100.0% 0.0 0.0%10 15 10 2/3 N/A N/A N/A N/A11 10 1 3/3 100.0% 100.0% 0.01 0.06%12 10 3 3/3 100.0% 100.0% 0.0 0.0%13 10 6 3/3 100.0% 100.0% 0.01 0.06%14 10 8 3/3 100.0% 100.0% 0.0 0.0%15 10 10 2/3 N/A N/A N/A N/A16 5 1 3/3 100.0% 100.0% 0.0 0.0%17 5 3 3/3 100.0% 100.0% 0.0 0.0%18 5 6 3/3 100.0% 100.0% 0.1 0.48%19 5 8 3/3 100.0% 100.0% 0.0 0.0%20 5 10 2/3 N/A N/A N/A N/A21 1 1 3/3 100.0% 100.0% 0.0 0.0%22 1 3 3/3 100.0% 100.0% 0.0 0.0%23 1 6 3/3 100.0% 100.0% 0.0 0.0%24 1 8 3/3 100.0% 100.0% 0.0 0.0%25 1 10 2/3 N/A N/A N/A N/A
Tabella C.20: Dataset5 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 3 ; Epoche Max = 6;
Laurea Magistrale in Informatica 125
C.6. Dataset6
C.6 Dataset6
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 2/2 100.0% 100.0% 0.0 0.0%2 25 3 2/2 100.0% 100.0% 0.0 0.0%3 25 6 2/2 100.0% 100.0% 0.0 0.0%4 25 8 2/2 100.0% 100.0% 0.0 0.0%5 25 10 2/2 100.0% 100.0% 0.0 0.0%6 15 1 3/2 N/A N/A N/A N/A7 15 3 2/2 100.0% 100.0% 0.0 0.0%8 15 6 2/2 100.0% 100.0% 0.0 0.0%9 15 8 2/2 100.0% 100.0% 0.0 0.0%10 15 10 2/2 100.0% 100.0% 0.0 0.0%11 10 1 3/2 N/A N/A N/A N/A12 10 3 2/2 100.0% 100.0% 0.0 0.0%13 10 6 2/2 100.0% 100.0% 0.0 0.0%14 10 8 2/2 100.0% 100.0% 0.09 0.46%15 10 10 2/2 100.0% 100.0% 0.0 0.0%16 5 1 2/2 100.0% 100.0% 0.0 0.0%17 5 3 2/2 100.0% 100.0% 0.0 0.0%18 5 6 2/2 100.0% 100.0% 0.09 0.46%19 5 8 2/2 100.0% 100.0% 0.0 0.0%20 5 10 2/2 100.0% 100.0% 0.0 0.0%21 1 1 2/2 100.0% 100.0% 0.05 0.23%22 1 3 3/2 N/A N/A N/A N/A23 1 6 2/2 100.0% 100.0% 0.0 0.0%24 1 8 2/2 100.0% 100.0% 0.0 0.0%25 1 10 3/2 N/A N/A N/A N/A
Tabella C.21: Dataset6 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 2 ; Epoche Max = 5;
Laurea Magistrale in Informatica 126
C.6. Dataset6
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 3/2 N/A N/A N/A N/A2 25 3 2/2 100.0% 100.0% 0.05 0.23%3 25 6 2/2 100.0% 100.0% 0.0 0.0%4 25 8 2/2 100.0% 100.0% 0.0 0.0%5 25 10 2/2 100.0% 100.0% 0.0 0.0%6 15 1 2/2 100.0% 100.0% 0.05 0.23%7 15 3 2/2 100.0% 100.0% 0.0 0.0%8 15 6 2/2 100.0% 100.0% 0.0 0.0%9 15 8 2/2 100.0% 100.0% 0.0 0.0%10 15 10 2/2 100.0% 100.0% 0.0 0.0%11 10 1 2/2 100.0% 100.0% 0.0 0.0%12 10 3 2/2 100.0% 100.0% 0.0 0.0%13 10 6 2/2 100.0% 100.0% 0.0 0.0%14 10 8 2/2 100.0% 100.0% 0.0 0.0%15 10 10 2/2 100.0% 100.0% 0.05 0.23%16 5 1 2/2 100.0% 100.0% 0.0 0.0%17 5 3 3/2 N/A N/A N/A N/A18 5 6 2/2 100.0% 100.0% 0.0 0.0%19 5 8 3/2 N/A N/A N/A N/A20 5 10 2/2 100.0% 100.0% 0.0 0.0%21 1 1 2/2 100.0% 100.0% 0.0 0.0%22 1 3 2/2 100.0% 100.0% 0.11 0.54%23 1 6 3/2 N/A N/A N/A N/A24 1 8 2/2 100.0% 100.0% 0.0 0.0%25 1 10 2/2 100.0% 100.0% 0.0 0.0%
Tabella C.22: Dataset6 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 3 ; Epoche Max = 6;
Laurea Magistrale in Informatica 127
C.6. Dataset6
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 2/2 100.0% 100.0% 0.0 0.0%2 25 3 2/2 100.0% 100.0% 0.0 0.0%3 25 6 2/2 100.0% 100.0% 0.0 0.0%4 25 8 2/2 100.0% 100.0% 0.0 0.0%5 25 10 2/2 100.0% 100.0% 0.0 0.0%6 15 1 2/2 100.0% 100.0% 0.0 0.0%7 15 3 2/2 100.0% 100.0% 0.0 0.0%8 15 6 2/2 100.0% 100.0% 0.0 0.0%9 15 8 2/2 100.0% 100.0% 0.0 0.0%10 15 10 2/2 100.0% 100.0% 0.0 0.0%11 10 1 2/2 100.0% 100.0% 0.0 0.0%12 10 3 2/2 100.0% 100.0% 0.0 0.0%13 10 6 2/2 100.0% 100.0% 0.0 0.0%14 10 8 2/2 100.0% 100.0% 0.2 1%15 10 10 2/2 100.0% 100.0% 0.0 0.0%16 5 1 2/2 100.0% 100.0% 0.0 0.0%17 5 3 3/2 N/A N/A N/A N/A18 5 6 2/2 100.0% 100.0% 0.0 0.0%19 5 8 2/2 100.0% 100.0% 0.0 0.0%20 5 10 2/2 100.0% 100.0% 0.0 0.0%21 1 1 2/2 100.0% 100.0% 0.0 0.0%22 1 3 2/2 100.0% 100.0% 0.05 0.23%23 1 6 2/2 100.0% 100.0% 0.0 0.0%24 1 8 2/2 100.0% 100.0% 0.0 0.0%25 1 10 2/2 100.0% 100.0% 0.09 0.46%
Tabella C.23: Dataset6 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 2 ; Epoche Max = 5;
Laurea Magistrale in Informatica 128
C.6. Dataset6
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 2/2 100.0% 100.0% 0.0 0.0%2 25 3 2/2 100.0% 100.0% 0.05 0.23%3 25 6 2/2 100.0% 100.0% 0.0 0.0%4 25 8 2/2 100.0% 100.0% 0.0 0.0%5 25 10 2/2 100.0% 100.0% 0.0 0.0%6 15 1 2/2 100.0% 100.0% 0.0 0.0%7 15 3 2/2 100.0% 100.0% 0.0 0.0%8 15 6 2/2 100.0% 100.0% 0.0 0.0%9 15 8 2/2 100.0% 100.0% 0.0 0.0%10 15 10 2/2 100.0% 100.0% 0.0 0.0%11 10 1 2/2 100.0% 100.0% 0.09 0.46%12 10 3 2/2 100.0% 100.0% 0.09 0.46%13 10 6 2/2 100.0% 100.0% 0.0 0.0%14 10 8 2/2 100.0% 100.0% 0.0 0.0%15 10 10 2/2 100.0% 100.0% 0.09 0.46%16 5 1 2/2 100.0% 100.0% 0.0 0.0%17 5 3 2/2 100.0% 100.0% 0.0 0.0%18 5 6 2/2 100.0% 100.0% 0.05 0.23%19 5 8 3/2 N/A N/A N/A N/A20 5 10 2/2 100.0% 100.0% 0.0 0.0%21 1 1 2/2 100.0% 100.0% 0.0 0.0%22 1 3 2/2 100.0% 100.0% 0.0 0.0%23 1 6 2/2 100.0% 100.0% 0.0 0.0%24 1 8 2/2 100.0% 100.0% 0.0 0.0%25 1 10 2/2 100.0% 100.0% 0.0 0.0%
Tabella C.24: Dataset6 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 3 ; Epoche Max = 6;
Laurea Magistrale in Informatica 129
C.7. Dataset7
C.7 Dataset7
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 6/6 92.0% 100.0% 2.3 3.84%2 25 3 6/6 100.0% 100.0% 1.61 2.68%3 25 6 6/6 100.0% 100.0% 0.6 1.0%4 25 8 6/6 100.0% 100.0% 1.08 1.79%5 25 10 6/6 83.0% 100.0% 3.09 5.16%6 15 1 6/6 100.0% 100.0% 1.09 1.82%7 15 3 6/6 100.0% 100.0% 1.75 2.91%8 15 6 6/6 100.0% 100.0% 2.52 4.19%9 15 8 6/6 100.0% 100.0% 1.17 1.95%10 15 10 6/6 100.0% 100.0% 1.05 1.74%11 10 1 6/6 100.0% 100.0% 1.42 2.36%12 10 3 7/6 N/A N/A N/A N/A13 10 6 6/6 100.0% 100.0% 1.52 2.53%14 10 8 6/6 100.0% 100.0% 2.75 4.59%15 10 10 6/6 100.0% 100.0% 1.42 2.36%16 5 1 6/6 100.0% 100.0% 1.64 2.74%17 5 3 6/6 100.0% 100.0% 1.74 2.9%18 5 6 7/6 N/A N/A N/A N/A19 5 8 6/6 100.0% 100.0% 0.42 0.7%20 5 10 6/6 100.0% 100.0% 0.82 1.37%21 1 1 6/6 92.0% 100.0% 2.69 4.49%22 1 3 6/6 100.0% 100.0% 0.83 1.39%23 1 6 6/6 100.0% 100.0% 2.9 4.84%24 1 8 6/6 100.0% 100.0% 2.39 3.99%25 1 10 6/6 100.0% 100.0% 1.24 2.06%
Tabella C.25: Dataset7 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 2 ; Epoche Max = 8;
Laurea Magistrale in Informatica 130
C.7. Dataset7
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 6/6 100.0% 100.0% 1.46 2.43%2 25 3 6/6 100.0% 100.0% 1.93 3.22%3 25 6 6/6 100.0% 100.0% 1.4 2.33%4 25 8 6/6 100.0% 100.0% 1.27 2.11%5 25 10 6/6 100.0% 100.0% 2.18 3.64%6 15 1 6/6 92.0% 100.0% 1.21 2.01%7 15 3 6/6 100.0% 100.0% 2.82 4.7%8 15 6 6/6 100.0% 100.0% 0.99 1.65%9 15 8 6/6 100.0% 100.0% 1.2 2.0%10 15 10 6/6 100.0% 100.0% 2.1 3.5%11 10 1 6/6 100.0% 100.0% 3.12 5.2%12 10 3 6/6 100.0% 100.0% 2.36 3.93%13 10 6 6/6 100.0% 100.0% 0.78 1.31%14 10 8 6/6 100.0% 100.0% 1.56 2.61%15 10 10 6/6 100.0% 100.0% 1.99 3.32%16 5 1 6/6 100.0% 100.0% 2.13 3.54%17 5 3 6/6 100.0% 100.0% 2.59 4.32%18 5 6 7/6 N/A N/A N/A N/A19 5 8 6/6 100.0% 100.0% 1.06 1.77%20 5 10 7/6 N/A N/A N/A N/A21 1 1 6/6 92.0% 100.0% 1.83 3.04%22 1 3 6/6 100.0% 100.0% 1.04 1.73%23 1 6 6/6 100.0% 100.0% 0.89 1.49%24 1 8 6/6 100.0% 100.0% 1.21 2.01%25 1 10 6/6 100.0% 100.0% 3.42 5.7%
Tabella C.26: Dataset7 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 4 ; Epoche Max = 8;
Laurea Magistrale in Informatica 131
C.7. Dataset7
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 6/6 100.0% 100.0% 0.35 0.58%2 25 3 6/6 100.0% 100.0% 3.0 5.0%3 25 6 6/6 100.0% 100.0% 2.64 4.39%4 25 8 6/6 100.0% 100.0% 1.58 2.64%5 25 10 6/6 100.0% 100.0% 0.96 1.61%6 15 1 6/6 100.0% 100.0% 2.12 3.53%7 15 3 6/6 100.0% 100.0% 2.23 3.71%8 15 6 6/6 100.0% 100.0% 1.25 2.09%9 15 8 6/6 100.0% 100.0% 1.47 2.45%10 15 10 6/6 100.0% 100.0% 0.62 1.03%11 10 1 6/6 100.0% 100.0% 2.75 4.58%12 10 3 6/6 100.0% 100.0% 2.28 3.81%13 10 6 6/6 100.0% 100.0% 1.32 2.2%14 10 8 6/6 100.0% 100.0% 1.14 1.9%15 10 10 6/6 100.0% 100.0% 0.95 1.58%16 5 1 6/6 100.0% 100.0% 1.48 2.47%17 5 3 6/6 100.0% 100.0% 1.31 2.18%18 5 6 6/6 100.0% 100.0% 0.94 1.56%19 5 8 6/6 100.0% 100.0% 3.44 5.73%20 5 10 6/6 100.0% 100.0% 1.74 2.9%21 1 1 6/6 100.0% 100.0% 1.98 3.29%22 1 3 6/6 100.0% 100.0% 1.83 3.05%23 1 6 6/6 100.0% 100.0% 0.86 1.43%24 1 8 6/6 100.0% 100.0% 2.53 4.21%25 1 10 6/6 100.0% 100.0% 1.07 1.79%
Tabella C.27: Dataset7 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 2 ; Epoche Max = 8;
Laurea Magistrale in Informatica 132
C.7. Dataset7
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 6/6 100.0% 100.0% 1.32 2.2%2 25 3 6/6 100.0% 100.0% 1.42 2.37%3 25 6 6/6 100.0% 100.0% 1.28 2.13%4 25 8 6/6 100.0% 100.0% 1.32 2.2%5 25 10 6/6 100.0% 100.0% 1.11 1.85%6 15 1 6/6 100.0% 100.0% 2.22 3.71%7 15 3 6/6 100.0% 100.0% 1.62 2.7%8 15 6 6/6 100.0% 100.0% 1.86 3.1%9 15 8 6/6 100.0% 100.0% 2.28 3.8%10 15 10 6/6 100.0% 100.0% 2.07 3.44%11 10 1 6/6 100.0% 100.0% 1.93 3.22%12 10 3 6/6 100.0% 100.0% 1.34 2.24%13 10 6 6/6 100.0% 100.0% 2.0 3.33%14 10 8 6/6 100.0% 100.0% 1.38 2.29%15 10 10 6/6 100.0% 100.0% 1.11 1.85%16 5 1 6/6 100.0% 100.0% 1.11 1.84%17 5 3 6/6 100.0% 100.0% 1.7 2.83%18 5 6 6/6 100.0% 100.0% 1.16 1.94%19 5 8 6/6 100.0% 100.0% 1.71 2.84%20 5 10 6/6 100.0% 100.0% 2.36 3.93%21 1 1 6/6 100.0% 100.0% 0.97 1.61%22 1 3 6/6 92.0% 100.0% 3.16 5.27%23 1 6 6/6 100.0% 100.0% 1.23 2.05%24 1 8 6/6 100.0% 100.0% 1.46 2.44%25 1 10 6/6 100.0% 100.0% 0.68 1.14%
Tabella C.28: Dataset7 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 4 ; Epoche Max = 8;
Laurea Magistrale in Informatica 133
C.8. Dataset8
C.8 Dataset8
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 3/3 100.0% 100.0% 0.03 0.1%2 25 3 3/3 100.0% 100.0% 0.03 0.1%3 25 6 3/3 100.0% 100.0% 0.0 0.0%4 25 8 3/3 100.0% 100.0% 0.03 0.1%5 25 10 3/3 100.0% 100.0% 0.11 0.36%6 15 1 3/3 100.0% 100.0% 0.25 0.82%7 15 3 3/3 100.0% 100.0% 0.0 0.0%8 15 6 3/3 100.0% 100.0% 0.0 0.0%9 15 8 3/3 100.0% 100.0% 0.11 0.36%10 15 10 3/3 100.0% 100.0% 0.03 0.1%11 10 1 3/3 100.0% 100.0% 0.03 0.1%12 10 3 3/3 100.0% 100.0% 0.0 0.0%13 10 6 3/3 100.0% 100.0% 0.0 0.0%14 10 8 3/3 100.0% 100.0% 0.11 0.36%15 10 10 3/3 100.0% 100.0% 0.03 0.1%16 5 1 3/3 100.0% 100.0% 0.11 0.36%17 5 3 3/3 100.0% 100.0% 0.0 0.0%18 5 6 3/3 100.0% 100.0% 0.11 0.36%19 5 8 3/3 100.0% 100.0% 0.03 0.1%20 5 10 3/3 100.0% 100.0% 0.0 0.0%21 1 1 3/3 100.0% 100.0% 0.17 0.56%22 1 3 3/3 100.0% 100.0% 0.03 0.1%23 1 6 3/3 100.0% 100.0% 0.11 0.36%24 1 8 3/3 100.0% 100.0% 0.11 0.36%25 1 10 3/3 100.0% 100.0% 0.0 0.0%
Tabella C.29: Dataset8 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 2 ; Epoche Max = 5;
Laurea Magistrale in Informatica 134
C.8. Dataset8
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 3/3 100.0% 100.0% 0.0 0.0%2 25 3 3/3 100.0% 100.0% 0.0 0.0%3 25 6 3/3 100.0% 100.0% 0.0 0.0%4 25 8 3/3 100.0% 100.0% 0.08 0.26%5 25 10 3/3 100.0% 100.0% 0.03 0.1%6 15 1 3/3 100.0% 100.0% 0.03 0.1%7 15 3 3/3 100.0% 100.0% 0.11 0.36%8 15 6 3/3 100.0% 100.0% 0.4 1.35%9 15 8 3/3 100.0% 100.0% 0.03 0.1%10 15 10 3/3 100.0% 100.0% 0.11 0.36%11 10 1 3/3 100.0% 100.0% 0.03 0.1%12 10 3 3/3 100.0% 100.0% 0.03 0.1%13 10 6 3/3 100.0% 100.0% 0.0 0.0%14 10 8 3/3 100.0% 100.0% 0.03 0.1%15 10 10 3/3 100.0% 100.0% 0.11 0.36%16 5 1 3/3 100.0% 100.0% 0.0 0.0%17 5 3 3/3 100.0% 100.0% 0.0 0.0%18 5 6 3/3 100.0% 100.0% 0.08 0.26%19 5 8 3/3 100.0% 100.0% 0.03 0.1%20 5 10 3/3 100.0% 100.0% 0.03 0.1%21 1 1 3/3 100.0% 100.0% 0.11 0.36%22 1 3 3/3 100.0% 100.0% 0.0 0.0%23 1 6 3/3 100.0% 100.0% 0.03 0.1%24 1 8 3/3 100.0% 100.0% 0.03 0.1%25 1 10 3/3 100.0% 100.0% 0.0 0.0%
Tabella C.30: Dataset8 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 3 ; Epoche Max = 6;
Laurea Magistrale in Informatica 135
C.8. Dataset8
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 3/3 100.0% 100.0% 0.03 0.1%2 25 3 3/3 100.0% 100.0% 0.0 0.0%3 25 6 3/3 100.0% 100.0% 0.11 0.36%4 25 8 3/3 100.0% 100.0% 0.0 0.0%5 25 10 3/3 100.0% 100.0% 0.0 0.0%6 15 1 3/3 100.0% 100.0% 0.11 0.36%7 15 3 3/3 100.0% 100.0% 0.11 0.36%8 15 6 3/3 100.0% 100.0% 0.0 0.0%9 15 8 3/3 100.0% 100.0% 0.11 0.36%10 15 10 3/3 100.0% 100.0% 0.11 0.36%11 10 1 3/3 100.0% 100.0% 0.11 0.36%12 10 3 3/3 100.0% 100.0% 0.0 0.0%13 10 6 3/3 100.0% 100.0% 0.0 0.0%14 10 8 3/3 100.0% 100.0% 0.03 0.1%15 10 10 3/3 100.0% 100.0% 0.11 0.36%16 5 1 3/3 100.0% 100.0% 0.0 0.0%17 5 3 3/3 100.0% 100.0% 0.11 0.36%18 5 6 3/3 100.0% 100.0% 0.0 0.0%19 5 8 3/3 100.0% 100.0% 0.11 0.36%20 5 10 3/3 100.0% 100.0% 0.11 0.36%21 1 1 3/3 100.0% 100.0% 0.11 0.36%22 1 3 3/3 100.0% 100.0% 0.11 0.36%23 1 6 3/3 100.0% 100.0% 0.08 0.26%24 1 8 3/3 100.0% 100.0% 0.11 0.36%25 1 10 3/3 100.0% 100.0% 0.11 0.36%
Tabella C.31: Dataset8 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 2 ; Epoche Max = 5;
Laurea Magistrale in Informatica 136
C.8. Dataset8
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 3/3 100.0% 100.0% 0.0 0.0%2 25 3 3/3 100.0% 100.0% 0.0 0.0%3 25 6 3/3 100.0% 100.0% 0.11 0.36%4 25 8 3/3 100.0% 100.0% 0.11 0.36%5 25 10 3/3 100.0% 100.0% 0.11 0.36%6 15 1 3/3 100.0% 100.0% 0.11 0.36%7 15 3 3/3 100.0% 100.0% 0.11 0.36%8 15 6 3/3 100.0% 100.0% 0.11 0.36%9 15 8 3/3 100.0% 100.0% 0.11 0.36%10 15 10 3/3 100.0% 100.0% 0.11 0.36%11 10 1 3/3 100.0% 100.0% 0.11 0.36%12 10 3 3/3 100.0% 100.0% 0.11 0.36%13 10 6 3/3 100.0% 100.0% 0.11 0.36%14 10 8 3/3 100.0% 100.0% 0.11 0.36%15 10 10 3/3 100.0% 100.0% 0.0 0.0%16 5 1 3/3 100.0% 100.0% 0.11 0.36%17 5 3 3/3 100.0% 100.0% 0.11 0.36%18 5 6 3/3 100.0% 100.0% 0.0 0.0%19 5 8 3/3 100.0% 100.0% 0.11 0.36%20 5 10 3/3 100.0% 100.0% 0.11 0.36%21 1 1 3/3 100.0% 100.0% 0.37 1.25%22 1 3 3/3 100.0% 100.0% 0.0 0.0%23 1 6 3/3 100.0% 100.0% 0.0 0.0%24 1 8 3/3 100.0% 100.0% 0.11 0.36%25 1 10 3/3 100.0% 100.0% 0.11 0.36%
Tabella C.32: Dataset8 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 3 ; Epoche Max = 6;
Laurea Magistrale in Informatica 137
C.9. Dataset9
C.9 Dataset9
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 3/3 100.0% 100.0% 0.69 1.72%2 25 3 3/3 100.0% 100.0% 0.69 1.72%3 25 6 3/3 100.0% 100.0% 0.71 1.78%4 25 8 3/3 100.0% 100.0% 0.69 1.72%5 25 10 3/3 100.0% 100.0% 0.81 2.03%6 15 1 3/3 100.0% 100.0% 0.69 1.72%7 15 3 3/3 100.0% 100.0% 1.01 2.52%8 15 6 3/3 100.0% 100.0% 0.69 1.72%9 15 8 3/3 100.0% 100.0% 0.69 1.72%10 15 10 3/3 100.0% 100.0% 0.71 1.78%11 10 1 3/3 100.0% 100.0% 0.71 1.78%12 10 3 3/3 100.0% 100.0% 0.69 1.72%13 10 6 3/3 100.0% 100.0% 0.81 2.03%14 10 8 3/3 100.0% 100.0% 2.92 7.31%15 10 10 3/3 100.0% 100.0% 1.01 2.52%16 5 1 3/3 100.0% 100.0% 1.01 2.52%17 5 3 3/3 100.0% 100.0% 1.41 3.51%18 5 6 3/3 100.0% 100.0% 1.41 3.53%19 5 8 3/3 100.0% 100.0% 0.81 2.03%20 5 10 3/3 100.0% 100.0% 0.69 1.72%21 1 1 3/3 100.0% 100.0% 0.73 1.83%22 1 3 3/3 100.0% 100.0% 2.11 5.28%23 1 6 3/3 100.0% 100.0% 0.81 2.03%24 1 8 3/3 100.0% 100.0% 2.95 7.39%25 1 10 3/3 100.0% 100.0% 0.71 1.76%
Tabella C.33: Dataset9 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 2 ; Epoche Max = 5;
Laurea Magistrale in Informatica 138
C.9. Dataset9
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 3/3 100.0% 100.0% 0.71 1.78%2 25 3 3/3 100.0% 100.0% 0.71 1.76%3 25 6 3/3 100.0% 100.0% 0.71 1.76%4 25 8 3/3 100.0% 100.0% 0.69 1.72%5 25 10 3/3 100.0% 100.0% 0.81 2.03%6 15 1 3/3 100.0% 100.0% 0.69 1.72%7 15 3 3/3 100.0% 100.0% 1.13 2.83%8 15 6 3/3 100.0% 100.0% 0.12 0.31%9 15 8 3/3 100.0% 100.0% 0.69 1.72%10 15 10 3/3 100.0% 100.0% 1.01 2.52%11 10 1 3/3 100.0% 100.0% 0.69 1.72%12 10 3 3/3 100.0% 100.0% 0.71 1.76%13 10 6 3/3 100.0% 100.0% 0.71 1.78%14 10 8 3/3 100.0% 100.0% 1.01 2.52%15 10 10 3/3 100.0% 100.0% 0.69 1.72%16 5 1 3/3 100.0% 100.0% 0.69 1.72%17 5 3 3/3 100.0% 100.0% 0.81 2.03%18 5 6 3/3 100.0% 100.0% 0.69 1.72%19 5 8 3/3 100.0% 100.0% 0.81 2.03%20 5 10 3/3 100.0% 100.0% 1.01 2.52%21 1 1 3/3 100.0% 100.0% 2.0 5.0%22 1 3 3/3 100.0% 100.0% 2.91 7.29%23 1 6 3/3 100.0% 100.0% 1.08 2.7%24 1 8 3/3 100.0% 100.0% 3.56 8.9%25 1 10 3/3 100.0% 100.0% 0.11 0.27%
Tabella C.34: Dataset9 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipologiaoperatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 3 ; Epoche Max = 6;
Laurea Magistrale in Informatica 139
C.9. Dataset9
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 3/3 100.0% 100.0% 0.71 1.78%2 25 3 3/3 100.0% 100.0% 0.71 1.76%3 25 6 2/3 N/A N/A N/A N/A4 25 8 3/3 100.0% 100.0% 0.69 1.72%5 25 10 2/3 N/A N/A N/A N/A6 15 1 3/3 100.0% 100.0% 0.71 1.78%7 15 3 3/3 100.0% 100.0% 1.01 2.52%8 15 6 3/3 100.0% 100.0% 1.13 2.83%9 15 8 3/3 100.0% 100.0% 1.01 2.52%10 15 10 3/3 100.0% 100.0% 1.01 2.52%11 10 1 3/3 100.0% 100.0% 1.01 2.52%12 10 3 3/3 100.0% 100.0% 0.69 1.72%13 10 6 3/3 100.0% 100.0% 1.13 2.83%14 10 8 3/3 100.0% 100.0% 0.69 1.72%15 10 10 3/3 100.0% 100.0% 0.69 1.72%16 5 1 3/3 100.0% 100.0% 0.71 1.78%17 5 3 3/3 100.0% 100.0% 0.71 1.78%18 5 6 3/3 100.0% 100.0% 0.81 2.03%19 5 8 3/3 100.0% 100.0% 0.69 1.72%20 5 10 3/3 100.0% 100.0% 0.71 1.78%21 1 1 3/3 100.0% 100.0% 1.82 4.55%22 1 3 3/3 100.0% 100.0% 0.69 1.72%23 1 6 3/3 100.0% 100.0% 0.71 1.76%24 1 8 3/3 100.0% 100.0% 1.13 2.83%25 1 10 3/3 100.0% 100.0% 1.01 2.52%
Tabella C.35: Dataset9 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 2 ; Epoche Max = 5;
Laurea Magistrale in Informatica 140
C.9. Dataset9
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 3/3 100.0% 100.0% 1.13 2.83%2 25 3 3/3 100.0% 100.0% 1.01 2.52%3 25 6 3/3 100.0% 100.0% 1.13 2.83%4 25 8 3/3 100.0% 100.0% 0.71 1.78%5 25 10 3/3 100.0% 100.0% 0.71 1.76%6 15 1 3/3 100.0% 100.0% 0.71 1.76%7 15 3 3/3 100.0% 100.0% 0.71 1.78%8 15 6 3/3 100.0% 100.0% 0.69 1.72%9 15 8 3/3 100.0% 100.0% 1.01 2.52%10 15 10 3/3 100.0% 100.0% 0.69 1.72%11 10 1 3/3 100.0% 100.0% 0.71 1.78%12 10 3 3/3 100.0% 100.0% 0.81 2.03%13 10 6 3/3 100.0% 100.0% 0.81 2.03%14 10 8 3/3 100.0% 100.0% 0.81 2.03%15 10 10 3/3 100.0% 100.0% 0.71 1.78%16 5 1 3/3 100.0% 100.0% 0.69 1.72%17 5 3 3/3 100.0% 100.0% 0.69 1.72%18 5 6 3/3 100.0% 100.0% 1.13 2.83%19 5 8 3/3 100.0% 100.0% 0.69 1.72%20 5 10 3/3 100.0% 100.0% 0.69 1.72%21 1 1 3/3 100.0% 100.0% 0.69 1.72%22 1 3 3/3 100.0% 100.0% 0.71 1.78%23 1 6 3/3 100.0% 100.0% 0.81 2.03%24 1 8 3/3 100.0% 100.0% 1.13 2.83%25 1 10 3/3 100.0% 100.0% 1.01 2.52%
Tabella C.36: Dataset9 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 3 ; Epoche Max = 6;
Laurea Magistrale in Informatica 141
C.10. Dataset10
C.10 Dataset10
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 4/4 100.0% 100.0% 1.27 1.27%2 25 3 5/4 N/A N/A N/A N/A3 25 6 4/4 100.0% 100.0% 1.05 1.05%4 25 8 4/4 100.0% 100.0% 0.92 0.92%5 25 10 4/4 100.0% 100.0% 1.22 1.22%6 15 1 4/4 100.0% 100.0% 1.02 1.02%7 15 3 4/4 100.0% 100.0% 0.18 0.18%8 15 6 4/4 100.0% 100.0% 0.93 0.93%9 15 8 4/4 100.0% 100.0% 1.21 1.21%10 15 10 4/4 100.0% 100.0% 0.23 0.23%11 10 1 4/4 100.0% 100.0% 1.24 1.24%12 10 3 4/4 100.0% 100.0% 0.36 0.36%13 10 6 4/4 100.0% 100.0% 1.24 1.24%14 10 8 4/4 100.0% 100.0% 0.82 0.82%15 10 10 4/4 100.0% 100.0% 1.59 1.59%16 5 1 5/4 N/A N/A N/A N/A17 5 3 4/4 100.0% 100.0% 1.06 1.06%18 5 6 4/4 100.0% 100.0% 1.12 1.12%19 5 8 4/4 100.0% 100.0% 0.9 0.9%20 5 10 4/4 100.0% 100.0% 0.65 0.65%21 1 1 4/4 100.0% 100.0% 0.49 0.49%22 1 3 4/4 100.0% 100.0% 0.3 0.3%23 1 6 4/4 100.0% 100.0% 1.73 1.73%24 1 8 4/4 100.0% 100.0% 0.43 0.43%25 1 10 4/4 100.0% 100.0% 1.28 1.28%
Tabella C.37: Dataset10 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 2 ; Epoche Max = 5;
Laurea Magistrale in Informatica 142
C.10. Dataset10
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 4/4 100.0% 100.0% 1.74 1.74%2 25 3 4/4 100.0% 100.0% 0.93 0.93%3 25 6 4/4 100.0% 100.0% 0.33 0.33%4 25 8 4/4 100.0% 100.0% 0.77 0.77%5 25 10 4/4 100.0% 100.0% 1.57 1.57%6 15 1 4/4 100.0% 100.0% 5.1 5.1%7 15 3 4/4 100.0% 100.0% 1.25 1.25%8 15 6 4/4 100.0% 100.0% 3.72 3.72%9 15 8 4/4 100.0% 100.0% 1.73 1.73%10 15 10 4/4 100.0% 100.0% 0.26 0.26%11 10 1 4/4 100.0% 100.0% 0.22 0.22%12 10 3 4/4 100.0% 100.0% 1.84 1.84%13 10 6 4/4 100.0% 100.0% 1.78 1.78%14 10 8 4/4 100.0% 100.0% 1.21 1.21%15 10 10 4/4 100.0% 100.0% 1.15 1.15%16 5 1 4/4 100.0% 100.0% 1.91 1.91%17 5 3 4/4 100.0% 100.0% 1.81 1.81%18 5 6 4/4 100.0% 100.0% 0.82 0.82%19 5 8 4/4 100.0% 100.0% 1.08 1.08%20 5 10 5/4 N/A N/A N/A N/A21 1 1 4/4 100.0% 100.0% 2.07 2.07%22 1 3 4/4 100.0% 100.0% 5.88 5.88%23 1 6 4/4 100.0% 100.0% 3.75 3.75%24 1 8 4/4 100.0% 100.0% 0.33 0.33%25 1 10 4/4 100.0% 100.0% 5.83 5.83%
Tabella C.38: Dataset10 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 3 ; Epoche Max = 6;
Laurea Magistrale in Informatica 143
C.10. Dataset10
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 4/4 100.0% 100.0% 0.62 0.62%2 25 3 4/4 100.0% 100.0% 3.68 3.68%3 25 6 4/4 100.0% 100.0% 5.2 5.2%4 25 8 4/4 100.0% 100.0% 0.19 0.19%5 25 10 4/4 100.0% 100.0% 1.03 1.03%6 15 1 4/4 100.0% 100.0% 0.42 0.42%7 15 3 4/4 100.0% 100.0% 0.7 0.7%8 15 6 4/4 100.0% 100.0% 0.35 0.35%9 15 8 4/4 100.0% 100.0% 0.55 0.55%10 15 10 4/4 100.0% 100.0% 1.18 1.18%11 10 1 4/4 100.0% 100.0% 1.95 1.95%12 10 3 4/4 100.0% 100.0% 1.48 1.48%13 10 6 4/4 100.0% 100.0% 1.45 1.45%14 10 8 4/4 100.0% 100.0% 0.66 0.66%15 10 10 4/4 100.0% 100.0% 0.52 0.52%16 5 1 4/4 100.0% 100.0% 2.65 2.65%17 5 3 4/4 100.0% 100.0% 1.6 1.6%18 5 6 4/4 100.0% 100.0% 1.42 1.42%19 5 8 4/4 100.0% 100.0% 0.36 0.36%20 5 10 4/4 100.0% 100.0% 1.22 1.22%21 1 1 4/4 100.0% 100.0% 0.79 0.79%22 1 3 4/4 100.0% 100.0% 1.19 1.19%23 1 6 4/4 100.0% 100.0% 1.09 1.09%24 1 8 4/4 100.0% 100.0% 1.66 1.66%25 1 10 4/4 100.0% 100.0% 0.78 0.78%
Tabella C.39: Dataset10 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipo-logia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 2 ; Epoche Max = 5;
Laurea Magistrale in Informatica 144
C.10. Dataset10
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 4/4 100.0% 100.0% 0.94 0.94%2 25 3 4/4 100.0% 100.0% 1.38 1.38%3 25 6 4/4 100.0% 100.0% 0.15 0.15%4 25 8 4/4 100.0% 100.0% 0.69 0.69%5 25 10 4/4 100.0% 100.0% 1.37 1.37%6 15 1 5/4 N/A N/A N/A N/A7 15 3 4/4 100.0% 100.0% 2.29 2.29%8 15 6 4/4 100.0% 100.0% 0.82 0.82%9 15 8 4/4 100.0% 100.0% 2.19 2.19%10 15 10 4/4 100.0% 100.0% 1.38 1.38%11 10 1 4/4 100.0% 100.0% 6.13 6.13%12 10 3 4/4 100.0% 100.0% 6.92 6.92%13 10 6 4/4 100.0% 100.0% 0.56 0.56%14 10 8 4/4 100.0% 100.0% 1.84 1.84%15 10 10 4/4 100.0% 100.0% 1.31 1.31%16 5 1 4/4 100.0% 100.0% 1.12 1.12%17 5 3 4/4 100.0% 100.0% 0.86 0.86%18 5 6 4/4 100.0% 100.0% 0.8 0.8%19 5 8 4/4 100.0% 100.0% 1.42 1.42%20 5 10 4/4 100.0% 100.0% 1.5 1.5%21 1 1 4/4 100.0% 100.0% 3.59 3.59%22 1 3 4/4 100.0% 100.0% 1.62 1.62%23 1 6 4/4 100.0% 100.0% 4.83 4.83%24 1 8 4/4 100.0% 100.0% 0.74 0.74%25 1 10 4/4 100.0% 100.0% 0.58 0.58%
Tabella C.40: Dataset10 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 3 ; Epoche Max = 6;
Laurea Magistrale in Informatica 145
C.11. Dataset11
C.11 Dataset11
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 4/4 67.0% 100.0% 0.22 1.11%2 25 3 4/4 67.0% 100.0% 0.48 2.39%3 25 6 4/4 67.0% 100.0% 0.22 1.11%4 25 8 4/4 67.0% 100.0% 0.22 1.11%5 25 10 3/4 N/A N/A N/A N/A6 15 1 4/4 67.0% 100.0% 0.22 1.11%7 15 3 4/4 67.0% 100.0% 0.22 1.11%8 15 6 4/4 67.0% 100.0% 0.22 1.11%9 15 8 4/4 67.0% 100.0% 0.03 0.17%10 15 10 3/4 N/A N/A N/A N/A11 10 1 4/4 67.0% 100.0% 0.22 1.11%12 10 3 4/4 67.0% 100.0% 0.24 1.19%13 10 6 4/4 67.0% 100.0% 0.12 0.62%14 10 8 4/4 67.0% 100.0% 0.03 0.17%15 10 10 4/4 67.0% 100.0% 0.22 1.11%16 5 1 4/4 67.0% 100.0% 0.23 1.13%17 5 3 4/4 67.0% 100.0% 0.12 0.62%18 5 6 4/4 67.0% 100.0% 0.48 2.39%19 5 8 4/4 67.0% 100.0% 0.22 1.11%20 5 10 4/4 67.0% 100.0% 0.22 1.11%21 1 1 4/4 67.0% 100.0% 0.22 1.11%22 1 3 4/4 67.0% 100.0% 0.12 0.62%23 1 6 4/4 67.0% 100.0% 0.14 0.69%24 1 8 4/4 67.0% 100.0% 0.48 2.39%25 1 10 3/4 N/A N/A N/A N/A
Tabella C.41: Dataset11 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 2 ; Epoche Max = 5;
Laurea Magistrale in Informatica 146
C.11. Dataset11
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 4/4 67.0% 100.0% 0.14 0.69%2 25 3 4/4 67.0% 100.0% 0.14 0.69%3 25 6 4/4 67.0% 100.0% 0.48 2.39%4 25 8 3/4 N/A N/A N/A N/A5 25 10 3/4 N/A N/A N/A N/A6 15 1 4/4 67.0% 100.0% 0.38 1.9%7 15 3 3/4 N/A N/A N/A N/A8 15 6 4/4 67.0% 100.0% 0.29 1.44%9 15 8 3/4 N/A N/A N/A N/A10 15 10 3/4 N/A N/A N/A N/A11 10 1 4/4 67.0% 100.0% 0.35 1.76%12 10 3 4/4 67.0% 100.0% 0.54 2.72%13 10 6 4/4 67.0% 100.0% 0.48 2.39%14 10 8 3/4 N/A N/A N/A N/A15 10 10 3/4 N/A N/A N/A N/A16 5 1 4/4 67.0% 100.0% 0.14 0.69%17 5 3 4/4 67.0% 100.0% 0.26 1.32%18 5 6 4/4 67.0% 100.0% 0.61 3.04%19 5 8 3/4 N/A N/A N/A N/A20 5 10 3/4 N/A N/A N/A N/A21 1 1 4/4 67.0% 100.0% 0.82 4.09%22 1 3 3/4 N/A N/A N/A N/A23 1 6 4/4 67.0% 100.0% 0.14 0.69%24 1 8 3/4 N/A N/A N/A N/A25 1 10 3/4 N/A N/A N/A N/A
Tabella C.42: Dataset11 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 3 ; Epoche Max = 6;
Laurea Magistrale in Informatica 147
C.11. Dataset11
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 4/4 67.0% 100.0% 0.22 1.11%2 25 3 4/4 67.0% 100.0% 0.22 1.11%3 25 6 3/4 N/A N/A N/A N/A4 25 8 3/4 N/A N/A N/A N/A5 25 10 3/4 N/A N/A N/A N/A6 15 1 4/4 67.0% 100.0% 0.22 1.11%7 15 3 4/4 67.0% 100.0% 0.22 1.11%8 15 6 4/4 67.0% 100.0% 0.48 2.39%9 15 8 3/4 N/A N/A N/A N/A10 15 10 3/4 N/A N/A N/A N/A11 10 1 4/4 67.0% 100.0% 0.32 1.62%12 10 3 4/4 67.0% 100.0% 0.22 1.11%13 10 6 3/4 N/A N/A N/A N/A14 10 8 3/4 N/A N/A N/A N/A15 10 10 3/4 N/A N/A N/A N/A16 5 1 4/4 67.0% 100.0% 0.14 0.69%17 5 3 4/4 67.0% 100.0% 0.39 1.96%18 5 6 3/4 N/A N/A N/A N/A19 5 8 3/4 N/A N/A N/A N/A20 5 10 3/4 N/A N/A N/A N/A21 1 1 4/4 67.0% 100.0% 0.22 1.11%22 1 3 4/4 67.0% 100.0% 0.14 0.69%23 1 6 3/4 N/A N/A N/A N/A24 1 8 4/4 67.0% 100.0% 0.22 1.11%25 1 10 3/4 N/A N/A N/A N/A
Tabella C.43: Dataset11 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipo-logia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 2 ; Epoche Max = 5;
Laurea Magistrale in Informatica 148
C.11. Dataset11
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 4/4 67.0% 100.0% 0.26 1.32%2 25 3 4/4 67.0% 100.0% 0.39 1.96%3 25 6 3/4 N/A N/A N/A N/A4 25 8 3/4 N/A N/A N/A N/A5 25 10 3/4 N/A N/A N/A N/A6 15 1 4/4 67.0% 100.0% 0.67 3.34%7 15 3 4/4 67.0% 100.0% 0.14 0.69%8 15 6 3/4 N/A N/A N/A N/A9 15 8 3/4 N/A N/A N/A N/A10 15 10 3/4 N/A N/A N/A N/A11 10 1 4/4 67.0% 100.0% 0.24 1.18%12 10 3 3/4 N/A N/A N/A N/A13 10 6 3/4 N/A N/A N/A N/A14 10 8 3/4 N/A N/A N/A N/A15 10 10 3/4 N/A N/A N/A N/A16 5 1 4/4 67.0% 100.0% 0.26 1.32%17 5 3 3/4 N/A N/A N/A N/A18 5 6 4/4 67.0% 100.0% 0.22 1.11%19 5 8 3/4 N/A N/A N/A N/A20 5 10 1/4 N/A N/A N/A N/A21 1 1 4/4 67.0% 100.0% 0.24 1.19%22 1 3 3/4 N/A N/A N/A N/A23 1 6 3/4 N/A N/A N/A N/A24 1 8 3/4 N/A N/A N/A N/A25 1 10 3/4 N/A N/A N/A N/A
Tabella C.44: Dataset11 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipo-logia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 3 ; Epoche Max = 6;
Laurea Magistrale in Informatica 149
C.12. Dataset12
C.12 Dataset12
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 4/4 100.0% 100.0% 0.02 0.04%2 25 3 4/4 100.0% 100.0% 0.0 0.0%3 25 6 4/4 100.0% 100.0% 0.22 0.44%4 25 8 4/4 100.0% 100.0% 0.02 0.04%5 25 10 4/4 100.0% 100.0% 0.03 0.07%6 15 1 4/4 100.0% 100.0% 0.82 1.64%7 15 3 4/4 100.0% 100.0% 0.02 0.04%8 15 6 4/4 100.0% 100.0% 0.02 0.04%9 15 8 4/4 100.0% 100.0% 0.02 0.04%10 15 10 4/4 100.0% 100.0% 0.21 0.42%11 10 1 4/4 100.0% 100.0% 0.02 0.04%12 10 3 5/4 N/A N/A N/A N/A13 10 6 4/4 100.0% 100.0% 0.0 0.0%14 10 8 4/4 100.0% 100.0% 0.03 0.07%15 10 10 4/4 100.0% 100.0% 0.22 0.44%16 5 1 4/4 100.0% 100.0% 0.03 0.07%17 5 3 4/4 100.0% 100.0% 0.19 0.37%18 5 6 4/4 100.0% 100.0% 0.02 0.04%19 5 8 4/4 100.0% 100.0% 0.02 0.04%20 5 10 4/4 100.0% 100.0% 0.02 0.04%21 1 1 4/4 100.0% 100.0% 0.71 1.43%22 1 3 4/4 100.0% 100.0% 0.03 0.07%23 1 6 5/4 N/A N/A N/A N/A24 1 8 4/4 100.0% 100.0% 0.02 0.04%25 1 10 4/4 100.0% 100.0% 0.22 0.44%
Tabella C.45: Dataset12 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 2 ; Epoche Max = 5;
Laurea Magistrale in Informatica 150
C.12. Dataset12
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 4/4 100.0% 100.0% 0.6 1.19%2 25 3 4/4 100.0% 100.0% 1.18 2.36%3 25 6 4/4 100.0% 100.0% 1.46 2.92%4 25 8 4/4 100.0% 100.0% 0.02 0.04%5 25 10 4/4 100.0% 100.0% 0.13 0.26%6 15 1 4/4 100.0% 100.0% 0.21 0.42%7 15 3 4/4 100.0% 100.0% 1.67 3.34%8 15 6 4/4 100.0% 100.0% 0.45 0.9%9 15 8 4/4 100.0% 100.0% 0.19 0.37%10 15 10 5/4 N/A N/A N/A N/A11 10 1 5/4 N/A N/A N/A N/A12 10 3 4/4 100.0% 100.0% 1.23 2.46%13 10 6 4/4 100.0% 100.0% 2.99 5.98%14 10 8 4/4 100.0% 100.0% 3.48 6.96%15 10 10 4/4 100.0% 100.0% 0.0 0.0%16 5 1 4/4 100.0% 100.0% 0.78 1.55%17 5 3 4/4 100.0% 100.0% 0.65 1.3%18 5 6 4/4 100.0% 100.0% 3.38 6.75%19 5 8 4/4 100.0% 100.0% 2.21 4.42%20 5 10 4/4 100.0% 100.0% 0.77 1.55%21 1 1 4/4 100.0% 100.0% 0.29 0.59%22 1 3 4/4 100.0% 100.0% 1.92 3.84%23 1 6 4/4 100.0% 100.0% 3.77 7.55%24 1 8 5/4 N/A N/A N/A N/A25 1 10 4/4 100.0% 100.0% 0.87 1.75%
Tabella C.46: Dataset12 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 3 ; Epoche Max = 6;
Laurea Magistrale in Informatica 151
C.12. Dataset12
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 4/4 100.0% 100.0% 0.02 0.04%2 25 3 4/4 100.0% 100.0% 0.79 1.57%3 25 6 4/4 100.0% 100.0% 0.49 0.98%4 25 8 4/4 100.0% 100.0% 0.03 0.07%5 25 10 4/4 100.0% 100.0% 0.02 0.04%6 15 1 4/4 100.0% 100.0% 0.16 0.33%7 15 3 4/4 100.0% 100.0% 0.22 0.44%8 15 6 4/4 100.0% 100.0% 0.32 0.64%9 15 8 4/4 100.0% 100.0% 0.03 0.07%10 15 10 4/4 100.0% 100.0% 0.55 1.11%11 10 1 4/4 100.0% 100.0% 0.0 0.0%12 10 3 4/4 100.0% 100.0% 0.22 0.44%13 10 6 4/4 100.0% 100.0% 0.26 0.53%14 10 8 4/4 100.0% 100.0% 0.03 0.07%15 10 10 4/4 100.0% 100.0% 0.02 0.04%16 5 1 4/4 100.0% 100.0% 0.39 0.78%17 5 3 4/4 100.0% 100.0% 0.21 0.42%18 5 6 4/4 100.0% 100.0% 2.48 4.96%19 5 8 4/4 100.0% 100.0% 0.39 0.78%20 5 10 4/4 100.0% 100.0% 0.02 0.04%21 1 1 4/4 100.0% 100.0% 0.02 0.04%22 1 3 4/4 100.0% 100.0% 0.68 1.36%23 1 6 4/4 100.0% 100.0% 0.95 1.9%24 1 8 4/4 100.0% 100.0% 0.02 0.04%25 1 10 4/4 100.0% 100.0% 0.32 0.64%
Tabella C.47: Dataset12 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipo-logia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 2; Epoche Max = 5;
Laurea Magistrale in Informatica 152
C.12. Dataset12
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 4/4 100.0% 100.0% 0.0 0.0%2 25 3 4/4 100.0% 100.0% 0.58 1.16%3 25 6 4/4 100.0% 100.0% 0.0 0.0%4 25 8 4/4 100.0% 100.0% 0.24 0.49%5 25 10 4/4 100.0% 100.0% 0.24 0.48%6 15 1 4/4 100.0% 100.0% 0.52 1.04%7 15 3 4/4 100.0% 100.0% 0.25 0.51%8 15 6 5/4 N/A N/A N/A N/A9 15 8 4/4 100.0% 100.0% 2.09 4.17%10 15 10 4/4 100.0% 100.0% 2.54 5.08%11 10 1 4/4 100.0% 100.0% 0.81 1.62%12 10 3 4/4 100.0% 100.0% 1.25 2.51%13 10 6 4/4 100.0% 100.0% 0.43 0.86%14 10 8 4/4 100.0% 100.0% 0.12 0.24%15 10 10 4/4 100.0% 100.0% 0.52 1.03%16 5 1 4/4 100.0% 100.0% 0.85 1.7%17 5 3 4/4 100.0% 100.0% 1.55 3.09%18 5 6 4/4 100.0% 100.0% 0.5 1.01%19 5 8 4/4 100.0% 100.0% 2.51 5.01%20 5 10 4/4 100.0% 100.0% 0.31 0.63%21 1 1 5/4 N/A N/A N/A N/A22 1 3 4/4 100.0% 100.0% 0.84 1.68%23 1 6 4/4 100.0% 100.0% 0.88 1.76%24 1 8 4/4 100.0% 100.0% 0.31 0.62%25 1 10 4/4 100.0% 100.0% 0.24 0.49%
Tabella C.48: Dataset12 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipo-logia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 3; Epoche Max = 6;
Laurea Magistrale in Informatica 153
C.13. Dataset13
C.13 Dataset13
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 3/3 100.0% 100.0% 0.34 1.7%2 25 3 3/3 100.0% 100.0% 0.34 1.7%3 25 6 3/3 100.0% 100.0% 0.34 1.7%4 25 8 3/3 100.0% 100.0% 0.0 0.0%5 25 10 3/3 100.0% 100.0% 0.14 0.71%6 15 1 3/3 100.0% 100.0% 0.34 1.7%7 15 3 3/3 100.0% 100.0% 0.34 1.7%8 15 6 3/3 100.0% 100.0% 0.14 0.71%9 15 8 3/3 100.0% 100.0% 0.14 0.71%10 15 10 3/3 100.0% 100.0% 0.14 0.71%11 10 1 3/3 100.0% 100.0% 0.34 1.7%12 10 3 3/3 100.0% 100.0% 0.34 1.7%13 10 6 3/3 100.0% 100.0% 0.0 0.0%14 10 8 3/3 100.0% 100.0% 0.0 0.0%15 10 10 3/3 100.0% 100.0% 0.14 0.71%16 5 1 3/3 100.0% 100.0% 0.14 0.71%17 5 3 3/3 100.0% 100.0% 0.34 1.7%18 5 6 3/3 100.0% 100.0% 0.34 1.7%19 5 8 3/3 100.0% 100.0% 0.34 1.7%20 5 10 3/3 100.0% 100.0% 0.14 0.71%21 1 1 3/3 100.0% 100.0% 0.34 1.7%22 1 3 3/3 100.0% 100.0% 0.0 0.0%23 1 6 3/3 100.0% 100.0% 0.34 1.7%24 1 8 3/3 100.0% 100.0% 0.34 1.7%25 1 10 3/3 100.0% 100.0% 0.67 3.33%
Tabella C.49: Dataset13 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 2; Epoche Max = 5;
Laurea Magistrale in Informatica 154
C.13. Dataset13
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 3/3 100.0% 100.0% 0.14 0.71%2 25 3 3/3 100.0% 100.0% 0.14 0.71%3 25 6 3/3 100.0% 100.0% 0.34 1.7%4 25 8 3/3 100.0% 100.0% 0.34 1.7%5 25 10 3/3 100.0% 100.0% 0.34 1.7%6 15 1 3/3 100.0% 100.0% 0.34 1.7%7 15 3 3/3 100.0% 100.0% 0.34 1.7%8 15 6 3/3 100.0% 100.0% 0.14 0.71%9 15 8 3/3 100.0% 100.0% 0.14 0.71%10 15 10 3/3 100.0% 100.0% 0.14 0.71%11 10 1 3/3 100.0% 100.0% 0.34 1.7%12 10 3 3/3 100.0% 100.0% 0.34 1.7%13 10 6 3/3 100.0% 100.0% 0.0 0.0%14 10 8 3/3 100.0% 100.0% 0.14 0.71%15 10 10 3/3 100.0% 100.0% 0.34 1.7%16 5 1 3/3 100.0% 100.0% 0.0 0.0%17 5 3 3/3 100.0% 100.0% 0.0 0.0%18 5 6 3/3 100.0% 100.0% 0.14 0.71%19 5 8 3/3 100.0% 100.0% 0.14 0.71%20 5 10 3/3 100.0% 100.0% 0.14 0.71%21 1 1 3/3 100.0% 100.0% 0.34 1.7%22 1 3 3/3 100.0% 100.0% 0.14 0.71%23 1 6 3/3 100.0% 100.0% 0.14 0.71%24 1 8 3/3 100.0% 100.0% 0.34 1.7%25 1 10 3/3 100.0% 100.0% 0.34 1.7%
Tabella C.50: Dataset13 - α = 1; τ = 10; #Sequenze = 4; Iterazioni = 200; Tipolo-gia operatori = Proporzionali; Score = BDeu; Pesatura = Ampiezza;Epoche Start = 3; Epoche Max = 6;
Laurea Magistrale in Informatica 155
C.13. Dataset13
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 3/3 100.0% 100.0% 0.14 0.71%2 25 3 3/3 100.0% 100.0% 0.34 1.7%3 25 6 3/3 100.0% 100.0% 0.14 0.71%4 25 8 3/3 100.0% 100.0% 0.14 0.71%5 25 10 3/3 100.0% 100.0% 0.34 1.7%6 15 1 3/3 100.0% 100.0% 0.14 0.71%7 15 3 3/3 100.0% 100.0% 0.34 1.7%8 15 6 3/3 100.0% 100.0% 0.14 0.71%9 15 8 3/3 100.0% 100.0% 0.34 1.7%10 15 10 3/3 100.0% 100.0% 0.34 1.7%11 10 1 3/3 100.0% 100.0% 0.34 1.7%12 10 3 3/3 100.0% 100.0% 0.14 0.71%13 10 6 3/3 100.0% 100.0% 0.34 1.7%14 10 8 3/3 100.0% 100.0% 0.34 1.7%15 10 10 3/3 100.0% 100.0% 0.34 1.7%16 5 1 3/3 100.0% 100.0% 0.34 1.7%17 5 3 3/3 100.0% 100.0% 0.14 0.71%18 5 6 3/3 100.0% 100.0% 0.67 3.33%19 5 8 3/3 100.0% 100.0% 0.14 0.71%20 5 10 3/3 100.0% 100.0% 0.34 1.7%21 1 1 3/3 100.0% 100.0% 0.34 1.7%22 1 3 3/3 100.0% 100.0% 0.34 1.7%23 1 6 3/3 100.0% 100.0% 0.0 0.0%24 1 8 3/3 100.0% 100.0% 0.0 0.0%25 1 10 3/3 100.0% 100.0% 0.0 0.0%
Tabella C.51: Dataset13 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipo-logia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 2; Epoche Max = 5;
Laurea Magistrale in Informatica 156
C.13. Dataset13
#Run λe λc Epoche Recall Precision Dist.Tempi %Dist.Tempi1 25 1 3/3 100.0% 100.0% 0.14 0.71%2 25 3 3/3 100.0% 100.0% 0.14 0.71%3 25 6 3/3 100.0% 100.0% 0.34 1.7%4 25 8 3/3 100.0% 100.0% 0.14 0.71%5 25 10 3/3 100.0% 100.0% 0.0 0.0%6 15 1 3/3 100.0% 100.0% 0.14 0.71%7 15 3 3/3 100.0% 100.0% 0.34 1.7%8 15 6 3/3 100.0% 100.0% 0.14 0.71%9 15 8 3/3 100.0% 100.0% 0.34 1.7%10 15 10 3/3 100.0% 100.0% 0.14 0.71%11 10 1 3/3 100.0% 100.0% 0.14 0.71%12 10 3 3/3 100.0% 100.0% 0.34 1.7%13 10 6 3/3 100.0% 100.0% 0.14 0.71%14 10 8 3/3 100.0% 100.0% 0.14 0.71%15 10 10 3/3 100.0% 100.0% 0.14 0.71%16 5 1 3/3 100.0% 100.0% 0.34 1.7%17 5 3 3/3 100.0% 100.0% 0.34 1.7%18 5 6 3/3 100.0% 100.0% 0.34 1.7%19 5 8 3/3 100.0% 100.0% 0.14 0.71%20 5 10 3/3 100.0% 100.0% 0.34 1.7%21 1 1 3/3 100.0% 100.0% 0.14 0.71%22 1 3 3/3 100.0% 100.0% 0.34 1.7%23 1 6 3/3 100.0% 100.0% 0.34 1.7%24 1 8 3/3 100.0% 100.0% 0.34 1.7%25 1 10 3/3 100.0% 100.0% 0.14 0.71%
Tabella C.52: Dataset13 - α = 1; τ = 0.1; #Sequenze = 4; Iterazioni = 200; Tipo-logia operatori = Proporzionali; Score = BDe; Pesatura = Ampiezza;Epoche Start = 3; Epoche Max = 6;
Laurea Magistrale in Informatica 157
Bibliografia
Ahmed, Amr, & Xing, Eric P. 2009. Recovering time-varying networks of
dependencies in social and biological studies. roceedings of the National
Academy of Sciences, 106(29):11878–11883.
Cassio P. de Campos, Qiang Ji. 2011. Efficient Structure Learning of Bayesian
Networks using Constraints. Journal of Machine Learning Research, 12,
663–689.
Chickering, David Maxwell. 1994. Learning Bayesian networks is NP-hard.
Tech. rept. Microsoft Research.
Dean, Jeffrey, & Ghemawat, Sanjay. 2004. MapReduce: Simplified Data
Processing on Large Clusters. In: OSDI 2004.
Dean, Thomas, & Kanazawa, Keiji. 1989. A model for reasoning about
persistence and causation. Computational Intelligence.
Fisher, R. A. 1922. On the mathematical foundations of theoretical statistics.
Philosophical Transactions of the Royal Society.
Gelman, & Rubin. 1992. Inference from iterative simulation using multiple
sequences. Statistical Science, Vol. 7, No. 4, 457-511.
Heckerman, David. 1996. A Tutorial on Learning With Bayesian Networks.
Innovations in Bayesian Networks.
Heckerman, David, Geiger, Dan, & Chickering, David M. 1995. Learning Baye-
sian networks: The combination of knowledge and statistical data. Machine
Learning.
Koller, D., & Friedman, N. 2009. Probabilistic Graphical Models: Principles
and Techniques. MIT Press.
158
Bibliografia
Murphy, Kevin Patrik. 2002. Dynamic Bayesian Networks: Representation,
Inference and LEarning. Ph.D. thesis, University of California, Berkeley.
Murphy, Kevin Patrik. 2012. Machine Learning: A probabilistic Perspective.
MIT Press.
Neapolitan, Richard E. 2004. Learning bayesian networks. Pearson Prentice
Hall Upper Saddle River.
Nodelman, Uri D. 2007. Continuous Time Bayesian Networks. Ph.D. thesis,
Stanford University.
Nodelman, Uri D., Shelton, C. R., & Koller, D. 2002a. Continuous Time Baye-
sian Networks. In: Proceedings of the Eighteenth Conference on Uncertainty
in Artificial Intelligence (UAI).
Nodelman, Uri D., Shelton, CR, & Koller, Daphne. 2002b. Learning continuous
time Bayesian networks. Proceedings of the Nineteenth . . . .
Norris, James R. 1998. Markov chains. Cambridge University Press.
Pearl, Judea. 1988. Probabilistic reasoning in intelligent systems: networks of
plausible inference. Morgan Kaufmann Publishers Inc.
Richard E. Devor, Tsong-how Chang, John W. Shutherland. 1992. Stati-
stical Quality Design and Control: Contemporary Concepts and Methods.
Macmillan Publishing Company.
Robinson, Joshua W., & Hartemink, Alexander J. 2010. Learning
Non-Stationary Dynamic Bayesian Networks. Journal of Machine Learning.
Russell, Stuart J., & Norvig, Peter. 2003. Artificial Intelligence: A Modern
Approach. Pearson Education.
S. Lèbre, J. Becq, F. Devaux M. Stumpf G. Lelandais. 2010. Statistical inferen-
ce of the time-varying structure of gene-regulation networks. BMC Systems
Biology 4:130.
Steck, Harald and Jaakkola, Tommi S. 2002. On the Dirichlet Prior
and Bayesian Regularization. Advances in Neural Information Processing
Systems.
Laurea Magistrale in Informatica 159
Bibliografia
Stella, F. 2013. Data e Text Mining. Slide Esame.
Verma T., Perl J. 1988. Causal Networks: Semantics and Espressiveness. In
Proceedings of the Fourth Workshop on Uncertainty in Artificial Intelligence.
352-259.
Whitt, Ward. 2006. Continuous-time markov chains. In: INTERNET: www.
columbia. edu/ ww2040.
Laurea Magistrale in Informatica 160
Acronimi
BDe Bayesian Dirichlet Equivalent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
BDeu Bayesian Dirichlet Equivalent Uniform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
NHDBN Non Omogeneous Dynamic Bayesian Netowrk . . . . . . . . . . . . . . . . . . . . . . . 15
Discrete Binary MRF Discrete Binary Markov Random Field . . . . . . . . . . . . . . . . . . . . . . . 13
Time-Varying DBN Time-Varying Dynamic Bayesian Netowrk . . . . . . . . . . . . . . . . . . . . . 14
MH Metropolis-Hastings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
SA Simulated Annealing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
CPT tabella di probabilità condizionale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VI
BN Bayesian Network. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .VI
CIM matrice di intensità condizionale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
CPD distribuzione di probabilità condizionale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
CTBN Continuous Time Bayesian Network. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .VI
DAG grafo aciclico orientato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
DBN Dynamic Bayesian Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VI
IM matrice di intensità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
MCMC Markov Chain Monte Carlo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
MLE Maximum Likelihood Estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
NHCTBN Non-Homogeneous Continuous Time Bayesian Network . . . . . . . . . . . . . III
HDFS Hadoop Distributed File System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
161