Tutorial su c4.5: es/c4.5/tutorial.html

Like dokumenter
LIMITI DI FUNZIONI. { + se a > 1. 0 se b < 0. 1 se a = 1 x + se 0 < a < 1

DATI ASTRONOMICI MENSILI 2018 Spiegazioni Obbiettivo. Dati riportati. Considerazioni generali

DATI ASTRONOMICI MENSILI

DOWNLIGHT È UN SISTEMA DI FARI AD INCASSO CHE PROIETTANO VERSO IL UN SISTEMA TOTALMENTE FLESSIBILE, IN GRADO DI SODDISFARE OGNI

Piano Part-Time a.a

EJOT Iso-Dart. Elemento di fissaggio per il montaggio non pianificato di carichi leggeri su sistemi di isolamento a cappotto ETICS.

Duemiladiciassette. Tutti i segni zodiacali si uniscano per portarci un anno meraviglioso. I nostri migliori auguri! INDUSTRIA GRAFICA FALCIOLA

Eksamen FSP5029 Italiensk I PSP5169 Italiensk nivå I. Nynorsk/Bokmål

CITTA DI VENEZIA POLIZIA MUNICIPALE

Che le luci dei fuochi di mezzanotte portino via ogni ombra per lasciar posto solo alle cose belle. I nostri migliori auguri.

2O16 gennaio. LuN MAR MER gio VEN SAb DOM LuN MAR MER gio VEN SAb DOM LuN MAR MER gio VEN SAb DOM

la bellezza dell arte

Santo Natale 2016 Lapbook di Natale

1 anno Letteratura italiana I L-FIL-LET/ Linguistica generale L-LIN/ Geografia M-GGR/ Storia medioevale M-STO/01 9 2

MISSIONI DEI GIUSEPPINI DEL MURIALDO IN GUINEA BISSAU

Primo anno (a.a )

Probema di Marek. (Problema dei quattro punti inaccessibili).

Aggiornamento dei Requisiti di Margine

Eksamen FSP5032 Italiensk II PSP5171 Italiensk nivå II FSP5035 Italiensk I+II. Nynorsk/Bokmål

Calendario didattico AA 2015/2016 IV anno

PAT/RFS210-30/10/ Allegato Utente 2 (A02)

Primo anno (a.a )

Last ned Tørrfisk = Stoccafisso : nutrimento e tradizione. Last ned


Eksamen PSP5173 Italiensk nivå III. Nynorsk/Bokmål

La rete che rispetta il futuro.

Mincio. colori e dettagli della biodiversità

Messaggio di fine anno del Presidente della Repubblica Giorgio Napolitano

passion for precision 16/17 Rapporto annuale del gruppo FRAISA

Andrew Gendreau, Olga Rosenbaum, Anthony Taylor, Kenneth Wong, Karl Dusen

Fra «De fire årstider» / «Le quattro stagioni» 1)

Allora, che cosa hai detto?

Guida di riferimento rapido (Italiano) Snabbguide (Svenska) Hurtigreferense (Norsk) Hurtig reference (Dansk)

EKSAMENSOPPGAVE i ITA0501 Italiensk I

Perchè pagare le tasse, punto interrogativo?

L italiano in classe. nivå A2 Luca Usai,

Proprietà Ponteggi Edilponte

Proprietà Ponteggi Edilponte

FIAMMETTA - ASIA - GIORGIA

Caro diario. IL DIARIO / DAGBOKEN livello B2

Caro diario. Luca Usai, IL DIARIO / DAGBOKEN

Da Lavinia fuggita a Lavinia flyktet: studio di un esperimento traduttivo

Lucertola, Lacertilia. Foto di Michele Manara. dall animale più comune alla specie più rara: tutto è il nostro futuro

"LE AVVENTURE DI PINOCCHIO" OPPURE "LA STORIA DI UN BURATTINO-MONELLO CHE DIVENTA UN RAGAZZO PER BENE"?

Proprietà Ponteggi Edilponte

ORDINE DEI FARMACISTI DELLA PROVINCIA DI RAGUSA

Festivaletteratura Mantova The Guardian Hay Festival internationales literaturfestival berlin Bjørnsonfestivalen Molde og Nesset

ISTRUZIONI D INSTALLAZIONE E MANUALE UTENTE IT MONTERINGSFORSKRIFT OG BRUKSANVISNING NO SCENIC SL G31

CONTEMPORANEO NATURALE

L italiano in Norvegia

Codice Descrizione u.m. Prezzo %m.d'o.

Guide for valg av Mapei-løsninger til kjemisk forankring

IP Phone MANUALE D' UTENTE

Storie che raccontano il futuro. La rete del Sapere: scienza, conoscenza... fantascienza!

DETERMINAZIONE DEL DIRETTORE DEL SERVIZIO FORMAZIONE ROBERTO DONEDDU

Tommaso e Giulia. DIALOGHI / DIALOGER livelli A1 B1 / nivåer A1- B1

Roma sottosopra 29. april mai 2018

L i n d i c e. Autore: Luca Serra Usai Ultima revisione: luglio 2014 Prima edizione: maggio 2003

Vi skal se på lambda-uttrykk. Følgende er definerte og vil bli brukt gjennom oppgaven

Innplasseringstest Allegro 1. Oppgaveark

TDC-100/200 Guida utente

Venerdì 4 settembre, Serata Cubana alle ore 20:00 in sede

IN2010: Algoritmer og Datastrukturer Series 2

COMUNE DI ALCAMO PROVINCIA DI TRAPANI

L italiano in classe. nivå A1.b

Forholdet mellom verdslige kjærlighetsdikt og religiøse

Nyttige Linux-kommandoer. Hvordan du kan jobbe mer effektivt Dag Langmyhr

Cataloghi e set espositivi. Cataloghi XFOLDDK XXC-DK XXP-DK FLOORKITDK. Folder Docks. Pocket Docks. Catalogo Docks

Laurea in produzioni e gestione degli animali in allevamento e selvatici 4 semestre / 2 anno / Aula Godina (Coordinatore di semestre: M.T.

- CAPITOLATO AMMINISTRATIVO -

Lynkurs i shellprogrammering under Linux

SPAZZOLE per MOTORI ELETTRICI ABB ASEA BBC

Poesie scelte. Halldis Moren Vesaas. Da Harpe og dolk (1929, 9; 30-31) Min unge sang

A Benchmark of Selected Algorithmic. Machine Learning and Computer Vision

Administrivia INF 3110/ INF /02/2005 1

Beskrivelse for hvordan en kan digitalisere og importere musikk inn i Variations på TEST server EINER.UIB.NO (for installasjonen 17.

Statuto. Società Dante Alighieri, Comitato di Oslo, Norvegia

NOTIZIARIO DELL ASSOCIAZIONE ITALIANI IN NORVEGIA Redazione e amministrazione: Sarpsborggate 7, 0468 Oslo

Model Description. Portfolio Performance

MAT1030 Plenumsregning 3

L i n d i c e. Autore: Luca Serra Usai Ultima revisione: luglio 2014 Prima edizione: maggio 2003

Øving 1 - Gjennomgang

MAT1030 Diskret Matematikk

La grammatica di Allora.no. Allora, parliamo in italiano!

ΞΗΡΟΊ ΚΑΡΠΟΊ NØTTER FRUTOS DE CÁSCARA. Spansk. Norsk. Gresk. Arabisk. Ελληνικά. Español. Til servitør/kokk

Informazioni generali

Syntax/semantics - I INF 3110/ /29/2005 1

Betinget eksekvering og logiske tester i shell

EC1501AOW. IT Congelatore a pozzo Istruzioni per l uso 2 NO Fryseboks Bruksanvisning 16

Istituti superiori - studenti

IL PIEMONTE DELLA. Mercedes Bresso Presidente della Regione Piemonte

Marta Parra Lubary Ester Rebollo Ferrer Margalida Tortella Mateu BLA, BLE, BLI, BLO, BLU BLA BLE BLI BLO BLU NOMBRE:... CURSO:...

Marta Parra Lubary Ester Rebollo Ferrer Margalida Tortella Mateu BLA, BLE, BLI, BLO, BLU. bla ble bli blo blu NOMBRE:... CURSO:...

Leselister /pensumlister (Courses Reserves reading lists)

100 DRÅPER... AV MULIG LYKKE. Terenzio Formenti. Duggdråper til det tredje årtusen i norsk (bokmål) og italiensk

Hva skal vi dimensjonere rør og flomveier for i fremtiden og hvordan gjør vi det

Unix/Linux for litt viderekomne

decori / decors Icing 15x15-5 7/8 x5 7/8

La grammatica di Allora.no. Allora.no. Grammatica 1. Luca F. Usai

1001+ Grunnleggende Fraser Norsk - Spansk (ChitChat WorldWide) (Norwegian Edition) [Kindle Edition] By Gilad Soffer

Transkript:

C4.5: Algorithms for machine learning

C4.5: Algorithms for machine learning Apprendimento di alberi decisionali c4.5 [Qui93b,Qui96] Evoluzione di ID3, altro sistema del medesimo autore, J.R. Quinlan Ispirato ad uno dei primi sistemi di questo genere, CLS (Concept Learning Systems) di E.B. Hunt Lo sviluppo del software è cessato, in favore di C5.0, ma rimane uno dei punti di riferimento nella propria classe di algoritmi. Ultima release: 8.0 Algoritmo scritto in C per Unix: disponibile su: http://www.rulequest.com/personal/c4.5r8.tar.gz Tutorial su c4.5: http://www2.cs.uregina.ca/~dbd/cs831/notes/ml/dtre es/c4.5/tutorial.html

Costruzione dell'albero: algoritmo base Algoritmo base, usato in CLS T: insieme degli esempi (training set) {C 1,C 2,...,C k }: insieme delle classi; Considera l insieme T: if T contiene uno o più esempi, tutti appartenenti alla medesima classe then singola foglia con etichetta la classe if T contiene casi che appartengono a più classi then partizionamento di T in piu sottoinsiemi secondo un test su un attributo: nodo associato al test, con un sottoalbero per ogni possibile risultato del test stesso richiama l algoritmo su ogni ramo/sottoinsieme

Condizioni di terminazione In realtà, C4.5 si ferma se: T contiene uno o più esempi, tutti appartenenti alla medesima classe singola foglia con etichetta la classe T non contiene nessun esempio (insieme vuoto) singola foglia con etichetta la classe piu frequente nell insieme padre Nessun test riesce a generare almeno due insiemi con 2*MINOBJ esempi singola foglia con etichetta la classe più frequente (alcuni esempi saranno mal classificati) Altre condizioni...

Esempio: golf Istanze: giornate libere Concetti: giornata adatta a giocare a golf e giornata non adatta a giocare a golf Descrizione degli esempi: linguaggio attributo-valore outlook, con valori {sunny,overcast,rain} temperature, con valori numerici humidity, con valori numerici windy, con valori {true, false}

Golf: training set No Outlook Temp ( F) Humid (%) Windy Class D1 sunny 75 70 T Play D2 sunny 80 90 T Don't Play D3 sunny 85 85 F Don't Play D4 sunny 72 95 F Don't Play D5 sunny 69 70 F Play D6 overcast 72 90 T Play D7 overcast 83 78 F Play D8 overcast 64 65 T Play D9 overcast 81 75 F Play D10 rain 71 80 T Don't Play D11 rain 65 70 T Don't Play D12 rain 75 80 F Play D13 rain 68 80 F Play D14 rain 70 96 F Play

Golf: un possibile albero di decisione Outlook sunny rain overcast Humidity 75 Windy true false true false Play Don t Play Don t Play

All opera! 1. Effettuare il login su linux 2. Scaricare il software C4.5 dal sito del corso 3. Aprire un terminale (Start->System->Terminal) 4. Portarsi nella cartella dove avete scaricato C4.5 5. Eseguire chmod +x c4.5

Come si usa? C4.5 viene invocato da riga di comando con: c4.5 -f<filestem> <filestem> è un prefisso che identifica il job ; il programma si aspetta di trovare almeno due files: <filestem>.names: gli attributi degli esempi e le classi <filestem>.data: con il training set Dal sito del corso, scaricate l'esempio golf (è un archivio zip) Estraetene il contenuto nella cartella con C4.5

golf.names Play, Don't Play. CLASSI outlook: sunny, overcast, rain. temperature: continuous. humidity: continuous. windy: true, false. ATTRIBUTI A VALORI DISCRETI ATTRIBUTI A VALORI CONTINUI Un attributo discreto può essere definito anche con: attribute_name: discrete n

golf.data sunny, 85, 85, false, Don't Play sunny, 80, 90, true, Don't Play overcast, 83, 78, false, Play rain, 70, 96, false, Play rain, 68, 80, false, Play rain, 65, 70, true, Don't Play overcast, 64, 65, true, Play sunny, 72, 95, false, Don't Play sunny, 69, 70, false, Play rain, 75, 80, false, Play sunny, 75, 70, true, Play overcast, 72, 90, true, Play overcast, 81, 75, false, Play rain, 71, 80, true, Don't Play Ogni riga è un esempio La classe è riportata in fondo Ora provate ad eseguire: c4.5 -fgolf

Output (1) C4.5 [release 8] decision tree generator Wed May 14 22:00:37 2008 ---------------------------------------- Options: File stem <golf> Read 14 cases (4 attributes) from golf.data PREAMBOLO

Output (2) Decision Tree: outlook = overcast: Play (4.0) outlook = sunny: humidity <= 75 : Play (2.0) humidity > 75 : Don't Play (3.0) outlook = rain: windy = true: Don't Play (2.0) windy = false: Play (3.0) Questo è l'albero decisionale che conosciamo... Tree saved

Output (3) Evaluation on training data (14 items): Before Pruning After Pruning ---------------- --------------------------- Size Errors Size Errors Estimate 8 0( 0.0%) 8 0( 0.0%) (38.5%) <<... e questi sono I risultati della valutazione del classificatore sul training set: nessun errore è commesso Notate che due nuovi files sono comparsi: golf.unpruned e golf.tree

Scelta del test Fin qui C4.5 è un algoritmo greedy: ad ogni passo viene scelto il test migliore secondo un criterio euristico In particolare C4.5 assegna a ciascun test un punteggio basato su risultati di teoria dell'informazione. In particolare dovreste sapere che: info T ) gain(x) = info(t) - info X (T) k freq( C, T ) freq( C = j = log 1 T T, T j j ) ( 2 n Ti info X ( T ) = info( T j = T 1 i )

Scelta del test Ma che vuol dire? Quella che segue è la quantità di informazione (in bit) associata ad un evento con probabilità freq(c_j, T)/ T info C, T ) = log ( j 2, T ) L'entropia di un insieme di eventi è semplicemente il valore atteso di tali quantità di informazione freq( C k freq( C j, T ) freq( C j, T ) info( T ) = j = log 1 2 T T L'entropia è una misura di quanto le probabilità siano simili, vale a dire di quanto la frequenza di occorrenza delle varie classi in un training set sia uniforme T j

Entropia 1.2 1 0.8 Entropia 0.6 0.4 0.2 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 p+

Scelta del test Invece la quantità n Ti info X ( T ) = info ( T j = T 1 i E' semplicemente la somma pesata dell'entropia dei vari insiemi in cui un certo test X divide il training set. Quindi il guadagno: gain(x) = info(t) - info X (T) ) Indica quanto un certo test X rende la distribuzione delle classi DISUNIFORMI

Back in action... Provate ad eseguire: c4.5 -fgolf -v2 -vn indica il livello di verbosità dell'output (N = 0, 1, 2, 3) Subito dopo il preambolo potete vedere come per ciascun sottoinsieme C4.5 calcoli il gain. Per esempio per l'intero test set: 14 items, total weight 14.0 Att outlook inf 1.577, gain 0.247 Att temperature no gain Att humidity no gain Att windy inf 0.985, gain 0.048 average gain 0.147 best attribute outlook inf 1.577 gain 0.247 val 0.156

Back in action... Guardate anche cosa succede con c4.5 -fgolf -v3 Notate che si riesce a capire bene come C4.5 si comporta con gli attributi continui....e se guardate proprio bene dovreste anche accorgervi che c è qualcosa che non torna ;-)

Qual è il problema? In realtà fino a questo punto abbiamo barato. C4.5 Infatti non usa davvero il guadagno in entropia (gain) come euristica, ma qualcosa di appena più complesso: gain_ratio(x) = gain(x)/split_info(x) Dove: split n Ti Ti ( T ) = = log j 1 T T _ infox 2 Questo perché l'entropia e basta favorirebbe attributi che frammentano molto il data set. Nell'output split_info è indicato come inf e gain ratio come val.

ESERCIZIO 1 Fate una copia di golf.names e golf.data In golf.names aggiungete un nuovo attributo: day: discrete 31 In golf.data assegnate per il nuovo attributo i valori: 1,2,6,8,10,11,12,20,27,1,2,6,20,27 Cosa succede? Eseguite: c4.5 -f<nuovofile> -v2 E poi (-g fa utilizzare il gain come euristica): c4.5 -f<nuovofile> -v2

ESERCIZIO 2 Dovreste sapere che C4.5 può gestire anche attributi non specificati, indicati nel training set con? Provate a ripetere l'esempio dato a lezione. Sosituite l'esempio: Outlook=overcast, Temperature=72, Humidity=90, Windy=True Con: Outlook=?, Temperature=72, Humidity=90, Windy=True Guardate come variano guadagno, split_info e come l'esempio con un attributo ignoto viene suddiviso tra i vari branch. Suggerimento: qui l opzione -v3 vi dà una bella mano...

Test set L'abero decisionale generato può essere valutato anche su un numero di esempi sconosciuti: il test set Il test set deve essere contenuto in un file di nome <filestem>.test Il suo formato è lo stesso del training set Scaricate dal sito l'esempio labor nogotiation ed estraetene il contenuto nella cartella con C4.5 Provate ad invocare poi: c4.5 -flabor-neg -u

Test set (output) Evaluation on test data (17 items): Before Pruning After Pruning ---------------- --------------------------- Size Errors Size Errors Estimate 11 4(23.5%) 7 3(17.6%) (17.4%) << (a) (b) <-classified as ---- ---- 10 1 (a): class good 2 4 (b): class bad L'albero viene valutato anche sul test set. Un visione d'insieme dei casi classificati in modo corretto ed erroneo è data nella confusion matrix

Pruning Notate che eseguendo: c4.5 -flabor-neg -u C4.5 stampa non uno ma DUE alberi decisionali. Il secondo è detto: Simplified Decision Tree: wage increase first year <= 2.5 : bad (11.3/2.8) wage increase first year > 2.5 : statutory holidays > 10 : good (21.2/1.3) statutory holidays <= 10 : wage increase first year <= 4 : bad (4.5/1.7) wage increase first year > 4 : good (3.0/1.1)

Error Based Pruning (1) c4.5 utilizza una tecnica chiamata error-based pruning Prima di salvarlo, l'algoritmo tenta di semplificare l'albero Per ogni foglia C4.5 stima una probabilità di classificazione erronea su esempi sconosciuti basandosi su alcune considerazioni statistiche Per ogni nodo la probabilità di errore è la somma di quella dei sottonodi/foglie

Error Based Pruning (2) Ad ogni nodo: Se la stima di errore può essere diminuita sostituendo quel nodo con una foglia, C4.5 lo fa Se la stima di errore può essere diminuita sostituendo quel nodo con il suo ramo più pesante, C4.5 lo fa Si ottiene così un albero più piccolo, più semplice da decifrare e sperabilmente con prestazioni superiori su casi sconosciuti Provate ad eseguire: c4.5 -flabor-neg -v1

ESERCIZI Un repository di problemi di machine learning è disponibile al link: http://www.ics.uci.edu/~mlearn/mlsummary.html I formati dei files non sono necessariamente quelli di C4.5. Alcuni esempi sono disponibili sul sito del corso: per questi i file di dati (training set e test set) sono in formato C4.5, i file dei nomi... beh: quello è compito vostro! Provate a preparare un file di nomi e vedere che alberi vengono appresi Cosa succede modificando se modifichiamo il training set (vedi prossima slide)?

ESERCIZI Un po di idee... Cosa succede aggiungendo del rumore (un po di esempi senza senso) al training set? Come cambia l albero? Come cambiano le sue performance sul test set? Cosa succede aggiungendo uno o più attributi non significativi al training set? Come cambia l albero?