alberi di decisione - dipartimento di informaticaappice/courses/1213/lab/alberi di decisione.pdf ·...

33
Dr. A. Appice Alberi di Decisione Caso di studio di Metodi Avanzati di Programmazione AA 2012-2013

Upload: vankhanh

Post on 24-Feb-2019

221 views

Category:

Documents


0 download

TRANSCRIPT

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

Nome

Età

Reddito

Professione

Indirizzo

Tipo cliente

Storico Clienti Classificatore Regole di decisione

reddito > 35.000

prof. = insegnante

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

Buono

?

Cattivo

pagatore

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

Outlook

Sunny Overcast Rain

Humidity

High Normal

Wind

Strong Weak

No Yes

Yes

Yes No

Induzione di Alberi di Decisione

Output

Dr. A. Appice

Decision Trees

C4.5: Output

Outlook

Sunny Overcast Rain

Humidity

High Normal

No Yes

nodi interni sono associati a test su attributi

Ciascun ramo e associato a un valore del test

Ciascuna foglia è associata a un valore di classe

Dr. A. Appice

No

Alberi di decisione

Come usare l’albero per classificare?

Outlook

Sunny Overcast Rain

Humidity

High Normal

Wind

Strong Weak

No Yes

Yes

Yes No

Outlook Temperature Humidity Wind PlayTennis Sunny Hot High Weak ?

Dr. A. Appice

Alberi di Decisione

Congiunzione di condizioni

Outlook

Sunny Overcast Rain

Wind

Strong Weak

No Yes

No

Outlook=Sunny Wind=Weak

No

Dr. A. Appice

Alberi di Decisione

Disgiunzione di congiunzioni

Outlook

Sunny Overcast Rain

Humidity

High Normal

Wind

Strong Weak

No Yes

Yes

Yes No

(Outlook=Sunny Humidity=Normal) (Outlook=Overcast) (Outlook=Rain Wind=Weak)

Dr. A. Appice

Alberi di Decisione

Regole Outlook

Sunny Overcast Rain

Humidity

High Normal

Wind

Strong Weak

No Yes

Yes

Yes No

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

Services

Tenure<=2.5 Tenure>2.

Services<=3 Services>3

Leave Stay

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:

k..1i

i2i ))S,C(RF(log)S,C(RF)S(E

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 ji

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

Il criterio basato sull’Information Gain sceglie il test t che massimizza G(S,t)

i

i

i SES

SSEtSG )(

||

||)(),(

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] E=0.971

[Yes, No]=[4,0] E=0

[Yes, No]=[3,2] 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

12.5 24.5 30 45 Threshold:

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 Reddito

Promozione assic. vita

Assicurazione carta di cred.

Genere Età

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