La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Classificazione con Weka Boaretti Martini Tassinari a.a. 2008/2009 Sistemi Informativi per le Decisioni LS.

Presentazioni simili


Presentazione sul tema: "Classificazione con Weka Boaretti Martini Tassinari a.a. 2008/2009 Sistemi Informativi per le Decisioni LS."— Transcript della presentazione:

1 Classificazione con Weka Boaretti Martini Tassinari a.a. 2008/2009 Sistemi Informativi per le Decisioni LS

2 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 2 indice 0 – Introduzione 1 – Principi base di classificazione 2 – Il package weka.classifier 3 – Algoritmi di classificazione: J48, RepTree e M5rules 4 – Classificazione con Weka.. Operativamente.. 5 – Case study: Supporto alla gestione di call center

3 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 3 KDD – lo scenario …facciamo il giochino di Ok il prezzo è giusto… CLASSIFICAZIONE CLUSTERING REGOLE ASSOCIATIVE

4 Principi base di classificazione Obiettivo: estrarre modelli che descrivono classi di dati per: – predire valori categorici – predire valori continui Processo: 1.costruzione del modello a partire da un insieme predeterminato di classi o concetti (training set) 2.predizione delle classi per i dati del test set (validazione del modello) 3.predizione delle classi per nuovi dati NB: Stimare laccuratezza del classificatore 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 4

5 Contiene implementazioni degli algoritmi più comunemente utilizzati per classificazione e predizione numerica. La classe più importante è Classifier, che definisce la struttura generale di un qualsiasi schema di classificazione o predizione; Contiene due metodi, buildClassifier() e classifyInstance(), che debbono essere implementati da tutti gli algoritmi di apprendimento, Ogni algoritmo di apprendimento è una sottoclasse di Classifier e ridefinisce questi metodi. Il package weka.classifiers 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 5

6 Tipi di Classificazione (I) Categoria di classificatoreStrumenti usati BayesReti bayesiane FunctionsRegressione lineare,reti neurali, SVM LazySomiglianza MetaBagging, Boosting, Stacking, Regression via classification, Classification via regression, Cost sensitive classification MiAlgoritmi per dati multi-istanze MiscCreazione di intervalli di caratteristiche e assegnazione di punteggi alla classe in base alle caratteristiche presenti per listanza (peso locale) TreesAlberi decisionali RulesRegole associative 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 6

7 Reti Bayesane Una Rete Bayesiana (Bayesian Network) rappresenta la distribuzione della probabilità congiunta di un insieme di variabili. La B.N. viene risolta mediante specifici algoritmi, basandosi sullo stato delle variabili osservabili e delle probabilità a-priori rappresentate dagli archi nelle relazioni fra variabili, valutando le probabilità a-posteriori degli stati incogniti. In questo senso le B.N. possono essere considerate come uno strumento di investigazione e previsione. Schema della relazione fra un nodo ed i padri in una generica rete bayesiana. La mancanza di un arco fra due nodi riflette la loro indipendenza condizionale. Al contrario, la presenza di un arco dal nodo X i al nodo X j può essere interpretata come il fatto che X i sia causa diretta di X j. Matematicamente, una Rete Bayesiana è un grafo aciclico orientato in cui: nodi = variabili o stati; archi = relazioni di dipendenza statistica tra le variabile e le distribuzioni locali di probabilità dei nodi foglia rispetto ai valori dei nodi padre. 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 7 Tipi di Classificazione (II)

8 Rete Neurale INPUT NODI INTERMEDI OUTPUT In ogni nodo intermedio il dato di input viene rielaborato secondo determinate funzioni, fino ad ottenere loutput. 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 8 Tipi di Classificazione (III)

9 Lazy somiglianza Instance-based= classifica listanza comparandola ad un database di esempi preclassificati. Idea di base= istanze simili avranno classificazione simile Problema= come definire istanze simili e classificazioni simili??? Alcuni algoritmi: Nearest neighbour (il più semplice) IB1, IB2 ecc (continui miglioramenti del precedente) K* (entropia come misura di distanza) Tipi di Classificazione (IV) 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 9

10 Meta =metodo euristico per la risoluzione di una classe di problemi di calcolo mediante la combinazione di dati-utente e una procedura black-box - di solito l'euristica stessa - nella speranza di ottenere una più efficiente o più robusta procedura. Il nome unisce il prefisso greco "meta" ( "oltre", qui nel senso di "livello superiore") e "euristico" (da ευρισκειν, heuriskein, "per trovare"). Esempi: Bootstrap aggregation (bagging) è un meta-algoritmo per migliorare l'apprendimento automatico di classificazione e modelli di regressione in termini di stabilità e precisione di classificazione. Si riduce anche la varianza e contribuisce a evitare overfitting. Anche se di solito è applicato a modelli di albero di decisione, esso può essere utilizzato con qualsiasi tipo di modello. Dato un training set D di dimensione n, bagging genera m D i nuovi insiemi di dimensione n' n, con istanze di campionamento da D in modo uniforme e con la sostituzione. Con il campionamento con la sostituzione, è probabile che alcune istanze saranno ripetute in ogni D i. Se n' = n, allora per n grande il set D i dovrebbe avere il 63,2% di esempi unici di D, il resto sono doppioni. Il risultato è detto campione di bootstrap. Gli m modelli sono adattati con gli m campioni di bootstrap e combinati con una media di uscita (per regressione) o in fase di voto (per la classificazione). Boosting è un algoritmo di machine learning per l'esecuzione di algoritmi di apprendimento supervisionato. Si basa sulla questione posta da Kearns: può una serie di weak learners creare un unico strong learner? Un weak learner è definito come un classificatore che è solo di poco correlato con la vera classificazione. Al contrario, un strong learner è un classificatore che arbitrariamente è ben correlato con la vera classificazione. La maggior parte degli algoritmi di boosting consiste nel potenziare iterativamente i classificatori deboli nei confronti di una distribuzione e aggiungerli ad un classificatore forte finale. Quando vengono aggiunti sono tipicamente ponderati in qualche modo, che è di solito legato alla precisione del weak learner stesso. Dopo che un weak learner è aggiunto, i dati vengono nuovamente pesati: istanze classificate male guadagno di peso, quelle classificate correttamente perdono peso. Pertanto, i futuri weak learners si concentrano maggiormente sulle istanze che i precedenti weak learners classificavano erroneamente. Tipi di Classificazione (V) 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 10

11 Multi - Istanze È una tecnica di classificazione supervisionata caratterizzata da: -Multi istanze -Una sola class label osservabile per tutte le istanze Formato dei dati: bag-id - attributo nominale; unico identificatore per ogni bag bag - attributo relazionale; contiene le istanze class - class label Esempio: Nellesempio che segue, gli attributi f1 - f166 sono raccolti allinterno di un unico attributo, quello relazionale 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 11 Tipi di Classificazione (VI)

12 FORMATO TRADIZIONALE FORMATO MULTI-ISTANZA attributo relazionale

13 Classificazione con weka (I) 1.Selezionare il Classificatore e impostare le opzioni principali es. Choose>Classifier>tree>j48; Tastosinistro:Options: binarySplits>true; confidenceFactor=0, Test Options a)Training set : il classificatore è valutato in base alla correttezza della predizione effettuata sulle istanze usate per produrre il modello; b)Test set supplementare : il classificatore è valutato grazie a un test set supplementare appositamente caricato da file; c)Cross-validation : i record vengono suddifisi in un certo numero di folds (inserito tramite il campo Folds). Ogni fold a turno funge da test set (la parte restante dei dati fa il train) e infine si calcola il mean square error d)Percentage split : il classificatore è valutato in base alla correttezza della predizione effettuata su una % di dati tenuti da parte appositamente per il testing. La % desiderata è inserita tramite il campo Percentage Split. NB: sarebbe utile in fase di preprocessign andare ad applicare il filtro randomize per mescolare lordine delle tuple. Altre opzioni possono essere selezionate tramite il tasto More options 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 13

14 3.Selezionare la Class Attribute Abbiamo diversi tipi di classificatori in Weka: alcuni possono predire soltanto attributi Categorici, altri predicono soltanto attributi Numerici (Regression Tree), alcuni riescono a predire entrambe le tipologie di dati. Di default come Class Attribute (ovvero lattributo oggetto della predizione) viene preso lultimo attributo presente nella base dati. Tuttavia è possibile selezionarne uno diverso dalla lista apribile sotto la Test Option. 4.Prova del classificatore - Start Classificazione con weka (II) 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 14

15 5.Output classificatore a)Run information: il programma di apprendimento opzioni, nome della relazione, n°istanze, attributi e le modalità di prova che sono stati coinvolti nel processo. b)Classifier model (full training set): Il testo del modello di classificazione che è stato prodotto sullintero training set. c)I risultati della scelta sulle Test Options sono così ripartiti: c.1 Summary. un elenco di statistiche che riassume come il classificatore è stato in grado di predire la classe delle istanze del Test set c.2. Detailed Accuracy By Class: informazioni dettagliate sulla precisione ci ogni classe di predizione c.3. Confusion Matrix: mostra il numero di casi che sono stati assegnati a ciascuna classe. In particolare sulla diagonale si indivuano i valori classificati correttamente, vicerversa nelle restanti celle si individuano gli errori di predizione. c.4. Source code: codice sorgente (opzionale tramite More Options). Classificazione con weka (III) 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 15

16 6.Lista dei Risultati – Result List In tale lista (in basso a sinistra) sono disponibili i risultati ottenuti coi diversi classificatori provati. Ogni voce della lista permette di: a)Visualizzare la Classifier Output b)Eliminare il risultato prodotto (canc) c)Effettuare una delle seguenti operazioni disponibili cliccando il pulsante destro del mouse: View in main/separate window Save result buffer Save/Load model Re-evaluate model on current test set. Visualize classifier errors Visualize tree or Visualize graph Visualize margin curve Visualize threshold curve Visualize cost curve Plugins Classificazione con weka (IV) 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 16

17 J48 (I) Class for generating a pruned or unpruned C4.5 decision tree Il classificatore J48 è un discendente del C4.5 classifier, il quale si basa sul seguente algoritmo: 1. si utilizza un sottoinsieme del dataset (chiamato finestra") scelto casualmente come training set; 2. si utilizza la finestra corrente per la costruzione di un albero di decisione con tecniche che fanno uso della teoria dell'informazione; 3. si verifica l'errore di classicazione dell'albero costruito sui dati rimanenti (test set); 4. si incrementa la dimensione della finestra aggiungendo dei pattern che sono stati classificati erroneamente, fino a un numero massimo stabilito; 5. si ripetono iterativamente i passi 2, 3 e 4 fino a quando si ottiene un albero che classifica correttamente tutti i pattern del training set, oppure quando il tasso d'errore dell'ultimo albero costruito risulta maggiore a o uguale a quello dell'albero precedente; 6. si può poi effettuare un'operazione di pruning sull'albero di decisione ottenuto. 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 17

18 J48 (II) ID3 (lalgoritmo base del C4.5) usa lInformation Gain per ordinare gli attributi sui quali costruire lalbero: Lapproccio è di scegliere per lo split lattributo X col massimo Gain. Questo criterio può essere migliorato perché produce una forte distorsione a favore delle prove che hanno molti risultati. Così C4.5 cerca di normalizzare questo fenomeno nel seguente modo: Gain-ration(X) = Gain(X)/ Split-info(X) Quando lalbero è costruito e non è possibile farlo crescere ulteriormente inizia la fase di potatura: Pruning: consiste nel sostituire con un nodo foglia un sottoalbero. La sostituzione è opportuna quando il tasso di errore previsto nel subtree è maggiore rispetto a quello della singola foglia. Per fare Pruning si utilizza il confidenceFactor dove freq(C i,S) è la frequenza della classe C i nel set S T i rappresenta un subset del set T (assumendo di splittare su X) 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 18

19 J48 (III) OPTIONS binarySplits : da la possibilità di fare split categorici. confidenceFactor : è usato per il pruning: serve per decidere se tagliare o meno un determinato sottoalbero; a valori maggiori del condence-factor corrisponde un albero più complesso; Debug : se vero, il classificatore può dare informazioni addizionali in console. minNumObj : il numero minimo di istanze per foglia. numFolds : determina la quantità di dati usati per ridurre lerrore dovuto al pruning. Una partizione (fold) è usata per il pruning, il resto per sviluppare lalbero. reducedErrorPruning : se tale campo viene settato, si effettua un reduced-error pruning invece del pruning di default C.4.5 pruning. saveInstanceData : per salvare il training set per la visualizzazione. Seed : il seme usato per mescolare i dati quando il reduced-error pruning viene settato. subtreeRaising : serve per raccogliere il sottoalbero che è stato potato. unpruned :se non si vuole potare. useLaplace : attenuazione basata su Laplace 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 19

20 REPtree Fast decision tree learner Costruisce un decision o regression tree usando linformation gain (o variance) e pota i rami usando un reduced-error pruning. Genera solo valori per attibuti numerici. I valori mancanti sono trattati dalla suddivisione in pezzi delle corrispondenti istanze. OPTIONS Debug maxDepth : la massima profondità di albero (-1 per nessuna restrizione). minNum : il minimo peso totale di peso delle istanze in una foglia. minVarianceProp : la minima proporzione della varianza su tutti i dati che ha bisogno di essere presente in un nodo, al fine di poter effettuare lo split negli alberi di regressione. noPruning : per effettuare o no potature. numFolds : Determina la quantità di dati usati per il pruning. (Solo una partizione di dati è usata per fare pruning, il resto dei dati vengono usati per ricavare le regole.) seed : Il seme utilizzato per randomizzare i dati. 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 20

21 M5rules (I) Questo motodo permette di generare Regole associative da Alberi di decisione. Un tree learner è applicato interamente al training dataset in modo da sviluppare un albero con potature (pruned). Successivamente si va alla ricerca della miglior foglia tramite le regole ai nodi, in modo da poter scartare le parti di albero non selezionate dal dato. Tutte le istanze corrispondenti alla regola sono rimosse dal dataset. Il processo è applicato ricorsivamente alle istanze rimanenti e termina quando tutte le istanze sono scoperte da una o più regole. Lapproccio sul quale si basa M5rules è di costruire un modello di sottoalbero da ogni nodo e trovare la miglior foglia della regola. Costruire alberi parziali permette di migliorare lefficienza computazionale, allo stesso modo non si va ad intaccare laccuratezza e il peso delle regole. 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 21

22 M5rules (II) OPTIONS buildRegressionTree : se si vuole generare delle regression tree/rule invece di un semplice model tree/rule. debug : se vero, il classificatore può dare informazioni addizionali in console. minNumInstances : il minimo numero di istanze da consentire a un nodo foglia. unpruned : se devono essere generati alberi/regole non potate useUnsmoothed : se vogliamo usare predizioni non smorzate. Come si misura la bontà delle regole generate? Accanto a ogni regola sono presenti due valori: [coverage / % root mean square error] Coverage: copertura, cioè il numero di istanze che soddisfano tale reg ola 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 22 Dove: Y i = actual class value for example i y i = class value predicted by the linear model at a leaf N r = the number of examples covered by a leaf Y = is the mean class value N = is the total number of examples

23 In collaborazione con: 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka

24 Obiettivo Sviluppo di un software per la previsione, lottimizzazione e la simulazione al fine del supporto alla gestione di call center e sportelli. Problema iniziale Studio di fattibilità per lo sviluppo di uno strumento di forecasting delle richieste, si vuole prevedere le chiamate al call center o gli arrivi allo sportello in ogni mezzora dellorario di apertura. In fase di analisi del problema è stata considerata la possibilità di predire tale fenomeno, che risulta influenzato da molte dimensioni, con la tecnica della classificazione quantitativa (tramite metodologie di regressione lineare). Utilizzo di Weka come software per la creazione dellalbero di decisione 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 24

25 FASE 1 Preparazione dei dati di input FASE 2 Creazione del modello di previsione (WEKA) FASE 3 Validazione del modello tramite test set Scelta del modello di classificazione più opportuno FASE 4 Sviluppo di un eseguibile per effettuare previsioni FASE 5 Forecasting di nuovi oggetti (previsione di nuove richieste) 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 25

26 Sono disponibili i dati consuntivi di un call center per i mesi di gennaio e febbraio, questi dati vengono estratti dal database di HeraComm (GEMI) e convertiti in un file arff, formato utilizzato da Weka per la generazione dellalbero. E stato anche creato un file csv con gli stessi dati, questo verrà utilizzato in futuro come input per leseguibile di previsione. 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 26

27 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 27

28 Selezione dellalgoritmo (e quindi del modello) con cui modellare la realtà 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 28

29 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 29

30 Media afflussi = 122,3 Mean Absolute Error = (14,0%) GENNAIO 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 30

31 Media afflussi = 124,1 Mean Absolute Error = (15,5%) FEBBRAIO 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 31

32 Grazie per lattenzione!

33 Boaretti Martini Tassinari 17/03/2009 Sistemi Informativi per le Decisioni Boaretti Martini Tassinari Classificazione con Weka 33


Scaricare ppt "Classificazione con Weka Boaretti Martini Tassinari a.a. 2008/2009 Sistemi Informativi per le Decisioni LS."

Presentazioni simili


Annunci Google