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 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

Dettagli

Introduzione al Data Mining

Introduzione 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