Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Michele Filannino
21 Febbraio 2010
Indice
1 Introduzione 2
1.1 Sistemi di apprendimento . . . . . . . . . . . . . . . . . . . . . . 2
1.1.1 C4.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2 ITI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Data set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Car Evaluation Data Set . . . . . . . . . . . . . . . . . . . 4
1.2.2 Tic-Tac-Toe Endgame Data Set . . . . . . . . . . . . . . . 5
4 Conclusioni 27
A Allegati 28
1
Capitolo 1
Introduzione
2
CAPITOLO 1. INTRODUZIONE 3
1.1.1 C4.5
C4.5 [1] è un algoritmo creato da Ross Quinlan come estensione del suo prece-
dente algoritmo ID3 [2].
Gli alberi di decisione generati da C4.5 possono essere utilizzati per la clas-
sificazione, e per questa ragione tale algoritmo viene spesso utilizzato come
classificatore statistico.
C4.5 costruisce gli alberi di decisione da istanze di un set di training nello
stesso modo di ID3, utilizzando il concetto di entropia dell’informazione. I
dati di training sono un insieme S = s1, s2, ... di istanze pre-classificate. Ogni
istanza si = x1 , x2 , ... è un vettore dove le x rappresentano gli attributi o le
caratteristiche di ogni singola istanza.
Oltre ai dati di training è necessario disporre di un vettore C = c1 , c2 , ...
dove c1 , c2 , ... rappresentano le classi all’interno delle quali possono ricadere le
istanze. La particolarità di C4.5 è la capacità di trattare istanze con valori non
disponibili e valori continui per gli attributi.
Oltre a ciò esso fornisce la possibilità di alleggerire l’albero di decisione
utilizzando una serie di strumenti probabilistici e consente anche di derivare
direttamente regole di decisione.
1.1.2 ITI
E’ uno strumento capace di indurre incrementalmente alberi di decisione a par-
tire da un set di istanze pre-classificate. L’incrementalità è una caratteristica
particolarmente apprezzata di questo tool, poiché consente di modificare oppor-
tunamente alberi di decisione precedentemente calcolati, senza ricostruirli da
zero.
ITI, come C4.5, gestisce valori simbolici, valori mancanti ed include anche
un meccanismo di pruning, in vero meno raffinato di quello di C4.5.
In virtù della caratteristica di incrementalità esso può costruire alberi sia in
modalità batch che in modalità incrementale. All’arrivo di una nuova istanza
opera delle manipolazioni strutturali all’albero di decisione, riadattandolo. Il
risultato delle due modalità (batch ed incrementale) è uguale.
3. buona (good);
4. molto buona (vgood).
Car Evaluation Data Set è composto da 1728 istanze descritte da 6 attributi
tutti di tipo categorico:
1. costo d’acquisto (buying): molto alto (vhigh), alto (high), medio (med),
basso (low);
2. costo di manutenzione (maint): molto alto (vhigh), alto (high), medio
(med), basso (low);
6. sicurezza del veicolo (safety): bassa (low), media (med), alta (high).
Il data set non contiene valori mancanti.
CAPITOLO 1. INTRODUZIONE 5
2. negativa (negative).
Tic-Tac-Toe Endgame Data Set è composto da 958 istanze descritte da 9 attri-
buti tutti di tipo categorico:
1. casella in alto a sinistra (top-left-square): x, o, b (blank);
6
CAPITOLO 2. ELABORAZIONE DEI DATA SET 7
2.3 Esecuzione
Sia C4.5 che ITI utilizzano lo stesso tipo di file in ingresso. L’unica differenza
tra i due sistemi riguarda il percorso nel quale collocare i file: ITI ha bisogno di
un’apposita cartella inserita all’interno della directory data.
Entrambi i sistemi necessitano di 3 file:
[nome_file].names: contiene la descrizione formale circa gli attributi che
caratterizzano ogni istanza del data set;
[nome_file].data: contiene un elenco degli esempi di training;
[nome_file].test: contiene l’elenco degli esempi di test.
Capitolo 3
8
CAPITOLO 3. ANALISI ED INTERPRETAZIONE DEI DATI 9
3.1.1 C4.5
Le informazioni raccolte in questa sezione rappresentano una sintesi rispetto a
quelle prodotte dall’esecuzione del sistema di apprendimento.
Le informazioni che si sono ritenute opportune per la valutazione della
qualità del sistema sono:
• numero di foglie dell’albero di decisione generato;
• percentuale di errore commesso nella classificazione delle istanze di test;
• accuratezza media di classificazione;
• tempo di esecuzione della costruzione dell’albero di decisione e del test.
Il tempo di esecuzione è stato calcolato grazie al comando time di UNIX. Tale
comando restituisce il tempo, espresso in secondi, che intercorre dalla creazione
del processo lanciato alla sua terminazione. In particolare, dei tre tempi resti-
tuiti (reale, utente e sistema) si è convenuto utilizzare per tutti i test il tempo di
sistema (poiché risulta essere più vicino alla stima effettiva del tempo impiegato
dall’algoritmo).
L’accuratezza è stata calcolata a partire dalla percentuale di istanze classi-
ficate correttamente per ogni classe predittiva. Su queste percentuali è stata
calcolata la media aritmetica.
Questa tabella è la sintesi dei dati che verrà mostrata nella tabella riepilo-
gativa generale (vedi pagina12).
Fold 2
(a) (b) (c) (d) <-classified as accuracy
---- ---- ---- ----
129 3 (a): class unacc 97,73%
32 8 (b): class acc 20,00%
(c): class good n/a
(d): class vgood n/a
Fold 3
(a) (b) (c) (d) <-classified as accuracy
---- ---- ---- ----
113 27 (a): class unacc 80,71%
23 9 (b): class acc 28,13%
(c): class good n/a
(d): class vgood n/a
Fold 4
(a) (b) (c) (d) <-classified as accuracy
---- ---- ---- ----
123 5 (a): class unacc 96,09%
CAPITOLO 3. ANALISI ED INTERPRETAZIONE DEI DATI 11
Fold 5
(a) (b) (c) (d) <-classified as accuracy
---- ---- ---- ----
109 1 1 (a): class unacc 98,20%
17 41 3 (b): class acc 67,21%
(c): class good n/a
(d): class vgood n/a
Fold 6
(a) (b) (c) (d) <-classified as accuracy
---- ---- ---- ----
101 15 1 (a): class unacc 86,32%
44 11 (b): class acc 80,00%
(c): class good n/a
(d): class vgood n/a
Fold 7
(a) (b) (c) (d) <-classified as accuracy
---- ---- ---- ----
101 1 (a): class unacc 99,02%
7 47 1 (b): class acc 85,45%
1 1 (c): class good 50,00%
13 (d): class vgood 00,00%
Fold 8
(a) (b) (c) (d) <-classified as accuracy
---- ---- ---- ----
96 9 (a): class unacc 91,43%
3 17 4 9 (b): class acc 51,52%
17 4 (c): class good 19,05%
7 6 (d): class vgood 00,00%
Fold 9
(a) (b) (c) (d) <-classified as accuracy
---- ---- ---- ----
101 2 1 1 (a): class unacc 96,19%
1 26 10 10 (b): class acc 45,61%
3 2 (c): class good 60,00%
15 (d): class vgood 100,00%
Fold 10
(a) (b) (c) (d) <-classified as accuracy
CAPITOLO 3. ANALISI ED INTERPRETAZIONE DEI DATI 12
3.1.2 ITI
In questa sezione vengono presentati i risultati dell’esecuzione sul sistema di
apprendimento ITI di Car Evaluation Data Set.
I dati che verrano presentati in questo caso sono:
• numero di foglie dell’albero di decisione generato;
• l’accuratezza complessiva;
• il tempo necessario alla generazione dell’albero;
Fold 2
Loading variable names ... 6 loaded
Loading training set from data/car/car.data ... 1556 loaded
Tree constructed (0.27 cpu seconds)
Loading testing set from data/car/test.data ... 172 loaded
Leaves: 81, xtests: 5.03, instances: 1556, accuracy: 86.628,
cpu: 0.2700, transps: 20861 (dmti-by-leaves)
Fold 3
Loading variable names ... 6 loaded
Loading training set from data/car/car.data ... 1556 loaded
Tree constructed (0.23 cpu seconds)
Loading testing set from data/car/test.data ... 172 loaded
Leaves: 90, xtests: 5.16, instances: 1556, accuracy: 91.860,
cpu: 0.2300, transps: 17657 (dmti-by-leaves)
Fold 4
Loading variable names ... 6 loaded
Loading training set from data/car/car.data ... 1556 loaded
Tree constructed (0.25 cpu seconds)
Loading testing set from data/car/test.data ... 172 loaded
Leaves: 83, xtests: 5.34, instances: 1556, accuracy: 88.372,
cpu: 0.2500, transps: 18174 (dmti-by-leaves)
CAPITOLO 3. ANALISI ED INTERPRETAZIONE DEI DATI 14
Fold 5
Loading variable names ... 6 loaded
Loading training set from data/car/car.data ... 1556 loaded
Tree constructed (0.22 cpu seconds)
Loading testing set from data/car/test.data ... 172 loaded
Leaves: 89, xtests: 4.95, instances: 1556, accuracy: 95.930,
cpu: 0.2200, transps: 18798 (dmti-by-leaves)
Fold 6
Loading variable names ... 6 loaded
Loading training set from data/car/car.data ... 1556 loaded
Tree constructed (0.24 cpu seconds)
Loading testing set from data/car/test.data ... 172 loaded
Leaves: 84, xtests: 5.82, instances: 1556, accuracy: 82.558,
cpu: 0.2400, transps: 18081 (dmti-by-leaves)
Fold 7
Loading variable names ... 6 loaded
Loading training set from data/car/car.data ... 1556 loaded
Tree constructed (0.27 cpu seconds)
Loading testing set from data/car/test.data ... 172 loaded
Leaves: 84, xtests: 5.28, instances: 1556, accuracy: 85.465,
cpu: 0.2700, transps: 18010 (dmti-by-leaves)
Fold 8
Loading variable names ... 6 loaded
Loading training set from data/car/car.data ... 1556 loaded
Tree constructed (0.19 cpu seconds)
Loading testing set from data/car/test.data ... 172 loaded
Leaves: 72, xtests: 4.31, instances: 1556, accuracy: 86.047,
cpu: 0.1900, transps: 14008 (dmti-by-leaves)
Fold 9
Loading variable names ... 6 loaded
Loading training set from data/car/car.data ... 1556 loaded
Tree constructed (0.23 cpu seconds)
Loading testing set from data/car/test.data ... 172 loaded
Leaves: 84, xtests: 5.01, instances: 1556, accuracy: 84.884,
cpu: 0.2300, transps: 15626 (dmti-by-leaves)
Fold 10
Loading variable names ... 6 loaded
Loading training set from data/car/car.data ... 1548 loaded
Tree constructed (0.23 cpu seconds)
Loading testing set from data/car/test.data ... 180 loaded
Leaves: 83, xtests: 4.66, instances: 1548, accuracy: 67.222,
CAPITOLO 3. ANALISI ED INTERPRETAZIONE DEI DATI 15
H0 : µC4.5 = µIT I .
H1 : µC4.5 6= µIT I .
U Test Results
+------------------------------------------------------------+
| n1 | n2 | U | P (two-tailed) | P (one-tailed) |
|------------------------------------------------------------|
| 10 | 10 | 83.0 | 0.01149624 | 0.00574812 |
CAPITOLO 3. ANALISI ED INTERPRETAZIONE DEI DATI 17
|------------------------------------------------------------|
|normal approx z = 2.49457| 0.01261114*| 0.00630557* |
+------------------------------------------------------------+
*These values are approximate.
The difference between the two samples is marginally significant
(P < 0.05, two-tailed test).
3.2.1 C4.5
Le informazioni raccolte in questa sezione rappresentano una sintesi rispetto a
quelle prodotte dall’esecuzione del sistema di apprendimento.
Le informazioni che si sono ritenute opportune per la valutazione della
qualità del sistema sono:
• numero di foglie dell’albero di decisione generato;
Questa tabella è la sintesi dei dati che verrà mostrata nella tabella riepilo-
gativa generale (vedi pagina20).
Fold 2
(a) (b) <-classified as accuracy
---- ----
53 42 (a): class positive 55,79%
(b): class negative n/a
Fold 3
(a) (b) <-classified as accuracy
---- ----
79 16 (a): class positive 83,16%
(b): class negative n/a
Fold 4
(a) (b) <-classified as accuracy
---- ----
19 76 (a): class positive 20,00%
(b): class negative n/a
Fold 5
(a) (b) <-classified as accuracy
---- ----
40 55 (a): class positive 42,11%
CAPITOLO 3. ANALISI ED INTERPRETAZIONE DEI DATI 20
Fold 6
(a) (b) <-classified as accuracy
---- ----
83 12 (a): class positive 87,37%
(b): class negative n/a
Fold 7
(a) (b) <-classified as accuracy
---- ----
30 26 (a): class positive 53,57%
28 11 (b): class negative 28,21%
Fold 8
(a) (b) <-classified as accuracy
---- ----
(a): class positive n/a
62 33 (b): class negative 34,74%
Fold 9
(a) (b) <-classified as accuracy
---- ----
(a): class positive n/a
51 44 (b): class negative 46,32%
Fold 10
(a) (b) <-classified as accuracy
---- ----
(a): class positive n/a
92 11 (b): class negative 10,68%
3.2.2 ITI
In questa sezione vengono presentati i risultati dell’esecuzione sul sistema di
apprendimento ITI del data set Tic-Tac-Toe Endgame Data Set (vedi pagina
5).
I dati che verrano presentati in questo caso sono:
• numero di foglie dell’albero di decisione generato;
• l’accuratezza complessiva;
• il tempo necessario alla generazione dell’albero;
Fold 2
Loading variable names ... 9 loaded
Loading training set from data/tictactoe/tictactoe.data ... 863 loaded
Tree constructed (0.31 cpu seconds)
Loading testing set from data/tictactoe/test.data ... 95 loaded
Leaves: 59, xtests: 5.27, instances: 863, accuracy: 70.526,
cpu: 0.3100, transps: 21189 (dmti-by-leaves)
Fold 3
Loading variable names ... 9 loaded
Loading training set from data/tictactoe/tictactoe.data ... 863 loaded
Tree constructed (0.31 cpu seconds)
Loading testing set from data/tictactoe/test.data ... 95 loaded
Leaves: 51, xtests: 4.86, instances: 863, accuracy: 100.000,
cpu: 0.3100, transps: 20168 (dmti-by-leaves)
Fold 4
Loading variable names ... 9 loaded
Loading training set from data/tictactoe/tictactoe.data ... 863 loaded
Tree constructed (0.30 cpu seconds)
Loading testing set from data/tictactoe/test.data ... 95 loaded
Leaves: 51, xtests: 4.78, instances: 863, accuracy: 26.316,
cpu: 0.3000, transps: 18547 (dmti-by-leaves)
Fold 5
Loading variable names ... 9 loaded
Loading training set from data/tictactoe/tictactoe.data ... 863 loaded
Tree constructed (0.29 cpu seconds)
Loading testing set from data/tictactoe/test.data ... 95 loaded
Leaves: 55, xtests: 4.82, instances: 863, accuracy: 89.474,
cpu: 0.2900, transps: 18796 (dmti-by-leaves)
Fold 6
Loading variable names ... 9 loaded
Loading training set from data/tictactoe/tictactoe.data ... 863 loaded
Tree constructed (0.30 cpu seconds)
Loading testing set from data/tictactoe/test.data ... 95 loaded
Leaves: 58, xtests: 4.99, instances: 863, accuracy: 97.895,
cpu: 0.3000, transps: 20929 (dmti-by-leaves)
Fold 7
CAPITOLO 3. ANALISI ED INTERPRETAZIONE DEI DATI 23
Fold 8
Loading variable names ... 9 loaded
Loading training set from data/tictactoe/tictactoe.data ... 863 loaded
Tree constructed (0.29 cpu seconds)
Loading testing set from data/tictactoe/test.data ... 95 loaded
Leaves: 40, xtests: 4.87, instances: 863, accuracy: 50.526,
cpu: 0.2900, transps: 19094 (dmti-by-leaves)
Fold 9
Loading variable names ... 9 loaded
Loading training set from data/tictactoe/tictactoe.data ... 863 loaded
Tree constructed (0.24 cpu seconds)
Loading testing set from data/tictactoe/test.data ... 95 loaded
Leaves: 50, xtests: 4.76, instances: 863, accuracy: 64.211,
cpu: 0.2400, transps: 15189 (dmti-by-leaves)
Fold 10
Loading variable names ... 9 loaded
Loading training set from data/tictactoe/tictactoe.data ... 855 loaded
Tree constructed (0.25 cpu seconds)
Loading testing set from data/tictactoe/test.data ... 103 loaded
Leaves: 45, xtests: 4.76, instances: 855, accuracy: 81.553,
cpu: 0.2500, transps: 15166 (dmti-by-leaves)
H0 : µC4.5 = µIT I .
H1 : µC4.5 6= µIT I .
U Test Results
+------------------------------------------------------------+
| n1 | n2 | U | P (two-tailed) | P (one-tailed) |
|------------------------------------------------------------|
| 10 | 10 | 78.0 | 0.035463 | 0.00177315 |
|------------------------------------------------------------|
|normal approx z = 2.1166 | 0.0342938* | 0.0171469* |
+------------------------------------------------------------+
*These values are approximate.
The difference between the two samples is marginally significant
(P < 0.05, two-tailed test).
CAPITOLO 3. ANALISI ED INTERPRETAZIONE DEI DATI 26
Conclusioni
27
Appendice A
Allegati
28
Bibliografia
29