Weka - Universitá della Calabria
Transcript
Weka - Universitá della Calabria
Weka: Weikato university Environment for Knowledge Analysis Corso di Data e Text Mining Ing. Andrea Tagarelli Università della Calabria Acknowledgements: Salvatore Ruggieri, Dip. di Informatica, Univ. di Pisa Corso di Data e Text Mining Weka Corso di Data e Text Mining Weka ! Software per machine learning / data ! mining Scritto in Java n distribuito con licenza GNU GPL ! Funzionalità / Limiti: n n n Insieme completo di algoritmi di preprocessing, learning e tecniche di valutazione Estendibile Non efficiente / scalabile: mantiene i dati in memoria Weka Corso di Data e Text Mining Versioni Weka ! Download: http://www.cs.waikato.ac.nz/~ml/weka ! Aprile 2006, Weka 3.4.7 ! Riferimento n “Data Mining” by Witten & Frank, 2005 Weka Corso di Data e Text Mining Weka: interfacce 1/4 ! Explorer • GUI a scomparti per operazioni di preprocessing, classificazione, clustering, regole associative Weka Corso di Data e Text Mining Weka: interfacce 2/4 ! KnowledgeFlow • GUI a flussi per operazioni di preprocessing e classificazione. Weka Corso di Data e Text Mining Weka: interfacce 3/4 ! Simple CLI (Call Level Interface) • accesso a oggetti e metodi del sistema mediante linea di comando Weka Corso di Data e Text Mining Weka: interfacce 4/4 ! Experimenter • Automazione serie di esperimenti di learning variando datasets, algoritmi e parametri Weka Corso di Data e Text Mining Weka: messaggi ed errori Weka Corso di Data e Text Mining Formati di input/output ! ! ! ! ! ARFF JDBC Binari (classi Java serializzate) CSV C4.5 Weka Corso di Data e Text Mining Attribute-Relation File Format (ARFF) @relation tabella % commento Nome della tabella @attribute nome string Linea di commento @attribute cognome string @attribute eta’ int Nome e tipo colonna @attribute professione string Inizio dati % commento @data Missing value Mario,Bianchi,23,Studente Quoting Luigi,Rossi,?,Operaio Anna,Verdi,50,’Dottorando di ricerca’ Rosa,Neri,20,Studente Weka Corso di Data e Text Mining Tipi ARFF ! Enumerati o discreti n n n n n ! à à à à identificatori univoci (Cod. Fiscale) etichette ripetibili (Città) è definito un ordine (low < high) due soli valori (T/F, 1/0,...) @attribute eta numeric Stringhe n ! Nominali Categoriche Ordinali Binarie Continui (int, real, numeric) n ! @attribute CdL {informatica,tecnologie,infeconomia} @attribute indirizzo string Date n @attribute dataNascita date "yyyy-MM-dd HH:mm:ss" Weka Data Preprocessing e Visualization in Weka Explorer Corso di Data e Text Mining Weka Explorer ! Metafora: a task , un pannello per tipologia di analisi n n n n n n Pre-processing Visualizzazione Selezione degli attributi Classificazione Clustering Regole associative Weka Corso di Data e Text Mining Preprocessing: accesso ai dati File Url JDBC Weka Corso di Data e Text Mining Preprocessing: accesso ai dati Weka Corso di Data e Text Mining Edit e Salva Relazione Attributo classe Statistiche Distribuzione Attributi Weka Corso di Data e Text Mining Rimozione di un attributo Attributo selezionato Rimuovi Weka Corso di Data e Text Mining Edit della relazione Weka Corso di Data e Text Mining Filtri: selezione Weka Corso di Data e Text Mining Filtri: selezione Weka Corso di Data e Text Mining Filtri: opzioni Weka Corso di Data e Text Mining Filtri: applicazione Weka Corso di Data e Text Mining Filtri: applicazione Relazione Statistiche Distribuzione Weka Corso di Data e Text Mining Il Data Preprocessing è… un processo ! Accesso ai Dati ! Esplorazione dei Dati n n n Sorgenti Quantità Qualità ! Ampliamento e arricchimento dei dati ! Applicazione di tecniche specifiche Weka Corso di Data e Text Mining Il Data Preprocessing è…un processo ! Obiettivo: analisi preventiva per la riduzione dei dati ad un data set di minore dimensione ! I dati devono essere significativi e non ridondanti ! L analisi viene fatta sugli attributi e sulle istanze Weka Corso di Data e Text Mining Data Preprocessing: operazioni ! Alcune operazioni sono necessarie n n n Studio dei dati Pulizia dei dati Campionamento ! Altre possono essere guidate dagli obiettivi n n Trasformazioni Selezioni Weka Corso di Data e Text Mining Data Preprocessing: problemi ! Troppi dati n n n n dati sbagliati, rumorosi dati non rilevanti dimensionalità intrattabile mix di dati numerici/simbolici ! Pochi dati n n n attributi mancanti valori mancanti dimensionalità insufficiente Weka Corso di Data e Text Mining Data Preprocessing: problemi ! Sparsità n Mancanza di valore associato ad una variabile w Un attributo è sparso se contiene molti valori nulli ! Monotonicità n Crescita continua dei valori di una variabile w w Intervallo [-∞, ∞] (o simili) Non ha senso considerare l intero intervallo ! Outliers n n Valori singoli o con frequenza estremamente bassa Possono distorcere le informazioni sui dati ! Dimensionalità n n Il numero di valori che una variabile può assumere può essere estremamente alto Tipicamente riguarda valori categorici ! Anacronismo n Una variabile può essere contingente: abbiamo i valori in una sola porzione dei dati Weka Data Preprocessing: esplorazione dei dati Corso di Data e Text Mining ! Uso di misure di statistica descrittiva n Indici di valore centrale w Media, mediana, moda n Indici di dispersione o variabilità w Varianza, deviazione standard, etc. ! Visualizzazione dei dati n Diagrammi a barre, etc. Weka Corso di Data e Text Mining Data Preprocessing in Weka ! Sostituzione dei valori NULL: n n n n Utilizzando media/mediana/moda Predicendo i valori mancanti utilizzando la distribuzione dei valori non nulli Segmentando i dati (tramite le distribuzioni di altre variabili) e utilizzando misure statistiche (media/ moda/mediana) di ogni segmento Costruendo un modello di regressione ! In Weka i valori nulli vengono sostituiti con le medie e le mode calcolate sui dati di training (ReplaceMissingValues filter) Weka Corso di Data e Text Mining Data Preprocessing in Weka ! Eliminazione degli attributi necessaria se: n n n esistono moltissimi valori NULL esistono pochissimi valori distinti esiste una correlazione con altri attributi ! In Weka tale funzione è svolta dal filtro Remove n cancella uno specificato set di attributi dal dataset di partenza Weka Corso di Data e Text Mining Data Preprocessing in Weka ! La Normalizzazione è utile in presenza di: n n n Errori nei dati Dati incompleti Forte asimmetria nei dati w diversi raggruppamenti esprimono comportamenti differenti w Molti picchi n residui larghi e sistematici nella definizione di un modello ! La modifica della forma dei dati può alleviare questi problemi ! In Weka tale funzione èsvolta dal filtro Normalize n I valori risultanti sono compresi tra [0,1] Weka Corso di Data e Text Mining Data Preprocessing in Weka ! Discretizzare: perché? n n n I dati originali possono avere valori continui estremamente sparsi I dati discretizzati possono essere più semplici da interpretare Le distribuzioni dei dati discretizzate possono avere una forma normale ! Esistono due modalità di discretizzazione: n n Supervisionata Non supervisionata Weka Corso di Data e Text Mining Data Preprocessing in Weka ! Discretizzazione non supervisionata: n n n Discretizza senza un preciso criterio (GAIN, ENTROPIA…) Il numero di classi è noto a priori Natural binning w intervalli di identica ampiezza n Equal Frequency binning w intervalli di identica frequenza n Statistical binning w utilizza misure statistiche: media e varianza, quartili Weka Corso di Data e Text Mining Data Preprocessing in Weka ! Discretizzazione supervisionata n n n la discretizzazione ha un obiettivo quantificabile (entropia, guadagno) Il numero di classi non è noto a priori I dati discretizzati possono essere ancora estremamente sparsi w eliminazione della variabile in oggetto Weka Corso di Data e Text Mining Data Preprocessing in Weka ! Riduzione del dataset n n In Weka è possibile ottenere un sottoinsieme del dataset originale utilizzando il filtro Resample Il dataset ridotto è ottenuto attraverso una scelta random sulle sue istanze w Verifica della forma delle distribuzioni degli attributi del sottoinsieme rispetto a quelle del dataset originale Weka Corso di Data e Text Mining Weka Explorer: filtri di preprocessing ! Supervisionati n n Su attributi Su istanze (righe) ! Non supervisionati n n Su attributi Su istanze (righe) ! Aggiunti n Classi Java Weka Corso di Data e Text Mining Filtri non supervisionati: Aggiunta e rimozione attributi ! Add / AddExpression / Copy • Aggiunta nuovo attributo con tutti i valori ? / con valori calcolati mediante espressione / con valori copiati da un altro attributo ! Remove / RemoveType / RemoveUseless • Rimuove un attributo / di un certo tipo / con valori sempre costanti o troppo variabili • (valori distinti / totale valori * 100) > 80 • Rimuove gli attributi con variabilità superiore all 80% Weka Corso di Data e Text Mining Filtri non supervisionati: Trasformazioni attributi ! NumericTransformation • Calcola una funzione matematica sui valori ! ReplaceMissingValues • Rimpiazza ? con moda (attributi discreti) e media (attributi continui) ! Add noise • Perturba una percentuale di valori di un attributo ! MergeTwoValues • Fonde due valori di un attributo in uno solo Weka Corso di Data e Text Mining Filtri non supervisionati: Trasformazioni attributi ! ChangeDateFormat • Cambia il formato di rappresentazione di un attributo data ! Obfuscate • Rinomina tutte le stringhe della relazione (per motivi di privacy) Weka Corso di Data e Text Mining Filtri non supervisionati: Normalizzazione attributi ! Normalize • Normalizzazione di tutti gli attributi numerici nell intervallo [0,1] • (x – Min) / (Max-Min) ! Standardize • Z-score normalizzazione (media = 0 e varianza = 1) • (x – media) / varianza Weka Corso di Data e Text Mining Filtri non supervisionati: Discretizzazione attributi ! Discretize • Discretizzazione dei valori • Equal width • N intervalli aventi la stessa ampiezza • Equal frequency • N intervalli aventi (approx) la stessa frequenza ! PKDiscretize • Equal frequency con N = SQRT( #valori non nulli ) Weka Corso di Data e Text Mining Weka Corso di Data e Text Mining Filtri non supervisionati: Tipologia attributi: ! Make indicator • Trasforma un attributo discreto in binario secondo il test: valore in {v1, …, vk} ! NumericToBinary • ! Trasforma gli attributi continui in binari secondo il test: valore == 0 NominalToBinary • Trasforma attributi discreti con K valori in K attributi binari Weka Corso di Data e Text Mining Filtri non supervisionati: Tipologia attributi: ! StringToNominal • Trasforma un attributo stringa in uno enumerato ! NumericToBinary • ! Trasforma gli attributi continui in binari secondo il test: valore == 0 NominalToBinary • Trasforma attributi discreti con K valori in K attributi binari Weka Corso di Data e Text Mining Filtri non supervisionati: Selezione e sampling di istanze: ! RemoveFolds • Seleziona 1 su n record ! RemovePercentage • Seleziona una percentuale dei record in modo casuale ! Randomize • Mescola record in modo casuale ! Resample • Seleziona una percentuale dei record in modo casuale con rimpiazzamento Weka Corso di Data e Text Mining Filtri non supervisionati: Selezione e sampling di istanze: ! RemoveWithValue • Rimuove record con un determinato valore di un attributo ! RemoveRange • Seleziona un intervallo di record Weka Corso di Data e Text Mining Filtri supervisionati: ! Attributo speciale • Detto classe cui il filtro fa riferimento • Per default è l ultimo attributo Seleziona classe Weka Corso di Data e Text Mining Filtri supervisionati: Su attributi: ! Discretize • Discretizzazione supervisionata Su istanze: ! StratifiedRemoveFolds n Seleziona 1 su n record mantenendo la proporzione originaria delle classi ! Resample / SpreadSample • Seleziona campione casuale con controllo della distribuzione dei valori della classe • Es., campione del 30% dei clienti in cui la percentuale di uomini sia uguale / il doppio a quella di donne Weka Corso di Data e Text Mining Weka Explorer ! Metafora: a task , un pannello per tipologia di analisi Pre-processing n Visualizzazione n Selezione degli attributi n Classificazione n Clustering n Regole associative n Weka Corso di Data e Text Mining Visualizzazione: preprocess Attributo classe Distribuzione Weka Corso di Data e Text Mining Visualizzazione: visualize Aggiorna Seleziona attributi Campione Attributo classe Weka Corso di Data e Text Mining Visualizzazione: visualize Weka Corso di Data e Text Mining Weka Explorer ! Metafora: a task , un pannello per tipologia di analisi Pre-processing n Visualizzazione n Selezione degli attributi n Classificazione n Clustering n Regole associative n Weka Corso di Data e Text Mining Selezione attributi Metodo di valutazione Metodo di ricerca Attributo classe Weka Corso di Data e Text Mining Selezione attributi Pannello delle selezioni Weka Corso di Data e Text Mining Selezione attributi ! Valutazione (singolo) attributo Information Gain n Chi-Square n Gain-Ratio n Principal Component Analysis n Basato su classificatori n Weka Corso di Data e Text Mining Selezione attributi ! Valutazione gruppi di attributi n Valuta ciascun singolo e combina le valutazioni con strategie di ricerca: w Ranker w Ricerca esaustiva w BestFirst (con backtracking) w Ricerca casuale Weka Corso di Data e Text Mining Selezione attributi ! Filtro (preprocessing) supervised AttributeSelection n Utile per automatizzare la selezione di attributi rilevanti n Weka Weka: KnowledgeFlow Corso di Data e Text Mining KnowledgeFlow ! KnowledgeFlow • GUI a flussi per operazioni di preprocessing e classificazione. Weka Corso di Data e Text Mining Knowledge Flow: layouts Help Task List Load/save layouts Knowledge Flow Layout Status Log Weka Corso di Data e Text Mining Sorgenti/Destinazioni di dati Weka Corso di Data e Text Mining Configurare sorgente Weka Corso di Data e Text Mining Visualizzatori ! DataVisualizers / ScatterPlotMatrix • 2D scatterplot / matrice di 2D scatterplot ! AttributeSummarizer • Distribuzione dei valori negli attributi ! TextViewer / GraphViewer • Visualizza dati/modelli in formato testuale / grafico Weka Corso di Data e Text Mining Connessione sorgente->task Weka Corso di Data e Text Mining Avvio elaborazione flusso Weka Corso di Data e Text Mining Visualizzazione risultati Weka Corso di Data e Text Mining Filtri (di preprocessing): Weka
Documenti analoghi
Il software Weka Weka - Università di Bologna
Il tab pre-processing consente inoltre funzionalità di visualizzazione delle distribuzione dei dati rispetto all’attributo di classificazione o altro
DettagliIntroduzione al Data Mining
sulla base di valori di altre variabili assumendo un modello di dipendenza lineare/non lineare. Problema ampiamente studiato in statistica e
Dettagli