Alberi di Decisione Caso di studio di Metodi Avanzati di Programmazione AA 2012-2013
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
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)
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 Età Reddito Professione Indirizzo Tipo cliente reddito > 35.000 prof. = insegnante Buono? pagatore Cattivo Dati di un nuovo cliente: Paolo Rossi, 35,37.000,architetto,Bari,?
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
Metodi di classificazione Dr. A. Appice 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
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 = {A 1, A 2,, A m } e un attributo di classe (variabile dipendente). L attributo A i è descritto come continuo o discreto a seconda che i sui valori siano numerici o nominali. L attributo di classe C è discreto e ha valori C 1, C 2,, C k.
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]
Outlook Dr. A. Appice Induzione di Alberi di Decisione Output Sunny Overcast Rain Humidity Yes Wind High Normal Strong Weak No Yes No Yes
Decision Trees C4.5: Output Outlook Sunny Overcast Rain Humidity nodi interni sono associati a test su attributi High No Normal Yes Ciascun ramo e associato a un valore del test Ciascuna foglia è associata a un valore di classe
Alberi di decisione Dr. A. Appice 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
Alberi di Decisione Congiunzione di condizioni Dr. A. Appice Outlook Sunny Overcast Rain Wind No No Strong Weak No Yes Outlook=Sunny Wind=Weak
Alberi di Decisione Disgiunzione di congiunzioni Outlook Sunny Overcast Rain Dr. A. Appice Humidity Yes Wind High Normal Strong Weak No Yes No Yes (Outlook=Sunny Humidity=Normal) (Outlook=Overcast) (Outlook=Rain Wind=Weak)
Alberi di Decisione Regole Outlook Sunny Overcast Rain Humidity Yes Wind High Normal Strong Weak No Yes No Yes R 1 : If (Outlook=Sunny) (Humidity=High) Then PlayTennis=No R 2 : If (Outlook=Sunny) (Humidity=Normal) Then PlayTennis=Yes R 3 : If (Outlook=Overcast) Then PlayTennis=Yes R 4 : If (Outlook=Rain) (Wind=Strong) Then PlayTennis=No R 5 : If (Outlook=Rain) (Wind=Weak) Then PlayTennis=Yes
Alberi di Decisione Tipo di test Ciascun nodo interno è associato ad un test che coinvolge un attributo A i. Se A i è discreto: un test con z alternative, una per ciascun valore assunto da A i Outlook Sunny Overcast Rain
Alberi di Decisione Tipo di test Dr. A. Appice Ciascun nodo interno è associato ad un test che coinvolge un attributo A i. Se Ai è continuo: un test con 2 alternative sulla base di una soglia : Ai vs. Ai >. Stay Tenure Tenure<=2.5 Tenure>2. Services Services<=3 Services>3 Leave Stay
Alberi di decisione Dr. A. Appice Selezionare i test Domanda: Come determinare quale attributo classifica meglio dati? Risposta: Entropia!!! Sia: S la porzione di esempi di training correntemente analizzati. C j una classe in C 1, C 2,, C k. RF(C i,s), i=1,..k sono le frequenze relative delle etichette C i in S (numero di casi di S che appartengono alla classe C i. L entropia di E in S è calcolata come: E(S) RF(C i,s)log 2(RF(C i,s)) i 1.. k
Alberi di decisione Selezionare i test E(S) è una misura dell incertezza contenuta in S. Assume valore massimo se gli eventi sono equiprobabili RF(C 1,S)= = RF(C k,s)=1/k. Assume valore minimo se solo uno degli eventi ha probabilità diversa da zero. RF(C i,s)=1 RF(C j,s)=0 j i
Alberi di decisione Selezionare i test In problemi di classificazione binaria (due classi C 1 =+, C 2 = -) 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) = -plog 2 p - nlog 2 n
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 S 1,, S t il partizionamento di S per il test t sull attributo A i,: Si G ( S, t) E( S) E( Si ) S Il criterio basato sull Information Gain sceglie il test t che massimizza G(S,t) i
Esempio Alberi di decisione Selezionare i test 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/14log 2 (9/14) - 5/14log 2 (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
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
Alberi di decisione Selezionare i test E(sunny) = -2/5log 2 (2/5)-3/5log 2 (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
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
Alberi di decisione Dr. A. Appice 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 (X i, X i+1 ) nella lista ordinata, se le classi di X i e X i+1 sono diverse allora usare la media dei due valori come soglia candidata.
Esempio Dr. A. Appice Alberi di decisione Definire le soglie per test continui A: 10 15 21 28 32 40 50 Class: No Yes Yes No Yes Yes No Threshold: 12.5 24.5 30 45
Alberi di Decisione Algoritmo Dr. A. Appice 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); } } }
Alberi di Decisione Dr. A. Appice 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: Genere Età Range Reddito Promozione assic. vita Assicurazione 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
Alberi di Decisione Ross Quinlan, author of C4.5 Dr. A. Appice 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.
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
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.
Istruzioni Non si riterrà sufficiente un progetto non sviluppato in tutte le su parti (client-server, applet, accesso al db, serializzazione,