Sei sulla pagina 1di 33

Dr. A.

Appice

Alberi di Decisione

Caso di studio di Metodi Avanzati di


Programmazione
AA 2012-2013
Dr. A. Appice

Data Mining

Lo scopo del data mining è l’estrazione (semi)


automatica di conoscenza nascosta in voluminose
basi di dati al fine di renderla disponibile e
direttamente utilizzabile
Dr. A. Appice

Aree di Applicazione
1. previsione
utilizzo di valori noti per la previsione di quantità non note (es. stima del
fatturato di un punto vendita sulla base delle sue caratteristiche)
2. classificazione
individuazione delle caratteristiche che indicano a quale gruppo un certo caso
appartiene (es. discriminazione tra comportamenti ordinari e fraudolenti)
3. segmentazione
individuazione di gruppi con elementi omogenei all’interno del gruppo e diversi
da gruppo a gruppo (es. individuazione di gruppi di consumatori con
comportamenti simili)
4. associazione
individuazione di elementi che compaiono spesso assieme in un determinato
evento (es. prodotti che frequentemente entrano nello stesso carrello della
spesa)
5. sequenze
individuazione di una cronologia di associazioni (es. percorsi di visita di un sito
web)

Dr. A. Appice

Classificazione
Considerando dati storici relativi a passati clienti e
pagamenti, predire (decidere) se il richiedente un
prestito sarà o meno un buon pagatore

Storico Clienti Classificatore Regole di decisione

Nome reddito > 35.000 Buono


Età
Reddito prof. = insegnante ? pagatore
Professione
Indirizzo Cattivo
Tipo cliente

Dati di un nuovo cliente: Paolo Rossi, 35,37.000,architetto,Bari, ?


Dr. A. Appice

Metodi di classificazione
Apprendimento induttivo da esempi per imparare
la definizione di una funzione di
classificazione
Gli esempi usati per l’apprendimento sono
descritti come vettori di coppie attributo-valore
per i quali è nota la classe
Dr. A. Appice

Metodi di classificazione
Alberi di decisione
Le funzioni di classificazione sono apprese in forma di albero dove:
• ogni nodo interno rappresenta una variabile,
• un arco verso un nodo figlio rappresenta un possibile valore per
quella proprietà, e
• una foglia il valore predetto per la classe a partire dai valori delle
altre proprietà, che nell'albero è rappresentato del cammino (path)
dalla nodo radice (root) al nodo foglia.

Un albero di decisione viene costruito utilizzando tecniche di


apprendimento a partire dall'insieme dei dati iniziali (training set)
per i quali è nota la classe
http://it.wikipedia.org/wiki/Albero_di_decisione
Dr. A. Appice

Induzione di Alberi di decisione


Input
Input: una collezione di esempi di apprendimento (training set),
ciascun esempio è una tupla di valori per un prefissato insieme di
attributi (variabili indipendenti)
A = {A1, A2, …, Am}
e un attributo di classe (variabile dipendente). L’attributo Ai è
descritto come continuo o discreto a seconda che i sui valori siano
numerici o nominali.
L’attributo di classe C è discreto e ha valori C1, C2, …, Ck.
Dr. A. Appice

Induzione di Alberi di Decisione


Input
Day Outlook Temperature Humidity Wind PlayTennis
D1 Sunny Hot High Weak No
D2 Sunny Hot High Strong No
D3 Overcast Hot High Weak Yes
D4 Rain Mild High Weak Yes
D5 Rain Cool Normal Weak Yes
D6 Rain Cool Normal Strong No
D7 Overcast Cool Normal Strong Yes
D8 Sunny Mild High Weak No
D9 Sunny Cool Normal Weak Yes
D10 Rain Mild Normal Weak Yes
D11 Sunny Mild Normal Strong Yes
D12 Overcast Mild High Strong Yes
D13 Overcast Hot Normal Weak Yes
D14 Rain Mild High Strong No
[See: Tom M. Mitchell, Machine Learning, McGraw-Hill, 1997]
Dr. A. Appice

Induzione di Alberi di Decisione


Output
Outlook

Sunny Overcast Rain

Humidity Yes Wind

High Normal Strong Weak

No Yes No Yes
Dr. A. Appice

Decision Trees
C4.5: Output
Outlook

Sunny Overcast Rain

Humidity nodi interni sono associati a test su attributi

High Normal Ciascun ramo e associato a un


valore del test
No Yes Ciascuna foglia è associata a un
valore di classe
Dr. A. Appice
Alberi di decisione
Come usare l’albero per classificare?
Outlook Temperature Humidity Wind PlayTennis
Sunny Hot High Weak ?
Outlook No

Sunny Overcast Rain

Humidity Yes Wind

High Normal Strong Weak

No Yes No Yes
Dr. A. Appice
Alberi di Decisione
Congiunzione di condizioni

Outlook

Sunny Overcast Rain

Wind No No

Strong Weak

No Yes Outlook=Sunny  Wind=Weak


Dr. A. Appice

Alberi di Decisione
Disgiunzione di congiunzioni
Outlook

Sunny Overcast Rain

Humidity Yes Wind

High Normal Strong Weak


No Yes No Yes

(Outlook=Sunny  Humidity=Normal)
 (Outlook=Overcast)
 (Outlook=Rain  Wind=Weak)
Dr. A. Appice

Alberi di Decisione
Regole
Outlook

Sunny Overcast Rain

Humidity Yes Wind

High Normal Strong Weak


No Yes No Yes
R1: If (Outlook=Sunny)  (Humidity=High) Then PlayTennis=No
R2: If (Outlook=Sunny)  (Humidity=Normal) Then PlayTennis=Yes
R3: If (Outlook=Overcast) Then PlayTennis=Yes
R4: If (Outlook=Rain)  (Wind=Strong) Then PlayTennis=No
R5: If (Outlook=Rain)  (Wind=Weak) Then PlayTennis=Yes
Dr. A. Appice

Alberi di Decisione
Tipo di test
Ciascun nodo interno è associato ad un test che coinvolge
un attributo Ai.
Se Ai è discreto:
• un test con z alternative, una per ciascun valore
assunto da Ai

Outlook
Sunny Overcast Rain
Dr. A. Appice

Alberi di Decisione
Tipo di test
Ciascun nodo interno è associato ad un test che coinvolge
un attributo Ai.
Se Ai è continuo:
• un test con 2 alternative sulla base di una soglia :
Ai  vs. Ai >.
Tenure
Tenure<=2.5 Tenure>2.
Stay Services
Services<=3 Services>3

Leave Stay
Dr. A. Appice

Alberi di decisione
Selezionare i test
Domanda: Come determinare quale attributo
classifica meglio dati?
Risposta: Entropia!!!
Sia:
– S la porzione di esempi di training correntemente analizzati.
– Cj una classe in C1, C2, …, Ck.
– RF(Ci,S), i=1,..k sono le frequenze relative delle etichette Ci
in S (numero di casi di S che appartengono alla classe Ci.
L’entropia di E in S è calcolata come:
E(S)    RF(Ci , S) log 2 (RF(Ci , S))
i 1..k
Dr. A. Appice

Alberi di decisione
Selezionare i test
E(S) è una misura dell’incertezza contenuta in S.
– Assume valore massimo se gli eventi sono
equiprobabili
RF(C1,S)=…= RF(Ck,S)=1/k.

– Assume valore minimo se solo uno degli eventi ha


probabilità diversa da zero.
RF(Ci,S)=1 RF(Cj,S)=0 ji
Dr. A. Appice

Alberi di decisione
Selezionare i test

In problemi di classificazione binaria (due classi C1=+, C2 = -)


con:
– p il numero di esempi di S in classe +
– n il numero di esempi di S in classe -
La entropia E(S) è calcolata come segue:
E(S) = -plog2p - nlog2n
Dr. A. Appice

Alberi di decisione
Selezionare i test
• Lo Information Gain G(S, t) rappresenta la riduzione
attesa di entropia conseguente al partizionamento
degli esempi di S in accordo al test t.
• Sia S1, …, St il partizionamento di S per il test t
sull’attributo Ai,:


| Si |
G( S , t )  E ( S )  E (Si )
i |S|

Il criterio basato sull’Information Gain sceglie il test t


che massimizza G(S,t)
Dr. A. Appice

Alberi di decisione
Selezionare i test
Esempio
Day Outlook Temp. Humidity Wind Play Tennis
D1 Sunny Hot High Weak No
D2 Sunny Hot High Strong No
D3 Overcast Hot High Weak Yes
D4 Rain Mild High Weak Yes
D5 Rain Cool Normal Weak Yes
D6 Rain Cool Normal Strong No
D7 Overcast Cool Normal Weak Yes
D8 Sunny Mild High Weak No
D9 Sunny Cold Normal Weak Yes
D10 Rain Mild Normal Strong Yes
D11 Sunny Mild Normal Strong Yes
D12 Overcast Mild High Strong Yes
D13 Overcast Hot Normal Weak Yes
D14 Rain Mild High Strong No
Dr. A. Appice

Alberi di decisione
Selezionare i test
14 esempi di apprendimento: 9 - Yes, 5 - No
E(S) = -9/14log2(9/14) - 5/14log2 (5/14) = .940

Information Gain per Outlook


Outlook: sunny (5), overcast (4), rain (5)
Il test su Outlook partiziona S come segue:
outlook = sunny (5 esempi)  RF(Yes)=2/5 RF(No)=3/5
outlook = overcast (4 esempi)  RF(Yes)=4/4 RF(No)=0/4
outlook = rain (5 esempi)  RF(Yes) = 3/5 RF(No) =2/5
Dr. A. Appice

Alberi di decisione
Selezionare i test
[Yes, No]=[9,5]
E=0.940

Outlook

Sunny Overcast Rain

[Yes, No]=[2,3] [Yes, No]=[4,0] [Yes, No]=[3,2]


E=0.971 E=0 E=0.971
Dr. A. Appice

Alberi di decisione
Selezionare i test
E(sunny) = -2/5log2 (2/5)-3/5log2 (3/5)=.971
E(overcast) = 0
E(rain) = .971
L’entropia di Outlook è:
E(Outlook)=5/14 0.971+4/14  0+5/14
0.971=0.694
L’Information Gain di un test su Outlook è:
G(Outlook)=E(S)-E(Outlook)=0.940-0.694=0.246
Dr. A. Appice

Alberi di decisione
Selezionare i test
Similmente possiamo clacolare:
– G(Temperature)=0.029
– G(humidity)=0.151
– G(windy)=0.048
– G(Outlook)=0.246  MAX

Il test che massimizza lo Information Gain è il


test eseguito su Outlook
Dr. A. Appice

Alberi di decisione
Definire le soglie per test continui
• Come identificare le possibili soglie  per
l’attributo continuo A?
1. ordinare gli esempi sulla base dei valori
dell’attributo A (quicksort)
2. per ciascuna coppia (Xi, Xi+1) nella lista
ordinata, se le classi di Xi e Xi+1sono diverse
allora usare la media dei due valori come
soglia candidata.
Dr. A. Appice

Alberi di decisione
Definire le soglie per test continui
Esempio

A: 10 15 21 28 32 40 50
Class: No Yes Yes No Yes Yes No
Threshold: 12.5 24.5 30 45
Dr. A. Appice

Alberi di Decisione
Algoritmo
learnTree(Table S, int begin, int end){
if( isLeaf(S begin, end)
root=new LeafNode(S,begin,end);
else //split node
{
root=determineBestSplitNode(S, begin, end);
childTree=new DecisionTree[root.getNumberOfChildren()];
for(int i=0;i<root.getNumberOfChildren();i++){
childTree[i]=new DecisionTree();
childTree[i].learnTree(trainingSet,root.begin,root.end);
}
}
}
Dr. A. Appice

Alberi di Decisione
Esercizio
Spiegare come costruire un albero di decisione per Assicurazione
carta di credito sul seguente insieme di addestramento:
Attributi: Range Reddito, Promozione assicurazione vita,
Assicurazione carta di credito, Genere, Età
Dati: Range Promozione Assicurazione
Genere Età
Reddito assic. vita carta di cred.
40-50K No No Maschio 45
30-40K Si No Femmina 40
40-50K No No Maschio 42
30-40K Si Si Maschio 43
50-60K Si No Femmina 38
20-30K No No Femmina 55
30-40K Si Si Maschio 35
20-30K No No Maschio 27
30-40K No No Maschio 43
30-40K Si No Femmina 41
40-50K Si No Femmina 43
20-30K Si No Maschio 29
50-60K Si No Femmina 39
40-50K No No Maschio 55
20-30K Si Si Femmina 19
Dr. A. Appice

Alberi di Decisione
Ross Quinlan, author of C4.5

http://www.cse.unsw.edu.au/~quinlan/
Ross Quinlan’s personal website at the University of New South Wales. c4.5 is available to
download, as are several of Quinlan’s academic papers.
Dr. A. Appice

Caso di studio
Progettare e realizzare un sistema client-server
denomianto “Decision Tree Classifier”.
Il server include funzionalità di data mining per
l’apprendimento di alberi di decisione e uso degli
stessi come strumento di previsione.
Il client è un applet Java che consente di effettuare
previsioni usufruendo del servizio di predizione
remoto
Dr. A. Appice

Istruzioni
1. Il progetto dell'a.a. 2012/13 riguarda il “Decision Tree Classifier"
ed è valido solo per coloro che superano la prova scritta entro il
corrente a.a.
2. Ogni progetto può essere svolto da gruppi di al più TRE (3)
studenti.
3. Coloro i quali superano la prova scritta devono consegnare il
progetto ENTRO la data prevista per la corrispondente prova
orale.
4. La discussione del progetto avverrà alla sua consegna, ad
personam per ciascun componente del gruppo. Il voto massimo
della prova scritta è 33. Un voto superiore a 30 equivale a 30 e
lode.
5. Il voto finale sarà stabilito sulla base del voto attribuito allo
scritto e al progetto.
Dr. A. Appice

Istruzioni
Non si riterrà sufficiente un progetto non
sviluppato in tutte le su parti (client-server,
applet, accesso al db, serializzazione,…

Potrebbero piacerti anche