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