: 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
! Software per machine learning / data mining! Scritto in Java distribuito con licenza GNU GPL! Funzionalità / Limiti: Insieme completo di algoritmi di preprocessing, learning e tecniche di valutazione Estendibile Non efficiente / scalabile: mantiene i dati in memoria
Versioni! Download: http://www.cs.waikato.ac.nz/~ml/weka! Aprile 2006, 3.4.7! Riferimento Data Mining by Witten & Frank, 2005
: interfacce 1/4! Explorer GUI a scomparti per operazioni di preprocessing, classificazione, clustering, regole associative
: interfacce 2/4! KnowledgeFlow GUI a flussi per operazioni di preprocessing e classificazione.
: interfacce 3/4! Simple CLI (Call Level Interface) accesso a oggetti e metodi del sistema mediante linea di comando
: interfacce 4/4! Experimenter Automazione serie di esperimenti di learning variando datasets, algoritmi e parametri
: messaggi ed errori
Formati di input/output! ARFF! JDBC! Binari (classi Java serializzate)! CSV! C4.5
Attribute-Relation File Format (ARFF) @relation tabella % commento @attribute nome string @attribute cognome string @attribute eta int @attribute professione string % commento @data Mario,Bianchi,23,Studente Luigi,Rossi,?,Operaio Anna,Verdi,50, Dottorando di ricerca Rosa,Neri,20,Studente Nome della tabella Linea di commento Nome e tipo colonna Inizio dati Missing value Quoting
Tipi ARFF! Enumerati o discreti @attribute CdL {informatica,tecnologie,infeconomia} Nominali à identificatori univoci (Cod. Fiscale) Categoriche à etichette ripetibili (Città) Ordinali à è definito un ordine (low < high) Binarie à due soli valori (T/F, 1/0,...)! Continui (int, real, numeric) @attribute eta numeric! Stringhe! Date @attribute indirizzo string @attribute datanascita date "yyyy-mm-dd HH:mm:ss"
Data Preprocessing e Visualization in Explorer
Explorer! Metafora: a task, un pannello per tipologia di analisi Pre-processing Visualizzazione Selezione degli attributi Classificazione Clustering Regole associative
Preprocessing: accesso ai dati File Url JDBC
Preprocessing: accesso ai dati
Edit e Salva Relazione Attributo classe Statistiche Attributi Distribuzione
Rimozione di un attributo Attributo selezionato Rimuovi
Edit della relazione
Filtri: selezione
Filtri: selezione
Filtri: opzioni
Filtri: applicazione
Filtri: applicazione Relazione Statistiche Distribuzione
Il Data Preprocessing è un processo! Accesso ai Dati! Esplorazione dei Dati Sorgenti Quantità Qualità! Ampliamento e arricchimento dei dati! Applicazione di tecniche specifiche
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
Data Preprocessing: operazioni! Alcune operazioni sono necessarie Studio dei dati Pulizia dei dati Campionamento! Altre possono essere guidate dagli obiettivi Trasformazioni Selezioni
Data Preprocessing: problemi! Troppi dati dati sbagliati, rumorosi dati non rilevanti dimensionalità intrattabile mix di dati numerici/simbolici! Pochi dati attributi mancanti valori mancanti dimensionalità insufficiente
Data Preprocessing: problemi! Sparsità Mancanza di valore associato ad una variabile w Un attributo è sparso se contiene molti valori nulli! Monotonicità Crescita continua dei valori di una variabile w w Intervallo [-, ] (o simili) Non ha senso considerare l intero intervallo! Outliers Valori singoli o con frequenza estremamente bassa Possono distorcere le informazioni sui dati! Dimensionalità Il numero di valori che una variabile può assumere può essere estremamente alto Tipicamente riguarda valori categorici! Anacronismo Una variabile può essere contingente: abbiamo i valori in una sola porzione dei dati
Data Preprocessing: esplorazione dei dati Corso di Data e Text Mining! Uso di misure di statistica descrittiva Indici di valore centrale w Media, mediana, moda Indici di dispersione o variabilità w Varianza, deviazione standard, etc.! Visualizzazione dei dati Diagrammi a barre, etc.
Data Preprocessing in! Sostituzione dei valori NULL: 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 i valori nulli vengono sostituiti con le medie e le mode calcolate sui dati di training (ReplaceMissingValues filter)
Data Preprocessing in! Eliminazione degli attributi necessaria se: esistono moltissimi valori NULL esistono pochissimi valori distinti esiste una correlazione con altri attributi! In tale funzione è svolta dal filtro Remove cancella uno specificato set di attributi dal dataset di partenza
Data Preprocessing in! La Normalizzazione è utile in presenza di: Errori nei dati Dati incompleti Forte asimmetria nei dati w diversi raggruppamenti esprimono comportamenti differenti w Molti picchi residui larghi e sistematici nella definizione di un modello! La modifica della forma dei dati può alleviare questi problemi! In tale funzione èsvolta dal filtro Normalize I valori risultanti sono compresi tra [0,1]
Data Preprocessing in! Discretizzare: perché? 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: Supervisionata Non supervisionata
Data Preprocessing in! Discretizzazione non supervisionata: Discretizza senza un preciso criterio (GAIN, ENTROPIA ) Il numero di classi è noto a priori Natural binning w intervalli di identica ampiezza Equal Frequency binning w intervalli di identica frequenza Statistical binning w utilizza misure statistiche: media e varianza, quartili
Data Preprocessing in! Discretizzazione supervisionata 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
Data Preprocessing in! Riduzione del dataset In è 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
Explorer: filtri di preprocessing! Supervisionati Su attributi Su istanze (righe)! Non supervisionati Su attributi Su istanze (righe)! Aggiunti Classi Java
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%
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
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)
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
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 )
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
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
Filtri non supervisionati: Selezione e sampling di istanze:! RemoveFolds Seleziona 1 su 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
Filtri non supervisionati: Selezione e sampling di istanze:! RemoveWithValue Rimuove record con un determinato valore di un attributo! RemoveRange Seleziona un intervallo di record
Filtri supervisionati:! Attributo speciale Detto classe cui il filtro fa riferimento Per default è l ultimo attributo Seleziona classe
Filtri supervisionati: Su attributi:! Discretize Discretizzazione supervisionata Su istanze:! StratifiedRemoveFolds Seleziona 1 su 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
Explorer! Metafora: a task, un pannello per tipologia di analisi Pre-processing Visualizzazione Selezione degli attributi Classificazione Clustering Regole associative
Visualizzazione: preprocess Attributo classe Distribuzione
Visualizzazione: visualize Aggiorna Seleziona attributi Campione Attributo classe
Visualizzazione: visualize
Explorer! Metafora: a task, un pannello per tipologia di analisi Pre-processing Visualizzazione Selezione degli attributi Classificazione Clustering Regole associative
Selezione attributi Metodo di valutazione Metodo di ricerca Attributo classe
Selezione attributi Pannello delle selezioni
Selezione attributi! Valutazione (singolo) attributo Information Gain Chi-Square Gain-Ratio Principal Component Analysis Basato su classificatori
Selezione attributi! Valutazione gruppi di attributi Valuta ciascun singolo e combina le valutazioni con strategie di ricerca: w Ranker w Ricerca esaustiva w BestFirst (con backtracking) w Ricerca casuale
Selezione attributi! Filtro (preprocessing) supervised AttributeSelection Utile per automatizzare la selezione di attributi rilevanti
: KnowledgeFlow
KnowledgeFlow! KnowledgeFlow GUI a flussi per operazioni di preprocessing e classificazione.
Knowledge Flow: layouts Task List Help Load/save layouts Knowledge Flow Layout Status Log
Sorgenti/Destinazioni di dati
Configurare sorgente
Visualizzatori! DataVisualizers / ScatterPlotMatrix 2D scatterplot / matrice di 2D scatterplot! AttributeSummarizer Distribuzione dei valori negli attributi! TextViewer / GraphViewer Visualizza dati/modelli in formato testuale / grafico
Connessione sorgente->task
Avvio elaborazione flusso
Visualizzazione risultati
Filtri (di preprocessing):