Documente Academic
Documente Profesional
Documente Cultură
UNIVERSITA
` DI INGEGNERIA
FACOLTA
Business Intelligence
Prof. Davide Anguita
A cura di:
Alessandro Ghio
Alessandro.Ghio@unige.it
Indice
Prefazione
1 Introduzione
1.1 Cos`e il Data Mining? . . . . . . . . . . .
1.2 Terminologia di base . . . . . . . . . . .
1.3 Data Mining Process . . . . . . . . . . .
1.3.1 Denizione degli obiettivi . . . .
1.3.2 Organizzazione dei dati . . . . . .
1.3.3 Analisi esplorativa dei dati . . . .
1.3.4 Scelta delle metodologie di analisi
1.3.5 Analisi dei dati . . . . . . . . . .
1.3.6 Valutazione dei metodi statistici e
1.3.7 Implementazione dellalgoritmo .
1.4 Il software che useremo: WEKA . . . . .
1.5 Organizzazione della dispensa . . . . . .
2 Organizzazione dei dati
2.1 Tipi di attributi . . . . . . . .
2.1.1 Variabili qualitative . .
2.1.2 Variabili quantitative .
2.2 La matrice dei dati . . . . . .
2.2.1 Gestione delle variabili
2.3 Normalizzazione di un dataset
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. .
. .
. .
. .
. .
. .
. .
. .
dei
. .
. .
. .
.
.
.
.
.
.
.
.
.
.
.
.
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
risultati
. . . . .
. . . . .
. . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
ottenuti
. . . . .
. . . . .
. . . . .
9
9
12
14
14
15
15
19
20
20
21
21
24
.
.
.
.
.
.
25
25
26
26
27
28
29
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.2
3.3
3.4
3.5
3.6
4 Classificazione
4.1 Zero Rules . . . . . . . . . . . . . . . . . . . .
4.1.1 Apprendimento . . . . . . . . . . . . .
4.1.2 Fase in avanti . . . . . . . . . . . . . .
4.1.3 Estensione al caso multiclasse . . . . .
4.1.4 Esempio di analisi in WEKA . . . . . .
4.2 Naive Bayesian Classier . . . . . . . . . . . .
4.2.1 Apprendimento . . . . . . . . . . . . .
4.2.2 Fase in avanti . . . . . . . . . . . . . .
4.2.3 Estensione al caso multiclasse . . . . .
4.2.4 Esempio di analisi in WEKA . . . . . .
4.3 Reti neurali: MultiLayer Perceptrons . . . . .
4.3.1 Cenni storici: il percettrone . . . . . .
4.3.2 Architettura di un MLP . . . . . . . .
4.3.3 Apprendimento . . . . . . . . . . . . .
4.3.4 Fase in avanti . . . . . . . . . . . . . .
4.3.5 Estensione al caso multiclasse . . . . .
4.3.6 Esempio di analisi in WEKA (I) . . . .
4.3.7 Esempio di analisi in WEKA (II) . . .
4.3.8 Validation set e test set . . . . . . . .
4.4 Support Vector Machines . . . . . . . . . . . .
4.4.1 Il problema del classicatore a massimo
4.4.2 Apprendimento . . . . . . . . . . . . .
4.4.3 Fase in avanti . . . . . . . . . . . . . .
2
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
margine
. . . . .
. . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
31
32
33
33
34
35
36
38
40
43
44
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
48
49
49
49
49
49
54
54
55
55
56
56
56
60
62
64
64
64
66
67
68
68
71
73
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7 Association rules
7.1 Apriori . . . . . . . . . . . . . . . . . . .
7.1.1 Apprendimento . . . . . . . . . .
7.1.2 Esempio di analisi in WEKA (I) .
7.1.3 Esempio di analisi in WEKA (II)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
73
74
75
76
80
80
82
86
86
87
.
.
.
.
.
.
.
.
.
.
.
.
90
90
90
90
91
91
92
93
93
93
93
94
94
.
.
.
.
.
.
.
.
96
96
97
98
98
.
.
.
.
100
. 101
. 101
. 104
. 106
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
108
. 108
. 108
. 109
. 109
. 110
. 110
. 111
. 111
. 112
. 113
. 113
. 113
. 113
. 114
. 114
. 114
. 115
117
Prefazione
Il termine Business Intelligence (BI ) `e piuttosto vago. Una denizione
che comunemente pu`o essere rintracciata in letteratura [14] `e la seguente:
Con il termine business intelligence (BI) ci si pu`
o solitamente
riferire a: un insieme di processi aziendali per raccogliere ed analizzare informazioni strategiche; la tecnologia utilizzata per realizzare questi processi; le informazioni ottenute come risultato di
questi processi.
Per quanto abbia riscosso sempre maggiore interesse solo negli ultimi
anni, il processo di BI venne denito come tale nel 1958 da H. P. Luhn,
ricercatore dellIBM: ovviamente, allepoca non si avevano a disposizione
gli strumenti di oggi (a partire dal computer stesso, almeno nellaccezione
moderna di PC), ma gi`a era nata lidea che i dati, specialmente quando sono
numerosi, debbano essere interpretati al ne di fornire informazioni utili. Non
solo: le stesse informazioni devono essere a loro volta analizzate per trovare
indici (quanto pi`
u completi e sintetici) in grado di velocizzare il processo
decisionale.
` immediato, quindi, comprendere come una parte fondamentale del proE
cesso di BI sia costituita dal Data Mining (DM ). Traducendo letteralmente
il termine Mining, esso deriva da to mine, ovvero estrarre (come si fa, nella
pratica, in miniera) risorse preziose dalle viscere dei (numerosi, in generale)
dati a disposizione. Proprio per questo motivo, al Data Mining viene spesso aancato il concetto di Knowledge Discovery (KD): `e quindi frequente
sentire parlare non solo di DM, ma, pi`
u in generale, di KDDM.
Nel corso di questo insegnamento vedrete che il DM fa parte di un processo molto complesso, che comprende progettazione ed interrogazione di database, creazione di Data Marts, reportistica, ecc. Durante le esercitazioni,
data lesiguit`a del tempo a nostra disposizione, ci concentreremo solamente
5
sulla presentazione dei principali algoritmi di DM per BI: sia, quindi, ben
chiaro che:
queste esercitazioni (sfortunatamente) non potranno coprire per intero
il problema della BI;
verranno presentati solo alcuni algoritmi (i pi`
u famosi ed usati, seppure
in moltissime varianti che non analizzeremo), scelti tra la miriade di
tecniche a disposizione in letteratura.
Per queste dispense, ho tratto ispirazione da [10], sebbene Wikipedia1
ora sempre ottimi spunti di approfondimento.
http://wikipedia.it/
Significato
Business Intelligence
Data Mining
Knowledge Discovery
Knowledge Discovery & Data Mining
Market Basket Analysis
Machine Learning
MultiLayer Perceptrons
Neural Networks (reti neurali)
Statistical Learning Theory
Support Vector Machine
Naive Bayesian Classier
Information Technology
OnLine Analytical Processing
Knowledge Flow (programma di WEKA)
Coeciente di variazione
InterQuartile Range
Principal Component Analysis
Singular Value Decomposition
Mean Absolute Error
Root Mean Squared Error
True Positives
False Positives
Confusion Matrix
Acronimo
BP
WTA
CCQP
SMO
KKT
OVA
AVA
DT
SVR
RT
KCV
Significato
BackPropagation
Winner Take All
Constrained Convex Quadratic Problem
Sequential Minimal Optimization
Condizioni di KarushKuhnTucker
One Vs. All
All Vs. All
Decision Trees
Support Vector Regression
Regression Trees
KFold Cross Validation
Capitolo 1
Introduzione
1.1
Cos`
e il Data Mining?
11
Temperatura
32
35
44
28
27
31
Pressione
111
110
144
109
108
110
Guasto
0
0
1
0
0
0
1.2
Terminologia di base
Pane
0
0
0
0
0
0
Gelato
1
0
0
0
1
1
13
1.3
Viene denita Data Mining Process una serie di operazioni che vanno
dalla denizione preliminare degli obiettivi per lanalisi no alla valutazione
dei risultati ottenuti. Di seguito, elenchiamo le varie attivit`a caratterizzanti
il DM Process, quindi, nei successivi paragra, daremo maggiori dettagli sulle
varie fasi di progetto:
1. Denizione degli obiettivi per lanalisi;
2. Selezione, organizzazione ed eventuale preprocessing dei dati;
3. Analisi esplorativa dei dati ed eventuale trasformazione di questi;
4. Scelta delle metodologie di analisi da usare (e comparare);
5. Analisi dei dati, sulla base dei metodi scelti al passo precedente;
6. Comparazione e valutazione delle prestazioni dei diversi metodi; scelta
della metodologia di analisi da utilizzare a runtime;
7. Implementazione del modello scelto, interpretazione dei risultati che
esso fornisce ed utilizzo di questi ultimi nel processo decisionale aziendale.
1.3.1
1.3.2
1.3.3
Unanalisi esplorativa dei dati `e spesso determinante al ne di incrementare la qualit`a dei risultati ottenuti. Queste metodologie di analisi, simili
nella loro losoa alle tecniche OLAP (OnLine Analytical Processing), permettono di comprendere meglio lorigine dei nostri dati e trovare relazioni di
base che possono risultare di cruciale importanza per il modello operativo.
Lanalisi dei dati passa anche attraverso una selezione dei dati stessi e, in
particolare, si parla di:
feature selection (altres` variable selection);
15
2.5
1.5
0.5
0.2
0.4
0.6
0.8
Figura 1.1: Campioni del segnale ignoto y = f (x). In 0.8, si noti il presunto
outlier.
attenzione e solo sapendo esattamente ci`o che si sta facendo e lanalisi che
vorremo applicare in seguito.
La feature analysis, invece, consiste nellanalizzare le caratteristiche statistiche di base del nostro insieme di dati e noticare (se `e il caso) leventuale
mancanza di ulteriori variabili, che potrebbero facilitare le operazioni successive. Di fatto, la feature analysis permette di capire preventivamente
se `e meglio intervenire sulla sorgente dati o se le variabili che abbiamo a
disposizione dovrebbero essere sucienti per gli algoritmi da applicare.
Per spiegare pi`
u in dettaglio loperazione di outlier detection, invece,
dobbiamo denire innanzitutto cos`e un outlier. Un dato viene detto outlier
se `e palesemente aitto da un picco di rumore, quindi se `e estremamente
sbagliato. Supponiamo di voler ricostruire una relazione del tipo y = f (x) in
un intervallo [0, 1] a partire da alcuni valori campionati (xc , yc ) e di trovare dei
sample come in Fig. 1.1. Con ogni probabilit`a, il campione in 0.8 `e sbagliato,
magari perch`e in quel momento sul sistema `e intervenuto un picco di disturbo.
Nella ricostruzione del segnale, mantenere o eliminare loutlier pu`o avere
inuenze importanti sulla qualit`a del risultato nale: le Figg. 1.2 e 1.3
mostrano due approssimazioni del segnale includendo e escludendo loutlier.
Abbiamo detto che un outlier `e un dato estremamente sbagliato: ma
estremamente, di preciso, cosa signica? Ovviamente, il tutto varia da caso
17
3
2.5
2
1.5
1
0.5
0
0.5
0.2
0.4
0.6
0.8
3
2.5
2
1.5
1
0.5
0
0.5
0.2
0.4
0.6
0.8
18
1.3.4
19
Metodi predittivi
Anche detti metodi supervisionati (supervised ) o diretti, hanno come
obiettivo trovare relazioni tra feature e target, al ne di identicare relazioni
di classicazione o predizione. Nel dataset utilizzato `e sempre presente un
` il caso dei problemi di classicazione biclasse e multiclasse e della
target. E
regressione.
Metodi locali
Hanno come obiettivo identicare particolari caratteristiche e relazioni su
sottoinsiemi del dataset. Esempi sono le association rules, che abbiamo citato
indirettamente nel nostro esempio introduttivo nel paragrafo 1.1. Non solo:
come anticipato in precedenza, anche il problema della outlier detection pu`o
essere considerato un metodo locale e, come tale, potr`a poi essere sottoposto
ad attenta valutazione negli step successivi del DM Process.
1.3.5
1.3.6
Terminata lanalisi con tutti i metodi prescelti, non ci resta che denire
(se non labbiamo gi`a fatto in precedenza) dei coecienti per la comparazione. Per esempio, nel caso di classicazione, un buon termine di paragone
potrebbe essere lerrore previsto a runtime per ogni metodo e algoritmo, al
ne di scegliere quello che sbaglier`a meno. Per trovare questi (o altri) coecienti, e anch`e essi siano adabili, `e necessario, di norma, adarsi a metodi
di tipo statistico: analizzeremo pi`
u avanti in queste dispense alcune di queste
20
1.3.7
Implementazione dellalgoritmo
1.4
http://www.cs.waikato.ac.nz/ml/weka/
21
22
Knowledge Flow assomiglia allambiente Simulink di MATLAB e consente di costruire confronti fra metodi (tipo Experimenter) ma sotto
forma di diagrammi a blocchi, quindi in modo pi`
u intuitivo.
Si noti che WEKA non comprende direttamente al proprio interno un
software per la fase in avanti degli algoritmi: abbiamo anticipato nel paragrafo 1.3.7 come spesso si preferiscano realizzazioni ad hoc, quindi gli autori
di WEKA si sono concentrati sui passi 16 del DM Process piuttosto che sul
7. Ciononostante, mostreremo come Explorer e KF possano essere utilizzati
anche per implementare la fase in avanti degli algoritmi.
Dedichiamo qualche cenno al formato dei le in input a WEKA. I dataset
possono essere passati al software in tre dierenti modi:
le ARFF (che analizzeremo a breve);
indirizzo web (per database di tipo Java DB);
le locale Java DB.
Premesso che probabilmente nel corso dellinsegnamento utilizzeremo
esclusivamente i le locali ARFF, analizziamone la struttura (pu`o essere utile
per scrivere eventuali convertitori da altri formati per dataset). Ogni riga
preceduta dal carattere jolly % `e considerata un commento, mentre sono
necessari i seguenti campi:
un campo @relation, seguito dal nome del dataset;
lelenco degli attributi, uno per riga, aventi la seguente struttura:
la parola chiave @attribute;
il nome dellattributo;
il set di valori che la variabile pu`o assumere (per attributi di tipo
qualitativo o quantitativo discreto) o, in alternativa, il tipo di
feature (real o integer);
la parola chiave @data, seguita nella linea successiva da tutti i pattern.
Ogni pattern `e costituito dalle feature, divise dal carattere ,. Un
missing `e contraddistinto da ?.
23
1.5
Questa dispensa `e organizzata sulla base del usso del Data Mining Process, di cui analizzeremo (per motivi di tempo) solamente alcuni aspetti. In
particolare:
nel Capitolo 2, aronteremo il problema dellorganizzazione dei dati,
delle trasformazioni applicabili ai pattern e dei tipi di variabili;
nel Capitolo 3, approfondiremo alcuni concetti su parametri statistici
e caratteristiche del nostro dataset;
nel Capitolo 4, invece, cominceremo ad analizzare alcuni algoritmi per
la classicazione di pattern;
nel Capitolo 5 aronteremo il problema della regressione;
il clustering sar`a, invece, largomento centrale del Capitolo 6;
trovare le regole di associazione tra feature di un dataset `e il problema
arontato nel Capitolo 7;
termineremo presentando alcuni metodi pratici per il confronto fra algoritmi e introducendo lutilizzo di WEKA Knowledge Flow nel Capitolo
8.
24
Capitolo 2
Organizzazione dei dati
In questo capitolo andiamo ad arontare brevemente le problematiche
relative allorganizzazione dei dati. Dati per scontati concetti quali data
warehouse e data marts, partiamo dal presupposto di avere a disposizione
un dataset, composto da l pattern e m feature, come denito nel paragrafo
1.2. Al momento, non ci interessa se il dataset `e dotato di target o meno.
Tralasciamo per il momento, inoltre, la selezione di un subset adatto: `e un
problema decisamente complesso, che richiameremo solo in parte a tempo
debito, negli ultimi capitoli di queste dispense.
Per quanto riguarda le prime applicazioni usando WEKA, rimandiamo alla ne del prossimo capitolo, quando avremo terminato questa breve
carrellata sullanalisi e lorganizzazione dei dati.
2.1
Tipi di attributi
(b) continue.
Nei prossimi paragra dettagliamo i tipi di attributi precedentemente
elencati.
2.1.1
Variabili qualitative
2.1.2
Variabili quantitative
26
2.2
(2.1)
e rappresentante un dataset composto da l pattern (in questo caso, supponiamo non sia presente target). Abbiamo inoltre stabilito che ogni pattern
xi m , ovvero abbiamo m feature. Viene chiamata matrice dei dati (data
matrix ) la rappresentazione matriciale di tale dataset:
(2.2)
27
2.2.1
X =
1.1
3.5
1.4
9.0
3.1
28
a
b
b
c
a
(2.3)
Variabile qualitativa
v
a
b
c
Codifica
v1 v2 v3
1 0 0
0 1 0
0 0 1
Xf =
1.1
3.5
1.4
9.0
3.1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
(2.4)
2.3
Normalizzazione di un dataset
29
X=
1.1
3.5
1.4
9.0
3.1
4.1
6.5
108
1.9
5.0
(2.5)
30
Capitolo 3
Analisi esplorativa dei dati
In questo capitolo, aronteremo brevemente il problema dellanalisi esplorativa dei dati, presentando alcuni indici statistici. Questo capitolo potenzialmente potrebbe coprire un intero insegnamento, quindi ci limiteremo a
qualche nozione di base, anche in relazione agli strumenti operativi forniti da
WEKA. Per maggiori dettagli, gli interessati possono fare riferimento a [10].
3.1
3.1.1
Distribuzioni di frequenza
Distribuzioni univariate
A volte `e utile analizzare le distribuzioni dei valori che pu`o assumere una
variabile di tipo qualitativo, oppure quantitativa discreta. Questo tipo di
analisi pu`o essere estesa anche alle variabili quantitative continue, cercando gli intervalli ottimi in cui dividere i valori assunti dalle feature (ce ne
occuperemo brevemente quando parleremo di alberi di decisione).
Supponiamo di considerare una variabile v e che essa possa assumere
un numero nito k di livelli, ovvero v = {v1 , ..., vk }. Si denisce frequenza
assoluta il numero di occorrenze ni di un livello in un dataset. Ad esempio,
Tab. 3.1 riporta le distribuzioni assolute per la seconda feature della matrice
X dellEq. (2.3).
Si denisce frequenza relativa la frequenza assoluta normalizzata per il
numero totale di pattern, ovvero:
pi =
ni
.
l
31
(3.1)
Livello
na
nb
nc
Frequenza
2
2
1
Frequenza
0.4
0.4
0.2
Tab. 3.2 riporta le frequenze relative per il dataset X. Propriet`a banali sono
che i ni = l e i pi = 1.
3.1.2
32
3.2
3.2.1
(3.2)
dove
E {
|} =
(3.3)
lim b = 0,
N +
(3.4)
ovvero se, al crescere allinnito del numero di osservazioni, il valore vero del
parametro e la sua stima tendono a coincidere asintoticamente.
Stabilit`
a di uno stimatore
La stabilit`
a di uno stimatore viene calcolata utilizzando la varianza esatta
dello stimatore (riparleremo nei prossimi paragra di varianza, ma in quel
caso faremo riferimento allo stimatore della varianza):
2
2 = E
| E {
| }2 .
(3.5)
N +
3.2.2
(3.6)
Indici di posizione
Il pi`
u comune indice di posizione `e la media aritmetica, denita su un set
di N osservazioni come:
N
i=1
xi
(3.7)
N
ed `e calcolabile solo nel caso di variabili quantitative. Ovviamente, la media
da s`e ha poco signicato, in quanto pu`o fortemente risentire di possibili valori
fuori scala. Vedremo come essa vada integrata nellanalisi da altri indici.
Solo nel caso di variabili quantitative discrete (che possono assumere un
numero nito k di valori), avendo a disposizione le distribuzioni di frequenza,
in particolare le frequenze relative pi di cui al paragrafo 3.1.1, la media pu`o
anche essere calcolata come:
x=
x=
k
i=1
34
pi xi ,
(3.8)
3.2.3
Indici di variabilit`
a
35
1
(xi x)2 .
(3.10)
N 1
In alternativa alla varianza, si pu`o utilizzare la deviazione standard ,
che `e semplicemente la radice quadrata della varianza.
Altro indice `e rappresentato dal coeciente di variazione (CV ), calcolabile quando la media non `e nulla:
2 =
CV =
.
|x|
(3.11)
In alternativa agli indici di variabilit`a n qui presentati, `e talvolta utilizzata lanalisi dei quartili : un quartile `e ognuno dei tre punti che divide
un dataset in aree al 25% di probabilit`a. In particolare, il secondo quartile
equivale alla mediana. I tre quartili vengono deniti come Qi , con i = 1, 2, 3.
Un indice di variabilit`a `e dato dallInterQuartile Range (IQR):
IQR = Q3 Q1 ,
(3.12)
` inoltre
cio`e dalla dierenza fra il valore del terzo e del primo quartile. E
possibile calcolare gli upper bound e lower bound del nostro dataset, deniti
come T1 e T2 :
(3.13)
(3.14)
A partire dai quartili e dai bound, `e possibile tracciare i cosiddetti boxplot, che identicano gracamente le quantit`a descritte in precedenza. Fig.
3.1 mostra un esempio di boxplot, in cui vengono anche segnalati eventuali
outliers, calcolati semplicemente (ma, spesso, ecacemente) come tutti quei
valori assunti dalla nostra variabile pi`
u piccoli (pi`
u grandi) di T1 (T2 ).
3.2.4
Indici di eterogeneit`
a
36
p2i ,
(3.15)
i=1
G
.
(k 1)/k
(3.16)
k
i=1
37
pi log pi ,
(3.17)
che vale 0 in caso di omogeneit`a e log k in caso di massima eterogeneit`a. Anche in questo caso, `e possibile denire lentropia normalizzata nellintervallo
[0, 1]:
E =
3.3
E
.
log k
(3.18)
Analogamente a quanto visto in precedenza per le distribuzioni di frequenza, `e ovviamente possibile eettuare analisi incrociate sulle caratteristiche dei nostri dati anche dal punto di vista del calcolo di indici. Dato
che questo tipo di analisi `e tuttaltro che banale, ne daremo solo alcuni brevi
cenni, rimandando poi gli interessati ad ulteriori approfondimenti su appositi
testi.
Per quanto riguarda lanalisi bivariata, normalmente un buon metodo
per trovare eventuali relazioni fra feature consiste nellutilizzare lapproccio
graco. A tal proposito, molto utilizzato `e lo strumento della scatterplot
matrix, in cui gli attributi vengono messi in relazione a coppie. Ogni cella
della matrice `e detta scatterplot diagram. Un esempio di scatterplot matrix
`e riportato in Fig. 3.2.
Analogamente a quanto visto nel precedente paragrafo, sarebbe possibile
denire moltissimi indici anche per lanalisi bivariata: per brevit`a citiamo,
in questa sede, solo lindice di concordanza, ovvero la tendenza ad osservare
alti (bassi) valori di un attributo in accordo con alti (bassi) valori di unaltra
feature. In questo senso, la misura pi`
u utilizzata `e la covarianza, denita
come:
N
1
Cov(x, y) =
(xi x) (yi y) .
N i=1
(3.19)
38
r(x, y) =
Cov(x, y)
,
x y
(3.20)
39
Feature
outlook
temperature
humidity
windy
play
Descrizione
Tipo
Condizioni del meteo
Qualitativa nominale
Temperatura atmosferica
Quantitativa continua
Umidit`a atmosferica
Quantitativa continua
Situazione del vento
Qualitativa nominale
(Target) Giocare o meno a golf Qualitativa nominale
Tabella 3.3: Il dataset weather.
3.4
Analizziamo un dataset piuttosto elementare utilizzando WEKA. In particolare, analizziamo in questo paragrafo il dataset chiamato weather, e riferito ad una collezione di osservazioni riferite al meteo (sereno, nuvoloso o
piovoso), temperatura, umidit`a e situazione del vento (presente o assente).
La classe `e costituita da una variabile binaria riferita alla possibilit`a o meno
di giocare a golf, sulla base delle condizioni climatiche. Le feature e il target
di questo dataset sono ricapitolati in Tab. 3.3.
Lanciamo quindi WEKA ed avviamo lexplorer. Sullinterfaccia, clicchiamo su Open le... e selezioniamo, dalla cartella Data, il le weather.ar. Dovrebbe apparire una nestra simile a quanto mostrato in Fig.
3.3. Interpretiamo un po tutte le informazioni che ci vengono fornite.
In alto troviamo una serie di tasti, i primi per caricare dataset, mentre gli ultimi due servono per editare (sfruttando una GUI) e salvare il nostro dataset (per esempio, per vericare eventuali missing, completare i dati,
correggere valori palesemente sbagliati e via dicendo).
40
(3.21)
42
3.5
Riduzione di dimensionalit`
a
43
di,i ;
(3.22)
i=1
3.6
Loutput di WEKA conterr`a, in ordine: un riepilogo del dataset e dei metodi selezionati; la matrice di correlazione (usata in alternativa alla matrice
di covarianza); gli autovalori, la porzione di energia corrispondente, lenergia
cumulativa totale no a quellautovalore e il corrispondente autovettore; la
matrice degli autovettori; il ranking delle variabili (in questo caso, le combinazioni lineari calcolate con la PCA), ordinate dal ranker di WEKA. Notiamo
che, avendo una variabile nominale qualitativa (il meteo) che pu`o assumere
3 possibili livelli, WEKA eettua la binarizzazione; la situazione del vento `e
anchessa qualitativa, ma binaria e non necessita di ulteriore binarizzazione.
Alla ne, abbiamo 6 attributi da considerare. Notiamo che compaiono solo 5
autovalori, il che equivale a dire che il sesto autovalore `e nullo; questo fatto
`e confermato anche dallenergia cumulativa, che raggiunge il 100% con solo i
primi 5 autovalori.
Passiamo ora a capire meglio le opzioni della PCA. Possiamo settare:
il massimo numero di attributi che vogliamo visualizzare nella combinazione lineare (per semplicit`a di lettura);
se vogliamo normalizzare i dati fra [0, 1], qualora non lavessimo gi`a
fatto;
un ag per trasformare nuovamente le feature della PCA nello spazio
originario attraverso SVD;
la percentuale di energia cumulativa che vogliamo garantire.
Analizzando il ranking ottenuto in precedenza:
Ranked attributes:
0.675990846445273472
0.411301353536642624
0.195956514975330624
0.063841150150769192
0.000000000000000111
1
2
3
4
5
0.578temperature...
-0.68outlook=overcast...
0.567outlook=sunny...
0.738windy...
0.748temperature...
1
2
3
4
6
5
0.578temperature...
-0.68outlook=overcast...
0.567outlook=sunny...
0.738windy...
-0.588outlook=rainy...
0.748temperature...
Lultima prova che vogliamo eettuare riguarda la possibilit`a di eettuare il mapping inverso attraverso SVD nello spazio originale. Settiamo le
apposite opzioni e lanciamo la SVD. Loutput `e il seguente:
46
47
Capitolo 4
Classificazione
Addentriamoci ora nel problema della classicazione di pattern. In questo capitolo supporremo di utilizzare sempre un dataset X, per il quale un
attributo `e utilizzato come target. Ad ogni valore del target corrisponde una
classe. Tornando allesempio weather considerato nei paragra 3.4 e 3.6, il
target `e la variabile play, ovvero la decisione di giocare a golf o meno.
I problemi di classicazione si possono dividere in due sottocategorie,
come gi`a avevamo visto nel paragrafo 1.2:
si parla di classicazione binaria quando il target pu`o assumere solamente due valori. Un esempio `e il gi`a citato weather : le due classi
corrispondono alla decisione di giocare o no a golf. Normalmente, i
target sono del tipo yi {0, 1} oppure yi {1, 1};
si parla di classicazione multiclasse quando il target pu`o assumere
un numero nito di valori interi numerici, ovvero yi S , dove
rappresenta linsieme dei numeri naturali non negativi. Un esempio `e il
dataset iris, sempre incluso tra gli esempi di WEKA, in cui tre tipi di
ore vengono distinti sulla base delle caratteristiche di petalo e sepalo:
in questo caso, yi {1, 2, 3}, dove ogni classe corrisponde ad un preciso
ore.
Alcuni algoritmi nascono nellottica della classicazione binaria: inizieremo con lanalisi per questo problema e mostreremo, quindi, le tecniche per
la generalizzazione al problema multiclasse.
48
4.1
4.1.1
Zero Rules
Apprendimento
4.1.2
Fase in avanti
4.1.3
Lalgoritmo Zero Rules si adatta gi`a nella sua forma originaria a problemi
binari e multiclasse.
4.1.4
P (A) P (E)
,
1 P (E)
(4.1)
dove P (A) rappresenta laccuratezza, ovvero la percentuale che il nostro predittore azzecchi, e P (E) `e la probabilit`a che il classicatore indovini per pura
coincidenza:
50
nc
P (E) =
pi qi ,
(4.2)
i=1
51
FP Rate
1
0
Precision
0.643
0
Recall
1
0
F-Measure
0.783
0
Class
yes
no
CM =
(4.3)
Ccc
T Pc = k
,
i=1 Cci
k
j=1 Ccj
F Pc = k
, j = c,
C
ci
i=1
Ccc
,
P recc = k
i=1 Cic
Recc = T Pc ,
2 P recc Recc
.
F mc =
P recc + Recc
4.2
(4.4)
(4.5)
(4.6)
(4.7)
(4.8)
Terminata la rassegna sul poco utile classicatore 0R, passiamo a qualche metodo pi`
u complesso ma anche decisamente pi`
u ecace. Iniziamo la
rassegna con il Naive Bayesian Classier, anche noto come NBC.
4.2.1
Apprendimento
Lidea di base di NBC consiste nel classicare un dato sulla base del dato stesso, ovvero della probabilit`a di classe dato il pattern p (C = c |X = x),
dove C indica una variabile random per la classe, X un vettore di variabili random per gli attributi, c una particolare classe e x una particolare
osservazione. NBC si basa su due ipotesi semplicative:
1. tutte le feature sono indipendenti fra loro, data una classe;
2. non esistono attributi nascosti (e non presenti nel dataset) che inuenzino in qualche modo il processo decisionale sulla classe.
Dato che spesso, nella realt`a, queste due ipotesi sono tuttaltro che strettamente rispettate, le prestazioni del classicatore talvolta peggiorano.
Proseguiamo con lanalisi. Il teorema di Bayes ci dice che, dato un nuovo
pattern da classicare x, possiamo scegliere la classe sulla base delle seguenti
probabilit`a condizionali:
p (C = ci |X = x) =
p(C = ci )p (X = x |C = ci )
, i,
p (X = x)
54
(4.9)
=
p (X = x |C = ci ) = p
j Xj = xj |C = ci
=
j p (Xj = xj |C = ci ) ,
(4.10)
1
2j2
(xj xj )2
exp
2j2
,
(4.11)
4.2.2
Fase in avanti
La fase feedforward del NBC `e stata gi`a denita allinterno del paragrafo
sullapprendimento: allarrivo di un nuovo pattern, si utilizza lEq. (4.9) e si
sceglie la classe con probabilit`a condizionale pi`
u alta.
4.2.3
55
4.2.4
4.3
4.3.1
Prima di lanciarci nellanalisi del percettrone multistrato, `e bene cominciare a capire cosa sia un percettrone. Introdotto da Rosenblatt nel 1958
[21], esso rappresentava per lepoca uninnovazione incredibile: in pratica,
56
(4.12)
(z) = (z)
(4.13)
(z) = z (z)
(4.14)
(z) = tanh(z)
1
(z) =
1 + ez
(z) = z,
(4.15)
(4.16)
(4.17)
0
(z) =
se
se
se
1
2
z<0
z=0 .
z>0
(4.18)
(4.19)
58
2
1.5
1
0.5
0
0.5
1
1.5
2
2
1.5
0.5
0.5
1.5
1.5
0.5
0.5
0.5
0.5
1.5
59
quasi inutilizzato per una decina danni, no a quando non vennero sviluppate
le cosiddette reti multistrato, cio`e le MLP.
4.3.2
Architettura di un MLP
60
hk zkj
=g
zkj f
xi wik
(4.20)
61
Come anticipato nelle precedenti righe, ci concentreremo in queste dispense solo sui Supervised learning MLP, per i quali analizziamo lalgoritmo
per lapprendimento.
4.3.3
Apprendimento
(4.21)
1 2
e.
2 j j
(4.22)
(s) (s)
wji = j yi ,
(4.23)
(s)
nella quale j `e
(s)
j =
(s)
E (s)
(s)
(4.24)
(s)
j
(s)
(s)
(s)
j = ej j ,
(4.25)
(s)
(s) (s)
= j
k wkj .
(4.26)
Dato che la precedente formula dipende da wkj , essa `e anche dipendente dalle
variazioni dei pesi nel nodo k. In questo appare chiaro il signicato della BP.
A volte, pu`o aiutare la convergenza laggiunta di un altro termine allEq. (4.23), ovvero del cosiddetto momento m [0, 1]: sfortunatamente,
anchesso `e un iperparametro ed `e estremamente dicile settarne il valore
ottimo, quantomeno a priori. Anche per il momento valgono le considerazioni fatte per , ovvero normalmente 0.2 < m < 0.8. LEq. (4.23) risulta cos`
modicata:
(s)
(s) (s)
(s1)
wji = j yi + mwji
(4.27)
63
4.3.4
Fase in avanti
Una volta trovati e salvati i pesi, la fase in avanti `e semplicemente realizzata attraverso lEq. (4.20), nella quale vengono applicati i pesi trovati con
la BP.
4.3.5
4.3.6
Consideriamo nuovamente il dataset weather. Da WEKA explorer, selezioniamo il classicatore MultiLayerPerceptron, che possiamo trovare nella sottocategoria functions. WEKA utilizza solo funzioni di attivazione
di tipo sigmoidale, come da Eq. (4.16). Analizziamo le opzioni a nostra
disposizione:
GUI permette di utilizzare uninterfaccia graca per visualizzare la
rete creata. Se settato a false, attiviamolo;
autobuild, se attivato, consente a WEKA di modicare i neuroni di
hidden in maniera automatica. Spesso utile, conviene mantenere su
true lopzione;
debug `e la solita opzione per eventuali output di debug;
decay consente a WEKA di abbassare iterativamente il learning rate
nel caso di reset della rete (vedi sotto). Settiamolo in queste prove a
false;
hiddenLayers rappresenta il numero di neuroni hidden. Esistono
alcune wildcards per questo valore:
64
a=
#attributi+#classi
;
2
i = #attributi;
o = #classi;
t = 2 a;
learningRate e momentum sono le quantit`a e m di cui abbiamo
parlato nel paragrafo 4.3.3. In queste prove, li lasceremo pari ai valori
di default, cio`e = 0.3 e m = 0.2;
nominalToBinary `e utilizzato per binarizzare la matrice dei dati nel
caso di variabili qualitative (per noi, true);
normalizeAttributes viene utilizzato per normalizzare le feature tra
[1, 1]. Anche in questo caso setteremo true;
normalizeNumericClasses normalizza i valori numerici dei target tra
[1, 1] (true);
randomSeed `e il seed per lalgoritmo di random per la selezione del
punto di partenza e per lo shuing dei dati (settiamo seed pari a 16,
un numero casuale ma che ci permette analisi consistenti);
reset consente allalgoritmo di resettare la rete nel caso durante lesecuzione il valore delle uscite tenda a divergere rispetto al target voluto.
Settiamolo a false;
trainingTime ssa il criterio di stop sul numero massimo di iterazioni
da eseguire. Settiamolo a 1000;
validationSetSize e validationThreshold vengono utilizzati come
criterio di stop in alternativa al numero di iterazioni. Il primo valore, se diverso da 0, ssa percentualmente il numero di pattern del
training set che non verranno utilizzati per trovare i pesi. Una volta
trovati i pesi coi restanti pattern, la rete verr`a testata sul validation
set e verr`a trovato un errore. Tale errore scender`a per un certo numero di iterazioni, poi la rete tender`a ad overttare (in generale) e
lerrore tender`a a salire: validationThreshold ssa dopo quante iterazioni consecutive con peggioramento dellerrore dobbiamo fermarci.
65
4.3.7
4.3.8
67
4.4
4.4.1
8
6
4
2
0
2
4
6
8
10
6
min
w ,b
1
w 2
2
yi (w x + b) 1 i [1, . . . , l]
69
(4.28)
(4.29)
(4.30)
analogamente a quanto visto per il percettrone. Si pu`o dimostrare che il margine `e pari a 1/ w 2 , quindi andiamo a massimizzarlo attraverso il problema
di minimo vincolato (4.28).
Il problema, in molti casi pratici, consisteva nel fatto che il vincolo (4.29)
era tuttaltro che facile da rispettare, perch`e prevedeva che non vi fosse sovrapposizione fra classi. Lidea fondamentale in questo senso `e stata lintroduzione di variabili di slack i 0, che permettessero ad alcuni dati di violare
il vincolo. La formulazione, detto problema primale di SVM, `e la seguente:
min
w ,b,
1
w 2 + CeT
2
yi (w x + b) 1 i
(4.31)
i [1, . . . , l]
i 0 i [1, . . . , l]
(4.32)
(4.33)
con ei = 1, i, e eT che rappresenta quindi la somma degli errori che commettiamo nella classicazione del training set. C `e un iperparametro che
bilancia la componente di massimizzazione del margine (tendenza allundertting) e quella di minimizzazione dellerrore (tendenza allovertting).
Lanalisi sarebbe, quindi, completa, se non fosse per il fatto che il problema (4.31) `e tuttaltro che banale da risolvere. Fortunatamente, utilizzando la
tecnica dei moltiplicatori di Lagrange, introducendo l moltiplicatori i (uno
per pattern), si ottiene il cosiddetto problema duale di SVM :
min
1 T
Q + r T
2
0 i C i [1, . . . , l]
(4.35)
yT = 0
(4.36)
(4.34)
(4.37)
Kernel
Lineare
Polinomiale
Gaussiano
Funzione
K(xi , xj ) = xi xj
K(xi , xj ) = (xi xj + 1)p
K(xi , xj ) = exp xi xj 22
4.4.2
Apprendimento
La fase di training di SVM consta nel risolvere il problema duale e trovare i moltiplicatori di Lagrange ottimi e il bias b che, per quanto non
appaia in forma esplicita in (4.34), ci `e necessario poi per la fase in avanti. Per risolvere il problema duale sono state sviluppate moltissime tecniche,
ma la pi`
u usata `e la cosiddetta Sequential Minimal Optimization (SMO): il
CCQP viene decomposto in tanti problemi elementari, in cui viene trovata
` necessario trovare la soluzione per
la soluzione per due pattern per volta. E
due pattern semplicemente a causa della presenza del vincolo di uguaglianza
71
72
4.4.3
Fase in avanti
La fase in avanti consiste nel vericare il segno della funzione che descrive
il piano separatore. In termini di problema primale, supponendo target del
tipo yi = 1, la classicazione di un nuovo pattern x avviene tramite:
y = (w x + b) ,
(4.38)
+1
(z) =
1
random(1)
se
se
se
z>0
z<0 .
z=0
(4.39)
yi i K (x, xi ) + b ,
(4.40)
i=1
4.4.4
73
f (x) =
yii K (x, xi ) + b
(4.41)
i=1
4.4.5
SVM e la probabilit`
a
pe (x) =
,
(4.42)
1+
dove A e B sono due parametri che vengono ssati risolvendo un problema
di Maximum Likelihood. Non approfondiremo oltre questo argomento.
eAf (x)+B
74
4.4.6
Lanciato WEKA explorer, carichiamo il dataset weather, tanto per iniziare, e quindi spostiamoci sui tool di classicazione. Vogliamo iniziare con
un kernel lineare. Nella sottocategoria functions troviamo la SVM sotto le
mentite spoglie del nome SMO (SVM `e un marchio registrato). Analizziamo
le principali opzioni:
buildLogisticModel consente di ottenere luscita in termini probabilistici, utilizzando il metodo di Platt del paragrafo 4.4.5. Per ora,
settiamolo a false;
c `e il valore delliperparametro C. Settiamolo a 1;
cacheSize `e la dimensione della cache per la memorizzazione della
matrice Q;
debug rappresenta eventuali output di debug;
epsilon rappresenta lo zero di macchina per la rappresentazione di
coecienti, bias, ecc. Conviene lasciarlo invariato;
exponent `e lesponente p del kernel polinomiale. Settiamolo a p = 1;
featureSpaceNormalization permette di eettuare la normalizzazione
dei dati nello spazio non lineare descritto attraverso le funzioni kernel.
Per ora, lasciamolo a false;
lterType permette di applicare ltri ai dati. Settiamolo sulla normalizzazione del training set;
gamma `e il valore di per il kernel gaussiano. Settiamo = 1;
lowOrderTerms include o meno il termine +1 nel kernel polinomiale.
Per le denizioni di Tab. 4.1, setteremo questo parametro a false se
usiamo un kernel lineare e a true se il grado del polinomio p `e pi`
u
grande di 1. Per ora lasciamolo a false;
numFolds permette di utilizzare la cross validation (la analizzeremo
nei prossimi capitoli) per cercare i valori di A e B per la sigmoide della
probabilit`a. Settiamo il valore 1 per disattivare lopzione;
75
4.4.7
Algoritmo
Abbiamo analizzato nel paragrafo 3.5 la PCA e il suo utilizzo per la
selezione di feature. Purtroppo, la PCA utilizza come input il dataset che
76
77
yii (xi ),
(4.43)
i=1
dove (x) `e una funzione tale per cui un kernel pu`o essere denito come:
K(xi , xj ) = (xi ) (xj ).
(4.44)
1
1
i j qij
i j qij ,
2 i j
2
(4.45)
i=d j=d
ovvero calcoliamo, in termini di peso nel margine e per ogni feature di s, linuenza di ogni feature. Per il resto, lalgoritmo `e identico a quello presentato
in precedenza.
78
5
4
3
2
1
2
1
5
4
3
outlook=overcast
outlook=sunny
humidity
temperature
outlook=rainy
Verichiamo ora la stabilit`a di tale ranking anche al variare di C. Settiamo, quindi, C = 100 e lanciamo nuovamente lanalisi. Otteniamo:
Ranked attributes:
6 5 humidity
5 2 outlook=overcast
4 4 temperature
3 6 windy
2 1 outlook=sunny
1 3 outlook=rainy
Notiamo che il ranking `e stato profondamente modicato: in questo caso,
sarebbe quindi necessario un doppio lavoro di ricerca di iperparametro per la
classicazione e per la feature selection. Comunque, in molti casi reali, dove
i dataset sono caratterizzati da un maggior numero di pattern, le indicazioni
del ranking sono spesso pi`
u stabili.
4.5
4.5.1
Decision Trees
La nascita degli alberi di decisione
Abbiamo analizzato no a questo punto molti metodi per la classicazione. Sfortunatamente, queste tecniche forniscono come output un modello,
al quale viene dato in pasto un nuovo pattern e che restituisce il target stimato dopo elaborazioni pi`
u o meno complesse sulle feature che compongono
listanza stessa. Nasce quindi il problema dellinterpretabilit`a del classicatore: avere un modello che classichi stupendamente, ma che non sia in
grado di spiegarci (almeno in termini comprensibili) il fenomeno sottostante,
spesso non ci basta. Nei casi in cui abbiamo bisogno di regole interpretabili,
le quali portano poi alla classicazione di un pattern, dobbiamo ricorrere agli
alberi di decisione (decision trees, DT ).
80
http://www.rulequest.com/Personal/
81
4.5.2
Apprendimento
Analizziamo lalgoritmo di apprendimento per C4.5 in versione originale, in quanto decisamente pi`
u semplice: solo alla ne di questo paragrafo
chiariremo le dierenze e le novit`a di C4.8. Lapprendimento consiste di due
step:
crezione dellalbero;
pruning dellalbero.
Creazione dellalbero
Per capire bene lapprendimento di un DT, dobbiamo partire col denire
alcune quantit`a. Al ne di comprendere meglio i parametri che andremo
a presentare, faremo degli esempi riferiti al dataset weather, presentato in
formato testuale in Tab. 4.2.
Deniamo come XG il dataset weather. Data una distribuzione di probabilit`a di una variabile, per esempio la distribuzione relativa di un attributo,
si denisce informativit`
a di una variabile la quantit`a
I(P ) =
82
pi log2 pi ,
(4.46)
Meteo
sunny
sunny
overcast
rainy
rainy
rainy
overcast
sunny
sunny
rainy
sunny
overcast
overcast
rainy
Temperatura
85
80
83
70
68
65
64
72
69
75
75
72
81
71
Umidit`
a
85
90
86
96
80
70
65
95
70
80
70
90
75
91
pi log2 pi ,
(4.47)
i=1
con k che rappresenta il numero di classi. Ad esempio, nel dataset del golf
abbiamo 9 esempi appartenenti alla classe yes e 5 alla no. Pertanto,
abbiamo
5
9
5
9
log2
log2
0.94.
(4.48)
14
14 14
14
Linformativit`a `e massima se le classi sono equidistribuite ed `e minima se
una classe `e assente.
Supponiamo per il momento di avere a disposizione solo variabili qualitative. Se dividiamo il nostro dataset X sulla base dei valori assunti da una
particolare variabile v, possiamo calcolare linformativit`a del nostro dataset
relativamente alle partizioni che andiamo a calcolare. In pratica, vogliamo
calcolare linformazione necessaria per identicare una classe in X, dopo che
Inf o (XG ) =
83
un particolare valore di una variabile qualitativa `e stato determinato. Ipotizzando che la variabile possa assumere n valori vi , i = 1, ..., n, possiamo
denire in breve Inf o(v, X):
Inf o(v, X) =
n
Xi
i=1
X 0
Inf o (Xi ) ,
(4.49)
2 3
4
3 2
5
4
,
, 0 + I
,
+ I
0.694. (4.50)
5 5
14
4
14
5 5
Inne, vogliamo trovare il guadagno, in termini di informativit`a, nellintroduzione della variabile v rispetto allidenticazione a priori di una classe.
Il guadagno viene denito come:
Gain(v, X) = Inf o(X) Inf o(v, X).
(4.51)
(4.52)
Gain(v, X)
,
SplitInf o(v, X)
(4.53)
dove la quantit`a SplitInf o(v, X) `e denita sulla base dellinformativit`a dovuta allo splitting del dataset in subset nei quali una variabile qualitativa
mantiene valore costante:
SplitInf o(v, X) = I
X1 0 X2 0
Xn 0
,
, ...,
X 0 X 0
X 0
84
.
(4.54)
4.5.3
Fase in avanti
4.5.4
86
4.5.5
Avviato WEKA explorer, consideriamo weather e, nel tab per la classicazione, selezioniamo i DT. In particolare, dovremo andare nella sottocategoria trees, nella quale C4.8 (WEKA utilizza questa versione) `e identicato
come J4.8 (in quanto realizzato in Java e non in C++). Le opzioni a nostra
disposizione sono:
binarySplits forza split di tipo binario anche su variabili qualitative. Permette, di fatto, il ritorno a ID3. A noi interessa C4.8, quindi
manterremo a false questa opzione;
condenceFactor `e il fattore di condenza per il pruning: pi`
u basso
`e, pi`
u lalbero viene prunato. Valori tra 0.15 e 0.30 di solito sono i pi`
u
gettonati. Noi per ora settiamo 0.25;
debug sono le solite stampe di debug;
minNumObj permette di settare il numero minimo di istanze prima
di ssare una foglia nellalbero. Normalmente, si setta a 2;
numFolds `e il numero di fold per una tecnica di pruning ecace ma
complessa, la reduced error pruning, che non abbiamo analizzato;
reducedErrorPruning `e la citata tecnica. Settiamo a false;
saveInstanceData permette di salvare i dati di training nella visualizzazione dellalbero;
seed `e il seed per lalgoritmo di random per la reduced error pruning;
subtreeRaising permette allalgoritmo di pruning di valutare la modica dei sottoalberi al ne di migliorare le performance. Normalmente,
`e settato a true;
unpruned `e utilizzato per disattivare il pruning (false);
useLaplace permette di usare lindice di Laplace per il pruning. Dato che spesso `e un indice troppo conservativo, talvolta si disattiva
lopzione. Anche noi, in eetti, la setteremo a false.
87
89
Capitolo 5
Regressione
Terminata la nostra rassegna sugli algoritmi per la classicazione, passiamo al problema della regressione. Anche in questo caso, supporremo di avere
sempre a disposizione un dataset X, per il quale abbiamo denito un target
y di tipo numerico. Lobiettivo che ci preggiamo `e trovare una relazione
fra feature e target per calcolare un output di tipo analogico ecace e con
un basso errore nella fase in avanti. Per vericare le prestazioni del nostro
modello, utilizzeremo i gi`a analizzati RMSE e MAE ed introdurremo lutilizzo del coeciente di correlazione r (vedi paragrafo 3.3) tra le uscite reali
del nostro training o volidation set e quelle stimate dal modello: ricordiamo
che r [1, 1] e r = 0 indica correlazione minima (e prestazioni pessime).
5.1
Zero Rules
5.1.1
Apprendimento
5.1.2
Fase in avanti
5.1.3
5.2
0
|z|
se
se
|z| <
.
|z|
(5.1)
91
1
w 2 + C
(i + i)
2
i=1
l
min
w ,b,,
(5.2)
yi (w x + b) + i
i [1, . . . , l]
(5.3)
(w x + b) yi + i
i [1, . . . , l]
(5.4)
i , i
0 i [1, . . . , l]
(5.5)
ovvero in una forma sostanzialmente identica alla SVM a meno dellintroduzione di una doppia variabile di slack anch`e la stima delloutput yi possa
essere sia minore che maggiore rispetto alloutput reale yi. In Fig. 5.1, presentiamo un esempio graco che dovrebbe meglio chiarire il signicato del
doppio slack.
l l
i=1
j=1 (i i ) j j K(xi , xj )+
li=1 (i + i ) + li=1 yi (i i )
1
2
0 i , i C i [1, . . . , l]
l
(i i ) = 0.
(5.6)
(5.7)
(5.8)
i=1
5.2.1
Apprendimento
SVM, pertanto risolvibile usando SMO. Ed `e infatti proprio questo algoritmo che utilizzeremo per trovare la soluzione ottima, che nel caso di SVR
comprende sia che , oltre, ovviamente, al bias, calcolabile sfruttando le
KKT.
5.2.2
Fase in avanti
(i i ) K (x, xi ) + b.
(5.9)
i=1
5.2.3
5.3
5.3.1
Regression Trees
Apprendimento
I Regression Trees (RT) ricordano non solo nel nome i DT: infatti, lalgoritmo di apprendimento `e assolutamente identico a quanto analizzato nel
paragrafo 4.5.2. Lunica dierenza consta nello stabilire il valore di una foglia:
93
se, nel caso dei DT, si sceglieva la classe maggioritaria, nei RT si considera
la media dei target del subset sopravvissuto ai precedenti split.
5.3.2
Fase in avanti
5.3.3
Lanciamo lanalisi su CPU e otteniamo un errore piuttosto alto: otteniamo un miglioramento pari circa al solo 60% rispetto a 0RR e il coeciente
di correlazione non `e alto (circa 0.8).
SVR sembra il miglior algoritmo per la regressione: lo sar`a anche su un
validation set, separato dal training set? Trascurando 0RR, di sicuro pessimo, utilizziamo il 67% dei dati per il training e il restante come validation.
Con RT, otteniamo sul validation i tre seguenti valori:
r = 0.85;
errore MAE relativo a 0RR: 44.21%;
errore RMSE relativo a 0RR: 54.89%.
Lanciamo SVR con kernel gaussiano e i parametri identicati nel paragrafo 5.2.3. I valori ottenuti sono decisamente migliori:
r = 0.97;
errore MAE relativo a 0RR: 18.08%;
errore RMSE relativo a 0RR: 22.86%.
95
Capitolo 6
Clustering
Altro problema interessante da arontare in ottica BI `e il clustering: esso
consiste nel raggruppamento di elementi omogenei in un insieme di dati. Le
tecniche di clustering si basano sul concetto di distanza, che risulta quindi
centrale nellanalisi: elementi vicini (secondo una certa metrica) sono da
considerarsi omogenei e vanno inseriti nello stesso cluster; pattern eterogenei
saranno distanti ed inclusi in dierenti insiemi.
Le tecniche di clustering vengono utilizzate spesso quando si hanno a
disposizione dati eterogenei e si `e alla ricerca di elementi anomali: un caso
tipico riguarda le compagnie telefoniche, le quali utilizzano le tecniche di
clustering per cercare di individuare in anticipo gli utenti che diventeranno
morosi. Essi, infatti, tendono ad avere un comportamento diverso rispetto
alla normale utenza e le tecniche di clustering riescono sovente ad individuarli
o almeno a denire un cluster, nel quale vengono concentrati tutti gli utenti
che hanno unelevata probabilit`a di diventare morosi.
Per il clustering, in generale, non avremo a disposizione un target, ma
semplicemente un dataset X, composto da un certo numero di feature. Spesso
non si conosce nemmeno il numero di cluster k a priori: in questo caso,
k diviene una sorta di iperparametro, il cui valore ottimo va ricercato per
tentativi.
6.1
kMeans
6.1.1
Apprendimento
k
xj j 2 ,
= min
2
1 ,...,k
i=1 xj Sj
(6.1)
Ovviamente, la qualit`a del risultato dipende anche dallinizializzazione randomica dei centroidi: per questo motivo, `e spesso preferibile lanciare diverse
istanze di kmeans, partendo da centroidi dierenti. Alla ne, si opta per la
congurazione a CKM minimo.
6.1.2
Fase in avanti
6.1.3
3.418
1.464
98
0.244
Std Devs:
Cluster 2
Mean/Mode:
Std Devs:
0.3525 0.381
0.1735 0.1072
In fase di introduzione a questo capitolo, abbiamo detto che spesso il clustering `e utilizzato per trovare clienti morosi: in WEKA, `e incluso il dataset
labor, per classicazione binaria, in cui, sulla base del prolo di alcuni lavoratori, si prova a stimare se essi siano dei buoni lavoratori o meno. Proviamo
ad applicare il kmeans, con k = 2 e seed pari a 10: sbagliamo nel 23% circa
dei casi. Non solo, tali errori sono particolarmente gravi, in quanto quasi
per intero si riferiscono a cattivi lavoratori che vengono, invece, caratterizzati nella classe good. Proviamo a cambiare seed, settandolo a 1000: la
situazione peggiora (passiamo quasi al 40% di errore), e questa volta siamo
troppo cattivi (consideriamo troppi lavoratori come bad). Causa di queste scarse performance potrebbe essere la presenza di molti missing tra i dati
di labor.
99
Capitolo 7
Association rules
Uno dei primi esempi che abbiamo presentato in queste dispense riguardava la catena di supermercati, in cui volevamo cercare possibili associazioni
fra prodotti (o fra prodotto e acquirente) per regolamentare la disposizione
delle merci nei nostri supermercati. In questi casi, e in moltissimi altri nella
vita di tutti i giorni prima ancora che nel mondo della BI, `e necessario trovare regole che leghino fra loro alcune variabili; in termini di Data Mining,
dobbiamo trovare eventuali relazioni causali tra feature che descrivono una
qualche entit`a.
Gli algoritmi per trovare association rules ricevono, in ingresso, un dataset X, composto da l pattern e m feature, senza alcun target: lobiettivo `e
trovare relazioni del tipo if x1 = 10 x6 > 33 then x3 = false, ovvero relazioni
di causalit`a, similmente a quanto visto per i DT. In questo caso, a dierenza
degli alberi, per`o, il nostro obiettivo non `e trovare una sorta di percorso
ottimo che, dagli ingressi, attraverso un certo numero di regole ci porti verso
le uscite, bens` vogliamo trovare un qualsiasi legame che colleghi in qualche
modo due o pi`
u feature del nostro dataset. In termini meno informali, diremo
che, mentre i DT erano un metodo supervised (sapevamo cosa volevamo
trovare, ovvero il target), gli algoritmi di association rules sono unsupervised,
in quanto partiamo dal principio di non conoscere nulla del nostro dataset e di
voler cercare di ottenere informazioni attraverso lapplicazione di un qualche
algoritmo. Non solo: nel caso delle association rules lalgoritmo si conclude,
di fatto, con la fase di apprendimento, in quanto una vera fase in avanti non
esiste. Infatti, ci`o che ci interessa non `e trovare un modello da applicare a
runtime, ma solo identicare relazioni allinterno di X. Per questo motivo,
100
7.1
Apriori
7.1.1
Apprendimento
5
0.36.
(7.2)
14
Talvolta, il supporto viene inteso in termini assoluti e non relativi: in tal
caso, non si divide per l. Ad esempio, per il caso della condizione meteo =
rainy, avremmo un supporto pari a 5.
support(meteo = rainy) =
101
Meteo
sunny
sunny
overcast
rainy
rainy
rainy
overcast
sunny
sunny
rainy
sunny
overcast
overcast
rainy
Temperatura
hot
hot
hot
mild
cold
cold
cold
mild
cold
mild
mild
mild
hot
mild
Umidit`
a
high
high
high
high
normal
normal
normal
high
normal
normal
normal
high
normal
high
Tabella 7.1: Dataset weather in forma discretizzata, con variabili solo di tipo
qualitativo.
102
support(A B)
lAB
=
.
support(A)
lA
(7.3)
lif t(A B) =
support(A B)
conf idence(A B)
=
.
support(B)
support(A)support(B)
(7.5)
2 (A B) =
(support(A B) support(A)support(B))2
.
support(A)support(B)
(7.6)
103
Al primo passo, vengono considerati i supporti di tutte le possibili combinazioni di variabili presenti in X. Le combinazioni il cui supporto supera
suppm entrano a far parte dellitemset 1.
Al passo successivo, si parte da tutte le relazioni dellitemset 1, si trovano tutte le loro possibili combinazioni e, per ognuna di esse, si calcolano
i supporti: entreranno a far parte dellitemset 2 tutte le combinazioni che
superano la soglia di supporto.
Si procede iterativamente a creare itemset, no a quando non si niscono
le possibili combinazioni e/o nessuna nuova combinazione ha un supporto
maggiore rispetto alla soglia. A questo punto, si trovano le prime regole, nelle
quali la relazione aggiunta nellultimo itemset risulta essere lhead mentre le
precedenti costituiscono il body. Ad esempio, se nellultimo itemset troviamo
una relazione del tipo:
humidity=normal windy=FALSE play=yes
play=yes costituir`a lhead e lAND delle due relazioni precedenti (humidity=
normal e windy=FALSE) sar`a il body. Una volta terminate queste relazioni,
si continua a creare regole utilizzando le ultime due istanze come head (es.,
windy=FALSE e play=yes) e le restanti come body (es., humidity=normal).
Il passo successivo consiste nel ripetere queste operazioni per tutti gli itemset
precedenti, escluso litemset 1 (per il quale avevamo ancora solo una relazione). Alla ne, per ogni regola viene calcolata la condenza e, se necessario, la
signicanza: vengono prese in considerazione le sole regole aventi condenza
maggiore di confm (e, se denita, signicanza maggiore di una soglia 2m ).
7.1.2
Abbiamo detto che spesso, per analisi di tipo association rules, neces` questo
sitiamo di dataset composti da variabili solo di tipo qualitativo. E
il caso di WEKA. Se vogliamo, quindi, cominciare le nostre analisi con un
dataset semplice quale weather, dobbiamo utilizzarne la versione composta
da sole variabili qualitative, cio`e weather.nominal.
Nel tab Associate, selezioniamo il metodo Apriori, le cui opzioni
sono:
delta rappresenta il decremento iterativo del supporto dal suo valore
massimo al suo valore minimo (settiamo 0.05);
104
conf:(1)
conf:(1)
7.1.3
E se avessimo solamente a disposizione un dataset con variabili quantitative? Perch`e non possiamo trovare relazioni, ad esempio, in iris? Per poter
utilizzare anche questi dataset, `e necessario applicare un ltro ai dati stessi.
Nel tab di preprocessing dei dati, selezioniamo iris e optiamo per il ltro
Discretize nelle sottocategorie unsupervised e attribute. Le opzioni
del ltro sono:
attributeIndices rappresenta lelenco degli indici degli attributi numerici da discretizzare (last-rst indica che vogliamo discretizzare
tutti gli attributi, se numerici);
bins rappresenta il numero di intervalli (per esempio, potremmo
settarlo a 5);
desiredWeightOfIstancesPerInterval permette di settare un peso per
ogni pattern in ogni intervallo (disattiveremo lopzione, settando -1);
ndNumBins ricerca automaticamente il numero di intervalli in cui
splittare una feature (tra 1 e il valore di bins). Settiamo true;
invertSelection discretizza solo le variabili non selezionate nella prima
opzione (false);
makeBinary binarizza le feature dopo averle discretizzate (false);
useEqualFrequency trova gli intervalli sulla base di indici di frequenza
e non in intervalli di uguale dimensione (false).
Applichiamo il ltro e, quindi, lanciamo lanalisi di Apriori, richiedendo
un supporto minimo del 30%. Troviamo le seguenti regole:
106
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
49 conf:(1)
49 conf:(1)
49 conf:(1)
49 conf:(0.98)
49 conf:(0.98)
49 conf:(0.98)
107
Capitolo 8
Valutazione comparativa di
algoritmi di Data Mining
8.1
8.1.1
108
8.1.2
Molto pi`
u appropriato per i nostri scopi `e utilizzare un validation set
separato dal training set, che possiamo fornire in un le separato o ottenere
splittando in training e validation il dataset che abbiamo a disposizione.
Selezioneremo alla ne il modello che, istruito sul training set, meglio si
comporta sul validation set.
8.1.3
i=1 ei
.
(8.1)
l
Il vantaggio della KCV `e che, se abbiamo un singolo dataset (quindi,
senza validation separato), non sprechiamo dati per il training, dato che a
turno tutti i pattern vengono usati per lapprendimento; non solo, abbiamo
anche un validation set molto grande, essendo alla ne composto anchesso,
di fatto, da tutte le istanze del dataset. Lo svantaggio consiste nel dover
ripetere k volte lapprendimento: questo signica lunghi tempi di attesa nel
caso di dataset con molti pattern di training.
Un paio di note conclusive. Spesso, prima di applicare la KCV `e necessario un rimescolamento casuale dei dati del dataset: questo per evitare che
una fold per il training sia costituita da soli dati di una classe, ad esempio.
Fissare k potrebbe essere considerato come una ricerca di iperparametro: in
verit`a, la pratica ha ampiamente dimostrato che k = 5 e k = 10 sono valori
ottimi da utilizzare.
e=
109
Metodo
Errore TS
NBC
18.33%
MLP
2.33%
SVM lin
3.27%
SVM gauss
1.00%
1.00%
DT
Errore test
22.96%
4.81%
5.31%
2.84%
3.83%
Tabella 8.1: Risultati per il metodo training set (TS): in grassetto, le migliori
percentuali ottenute.
8.2
Per le nostre prove, considereremo un dataset nora mai introdotto, segment, rappresentante porzioni di immagini da classicare in 7 classi sulla base
del materiale in esse rappresentato (erba, cemento,...). Il dataset `e composto
da ben 1500 pattern, ma, cosa a noi ancor pi`
u gradita, `e incluso un test set:
ci`o signica che partiremo a confrontare metodi statistici per la classicazione (NBC, MLP, SVM lineare, SVM gaussiana, DT), ne sceglieremo uno
per ogni tecnica di confronto (TS, VS, KCV) e vericheremo poi sul test set
quale si comportava meglio. In particolare, per SVM useremo C = 100 e, nel
caso di SVM gaussiana, = 1.
8.2.1
Metodo TS
Metodo
Errore VS Errore test
NBC
19.87%
22.96%
MLP
4.40%
4.81%
SVM lin
4.93%
5.31%
SVM gauss
3.47%
2.84%
5.60%
3.83%
DT
Tabella 8.2: Risultati per il metodo validation set (VS): in grassetto, le
migliori percentuali ottenute.
8.2.2
Metodo VS
Usiamo ora il 50% dei dati per il training e lasciamo la restante met`a
come validation. Anche in questo caso, analizziamo i risultati in Tab. 8.2:
il risultato migliore corrisponde solo alla SVM gaussiana, che eettivamente
`e quella che meglio si comporta sul test set. Non solo: la stima dellerrore
sul validation set `e decisamente migliore rispetto a quella del training set,
essendo addirittura peggiorativa rispetto al rate ottenuto.
8.2.3
Metodo KCV
Terminiamo lanalisi con la KCV, settando k = 10 e selezionando lapposita opzione in WEKA explorer tra le Test options. Presentiamo in Tab.
8.3 i risultati per la Cross Validation: anche in questo caso, la SVM gaussiana risulta il metodo statistico che meglio si comporta. La stima dellerrore,
in pi`
u, `e molto buona, dato che la dierenza `e nellordine dello 0.1%.
111
Metodo
NBC
MLP
SVM lin
SVM gauss
DT
Errore KCV
18.93%
3.27%
4.13%
2.73%
4.27%
Errore test
22.96%
4.81%
5.31%
2.84%
3.83%
8.3
Analisi in WEKA KF
112
8.3.1
Input
Il primo passo corrisponde alla selezione del dataset. Essendo sotto forma
di le ar, selezioniamo il tab per gli input e trasciniamo nello spazio per la
creazione del modello il blocco ArLoader. Clicchiamo col tasto destro e
conguriamo il blocco, selezionando il le per il nostro dataset.
8.3.2
8.3.3
8.3.4
8.3.5
8.3.6
Uscita a video
Ultimo step: porre in uscita a video i nostri risultati. Aggiungiamo, quindi, un blocco Text Viewer (disponibile nel tab Visualization) e connettiamo le uscite testuali (text) dei blocchi Classier Performance Evaluator
al visualizzatore. Non ci resta che eseguire il tutto.
8.3.7
Abbiamo terminato gli step necessari, dovremmo avere ora a disposizione una struttura tipo quella mostrata in Fig. 8.1. Non ci resta che lanciare
lanalisi: clicchiamo col tasto destro su ArLoader e, nella sottocategoria
Actions, optiamo per Start loading. Attendiamo il termine dellesecuzione (ci viene comunicato nella barra dei log sottostante), quindi clicchiamo col
tasto destro sul Text viewer e selezioniamo Show results: nella nestra
di testo, sulla sinistra, possiamo selezionare i risultati per i metodi inseriti
` facilmente vericabile che i valori, come ci si
nel progetto e visualizzarli. E
attendeva, sono gli stessi di Tab. 8.3.
114
8.4
Note conclusive
115
Bibliografia
[1] R. Agrawal e R. Srikant. Fast algorithms for mining association rules in large
databases. In Proc. of the Int. Conf. on Very Large Databases, pagg. 478499,
1994.
[2] D. Anguita, S. Ridella, e D. Sterpi. Testing the augmented binary multiclass
svm on microarray data. In Proc. of the IEEE Int. Joint Conf. on Neural
Networks, IJCNN 2006, pagg. 19661968, 2006.
[3] M. Aupetit. Homogeneous bipartition based on multidimensional ranking.
In Proc. of the European Symposium on Artificial Neural Networks, ESANN
2008, 2008.
[4] V. Barnett. Elements of Sampling Theory. Arnold, 1975.
[5] M. Berry e G. Lino. Data Mining Techniques for Marketing, Sales, and
Customer Support. John Wiley & Sons, 1997.
[6] C. J. C. Burges. A tutorial on support vector machines for classication.
Data Mining and Knowledge Discovery, 2:121167, 1998.
[7] J. Cohen. A coecient of agreement for nominal scales. Educational and
Psychological Measurement, 20(1):3746, 1960.
[8] C. Cortes e V. Vapnik. Supportvector networks. Machine Learning, 27:273
297, 1991.
[9] U. Fayaad. Proceedings of the First Int. Conf. on Knowledge Discovery and
Data Mining. Montreal, Canada, 1995.
[10] P. Giudici. Applied Data Mining: Statistical Methods for Business and
Industry. John Wiley & Sons, 2003.
[11] I. Guyon, J. Weston, S. Barnhill, e V. Vapnik. Gene selection for cancer
classication using support vector machines. Machine Learning, 46:389422,
2002.
[12] G. H. John e P. Langley. Estimating continuous distributions in bayesian
classiers. In Proc. of the 11th Int. Conf. on Uncertainity in Artificial
Intelligence, pagg. 338345, 1998.
[13] I. T. Jollie. Principal component analysis. In Springer Series in Statistics,
2002.
116
[14] R. Kimball e M. Ross. The Data Warehouse Toolkit (2nd edition). John
Wiley & Sons, 2002.
[15] T. Kohonen. SelfOrganizing Maps (3rd edition). Springer, 2001.
[16] M. L. Minsky e S. A. Papert. Perceptrons. Cambridge Press, 1969.
[17] K. Pearson. On lines and planes of closest t to systems of points in space.
Philosophical Magazine, 2(6):559572, 1901.
[18] J. C. Plat. Probabilistic outputs for support vector machines and comparison
to regularized likelihood methods. In Advances in Large Margin Classifiers.
MIT Press, 2000.
[19] J. R. Quinlan. Learning with continuous classes. In Proc. of the Australian
Joint Conf. on Artificial Intelligence, pagg. 343348, 1992.
[20] J. R. Quinlan. C4.5: Programs for Machine Learning. Morgan Kaufmann,
1993.
[21] F. Rosenblatt. The perceptron: A probabilistic model for information storage
and organization in the brain. Psychological Review, 65(6):386408, 1958.
[22] A. J. Smola e B. Schoelkopf. A tutorial on support vector regression.
Rapporto tecnico, Statistics and Computing, 1998.
[23] V. Vapnik. The Nature of Statistical Learning Theory. Springer, 2001.
[24] Y. Wang e I. H. Witten. Induction of model trees for predicting continuous
classes. In Proc. of the European Conference on Machine Learning, 1997.
117