WEKA
Waikato Environment for Knowledge Analysis
Ida Mele
Introduzione a Weka
• Collezione di algoritmi di Machine Learning – Package Java
Open Source.
• Acronimo di Waikato Environment for Knowledge Analysis.
• Scritto in java, utilizzabile su qualunque sistema operativo
dotato di piattaforma java.
• Home page di Weka: http://www.cs.waikato.ac.nz/ml/weka/
dove si può scaricare il software e dataset di esempio.
• Manuale:
http://transact.dl.sourceforge.net/sourceforge/weka/WekaManual-3.6.0.pdf
Weka
Pagina 2
Introduzione a Weka (2)
• Collezione estensiva di tool per Machine Learning e
Data Mining.
• Classificazione: implementazione java di tutte le
tecniche di Machine Learning correntemente utilizzate.
• Regressione.
• Regole di associazione.
• Algoritmi di clustering.
Weka
Pagina 3
Weka: schemi per la classificazione
•
•
•
•
•
•
•
•
Decision trees
Rule learners
Naïve Bayes
Decision Tables
Locally weighted regression
SVM
Instance-based learners
Logistic regression
Weka
Pagina 4
Weka: Predizione Numerica
•
•
•
•
•
•
Linear regression
Model tree generators
Locally weighted regressione
Instance-based learners
Decision Tables
Multi-layer perceptron
Weka
Pagina 5
Weka: Meta Schemi
•
•
•
•
•
•
Bagging
Boosting
Stacking
Regression via classification
Classification via regression
Cost sensitive classification
Weka: Schemi per clustering
• EM
• Cobweb
Weka
Pagina 6
Installazione
• Assicurarsi che sulla propria macchina sia presente
una installazione del JRE.
• Scaricare l’archivio di Weka e decomprimerlo.
• Aprire un terminale ed entrare nella directory di
Weka.
• Digitare il comando:
java -Xmx512M -jar weka.jar
Weka
Pagina 7
Ambienti operativi
• SimpleCLI: Ambiente a linea di comando da usare
per invocare direttamente le varie classi da cui Weka
è composto.
• Explorer: ambiente da utilizzare per caricare degli
insiemi di dati, visualizzare la disposizione degli
attributi, preprocessare i dati ed eseguire algoritmi di
classificazione, clustering, selezione di attributi e
determinazione di regole associative.
Weka
Pagina 8
Ambienti operativi (2)
• Experimenter: è una versione batch dell'Explorer.
Consente di impostare una serie di analisi, su vari
insiemi di dati e con vari algoritmi, ed eseguirle alla
fine tutte insieme. È possibile in questo modo
confrontare vari tipi di algoritmi, e determinare quale è
il più adatto a uno specifico insieme di dati.
• Knowledge Flow: una variante dell'Explorer, in cui le
operazioni da eseguire si esprimono in un ambiente
grafico, disegnando un diagramma che esprime il
“flusso della conoscenza”. È possibile selezionare
varie componenti (sorgenti di dati, filtri, algoritmi di
classificazione) e collegarli in un diagramma
tipicamente detto “data-flow”.
Weka
Pagina 9
Ambienti operativi: Explorer
Weka
Pagina 10
Dati
• Weka può prelevare i propri dati usando 3 funzioni:
– Open File: preleva i dati da un file di testo sul
computer locale, in formato ARFF, CSV, C45 o
Binary serialized istances. Il formato standard di
Weka è ARFF.
– Open URL: preleva i dati da un file su web, in uno
dei formati di cui sopra.
– Open DB: preleva i dati da un server database
supportato dai driver JDBC.
• C'è anche la possibilità di generare dati artificiali:
– Generate: utilizza dei DataGenerators per creare
dati artificiali.
Weka
Pagina 11
Preprocessamento dei dati
• Una volta aperto l'insieme di dati di interesse, in
basso a sinistra compare l'elenco degli attributi che
compongono i dati in questione. Cliccando su un
attributo, sul lato destro appaiono delle informazioni
statistiche.
• Per attributi nominali abbiamo l'elenco dei possibili
valori e, per ognuno di essi, il numero di istanze con
quel valore.
• Per attributi numerici, abbiamo invece informazioni
sul valore massimo, minimo, media e deviazione
standard, oltre a numero di valori diversi, numero di
valori unici e numero di istanze col valore mancante.
Weka
Pagina 12
Preprocessamento dei dati
• Sotto le informazioni statistiche abbiamo
un istogramma. Con gli attributi nominali viene
visualizzato, per ogni valore, una barra di altezza
proporzionale al numero di istanze con quel valore.
• Per gli attributi numerici le informazioni sono simili, ma il
sistema decide automaticamente in quanti intervalli
divedere il range dell'attributo e quindi quante barre
visualizzare.
• Una volta caricati i dati, è possibile modificarli
applicando un filtro o una procedura di modifica
interattiva. Esempi: modificare tutte le istanze con un
valore fisso per un attributo, cancellare o rinominare
attributi…
Weka
Pagina 13
Formato ARFF
• ARFF è il formato dati standard di WEKA.
• Un file ARFF è composto da una intestazione e dal corpo
dati vero e proprio.
• L’intestazione contiene il nome del set dei dati e una
intestazione degli attributi.
• Per ogni attributo è possibile specificare il tipo: numerico,
categoriale, stringa o data.
• I dati veri e propri sono forniti creando una riga per ogni
istanza, e separando i campi con delle virgole.
• Ovunque è possibile inserire dei commenti, facendoli
precedere dal simbolo %.
Weka
Pagina 14
Formato ARFF: esempio
@relation weather
% Relazione weather-data
@attribute outlook {sunny, overcast, rainy}
@attribute temperature real
@attribute humidity real
@attribute windy {TRUE, FALSE}
@attribute play {yes, no}
@data
sunny,85,85,FALSE,no
sunny,80,90,TRUE,no
overcast,83,86,FALSE,yes
Weka
Pagina 15
Formato ARFF: esempio (2)
• Nell’esempio fornito osserviamo che:
– la riga @relation weather specifica un nome
per la relazione.
– la riga @attribute outlook {sunny,
overcast, rainy} specifica che l’attributo di
nome outlook è di tipo categoriale e può assumere i
valori sunny, rainy e overcast.
– la riga @attribute temperature real specifica
che l’attributo di nome temperature è di tipo
numerico.
– la riga @data indica l’inizio dei dati veri e propri.
Weka
Pagina 16
Formato ARFF
• Si può utilizzare il valore ? come dato per indicare un
valore mancante.
• In generale, ogni volta che serve individuare un
attributo particolare come la “classe” dell’istanza, ad
esempio nei problemi di classificazione o selezione
degli attributi, l’ultimo attributo gioca questo ruolo.
• Si può comunque sempre specificare un diverso
attributo, caso per caso.
Weka
Pagina 17
Architettura
• Elenco dei package principali:
– weka.associations
– weka.attributeSelection
– weka.classifiers
– weka.clusterers
– weka.core
– weka.estimators
– weka.experiment
– weka.filters
– weka.gui.package
– weka.gui.experiment
– weka.gui.explorer
Weka
Pagina 18
Il package weka.core
• Il package core è il package centrale del sistema
Weka. Contiene classi a cui quasi tutte le altre classi
fanno accesso.
• Classi principali:
– Attribute: un oggetto di questa classe rappresenta
un attributo. Contiene il nome dell’attributo, il suo
tipo e, in caso di attributo nominale, i possibili valori.
– Instance: un oggetto di questa classe contiene i
valori degli attributi di una particolare istanza.
– Instances: un oggetto di questa classe mantiene un
insieme ordinato di istanze, ovvero un dataset.
Weka
Pagina 19
Il package weka.classifiers
• 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.
Weka
Pagina 20
Il package Weka.clusterers
• Contiene un’implementazione di due importanti metodi
di apprendimento non supervisionato: COBWEB ed
EM.
Il package Weka.estimators
• Contiene sottoclassi di una generica classe Estimator,
che calcola vari tipi di distribuzioni di probabilità.
Weka
Pagina 21
Il package weka.filters
• Tool per il preprocessamento dei dati: discretizzazione,
normalizzazione, resampling, selezione, trasformazione
o combinazione di attributi.
• La classe Filter definisce la struttura generale di tutte le
classi che contengono algoritmi di filtering.
• Tali classi sono tutte implementate come sottoclassi di
Filter.
Il package weka.attributeSelection
• Mette a disposizione classi per effettuare riduzioni
dimensionali su una collezione di dati.
• Queste classi vengono utilizzate da
weka.filters.attributeSelectionFilter, ma possono
anche essere usate separatemente.
Weka
Pagina 22
Classificatori: J48
• Alberi di decisione: metodo di classificazione
supervisionato.
• Un albero di decisione è una semplice struttura in cui i
nodi non terminali rappresentano test su uno o più
attributi mentre i nodi terminali riflettono i risultati della
decisione.
• Approccio reso popolare da J.R.Quinlan.
• C4.5 è l’ultima implementazione di pubblico dominio
del modello di Quinlan.
• L’algoritmo J48 è l’implementazione Weka dell’albero
di decisione C4.5.
Weka
Pagina 23
Classificatori: J48 (2)
Weka
Pagina 24
Alberi di decisione: approccio generale
• Scegliere un attributo che meglio differenzia i valori
dell’attributo di output.
• Creare nell’albero un ramo separato per ogni possibile
valore dell’attributo scelto.
• Dividere le istanze in sottogruppi che riflettano i valori
dell’attributo scelto.
Weka
Pagina 25
Alberi di decisione: approccio generale (2)
• Per ogni sottogruppo, terminare il processo di
selezione degli attributi se:
– (a) tutti i membri di un sottogruppo hanno lo stesso
valore per l’attributo di output (in questo caso il
ramo considerato va etichettato con il valore
specificato);
– (b) il sottogruppo contiene un singolo nodo oppure
non è più possibile individuare un attributo in base
al quale fare differenziazioni. In questo caso, il ramo
considerato viene etichettato con il valore
dell’attributo di output che caratterizza la maggior
parte delle istanze rimanenti.
Weka
Pagina 26
Alberi di decisione: approccio generale (3)
• Il processo viene ripetuto per ogni sottogruppo che
non è stato etichettato come terminale.
• L’algoritmo viene applicato ai dati di training.
• L’albero di decisione creato viene quindi testato su un
dataset di test. Se non sono disponibili dati di test J48
esegue cross validation sui dati di training.
Weka
Pagina 27
J48: Opzioni
• Attributo di output: può essere scelto soltanto tra gli
attributi di categoria.
• Fattore di confidenza: determina il valore da
utilizzare per fare pruning (rimozione dei rami che
non portano guadagno in termini di accuratezza
statistica del modello); default: 25%.
• Numero minimo di istanze per foglia: un valore alto
creerà un modello più generale, un valore basso un
albero più specializzato.
Weka
Pagina 28
J48: Opzioni (2)
• Numero di cartelle per cross validation: determina come
costruire e testare il modello in assenza di dati di test.
• Se questo valore è x, 1 – 1/x dei dati di training viene
usato per costruire il modello e 1/x viene usato per il
test. Il processo viene ripetuto x volte, in modo che tutti
I dati di training siano usati esattamente una volta nei
dati di test. La stima complessiva si ottiene facendo la
media delle x stime d’errore. Valore tipico: 10.
• Test data set: permette di specificare un insieme di dati
di test.
Weka
Pagina 29
Alberi di decisione: Vantaggi e Svantaggi
• Vantaggi:
– semplici da comprendere e da convertire in un
insieme di regole di produzione;
– possono classificare sia dati numerici che di
categoria, ma l’attributo di output deve essere di
categoria;
– non ci sono assunzioni a priori sulla natura dei dati.
• Svantaggi:
– molteplici attributi di output non sono consentiti;
– gli alberi di decisione sono instabili. Leggere
variazioni nei dati di training possono produrre
differenti selezioni di attributi ad ogni punto di scelta
all’interno dell’albero.
Weka
Pagina 30
Classificatori: parametri generali
• Se si utilizza SimpleCLI si possono invocare le classi di Weka.
Esempio per utilizzare J48:
java weka.classifiers.trees.J48 -t data/weather.arff
• I parametri generali sono:
-t: file di training (formato ARFF)
-T: file di test (formato ARFF). Se questo parametro manca, di default
si esegue 10-fold cross validation
-k: specifica numero di cartelle per cross validation
-c: selezionare la variable classe
-d: salvare il modello generato dopo il training
-l: caricare un modello salvato in precedenza
-i: descrizione dettagliata delle prestazioni
-o: disabilita output human- readable
Weka
Pagina 31
Altri classificatori
•
•
•
•
bayes.NaiveBayes
meta.ClassificationViaRegression
functions.Logistic
functions.SMO
• lazy.Kstar
• lazy.Ibk
• rules.JRip
Weka
Pagina 32
Explorer: Classificatore
Weka
Pagina 33
Explorer: Classificatore (2)
Weka
Pagina 34
Explorer: Classificatore (3)
Weka
Pagina 35
Explorer: Classificatore (4)
1
2
Risultat
i
Weka
Pagina 36
Output di un classificatore
• La prima parte è una descrizione leggibile del
modello generato.
• Il nodo alla radice dell’albero determina la
prima decisione.
• Il numero in parentesi alla fine di ogni foglia
indicano il numero di esempi contenuti nella
foglia stessa. Se una o più foglie non sono
pure (tutti esempi della stessa classe), viene
indicato anche il numero di esempi che non
sono stati classificati correttamente.
• La seconda parte è relativa alla valutazione delle
prestazioni del classificatore.
Weka
Pagina 37
Output del classificatore: esempio
Weka
Pagina 38
Output del classificatore: esempio
Weka
Pagina 39
Classificatore: valutazione (1)
• Accuratezza intorno al 64%.
• Kappa statistic: misura il grado di accordo della
predizione con la vera classe – 1.0 significa accordo
perfetto.
• Le altre metriche d’errore non sono molto significative
ai fini della classificazione, ma possono essere usate
ad esempio per regressione.
• Matrice di confusione: istanze classificate
correttamente su una diagonale.
Weka
Pagina 40
Classificatore: valutazione (2)
• Osserviamo la matrice di confusione:
== Confusion Matrix ==
a b <-- classified as
7 2|a
3 2|b
Il numero di istanze classificate correttamente è dato dalla
somma della diagonale, mentre le altre istanze sono
classificate in modo errato.
Ad esempio abbiamo 2 istanze della classe a erroneamente
classificate come appartenenti alla classe b e 3 istanze
di b sono erroneamente classificate come appartenenti
alla classe a.
Weka
Pagina 41
Classificatore: valutazione (3)
• True Positive rate (TP rate) o Recall è la frazione di esempi
classificati correttamente come appartenenti alla classe x, fra
tutti quelli che sono realmente della classe x. Nella confusion
matrix è l'elemento diagonale diviso per la somma degli
elementi della riga. Esempio: 7/(7+2)= 0.778 per la classe a e
2/(3+2)=0.4 per la classe b.
• False Positive rate (FP rate) è frazione di esempi classificati
come appartenenti alla classe x, ma che in realità
appartengono a un’altra classe, fra tutti quelli che non
appartengono alla classe x. Nella matrice è la somma della
colonna meno l'elemento diagonale diviso per la somma delle
righe nelle altre classi. Esempio: (7+3-7)/(3+2)=3/5=0.6 per la
classe a e (2+2-2)/(7+2)= 2/9=0.222 per la classe b.
Weka
Pagina 42
Classificatore: valutazione (4)
• Precision è la frazione di esempi realmente di classe x
fra tutti quelli classificati come x. Nella confusion matrix è
l'elemento diagonale diviso per la somma delle colonne
rilevanti. Esempio: 7/(7+3)=0.7 per la classe a e
2/(2+2)=0.5 per la classe b.
• F-Measure è una misura standard che riassume
precision e recall: 2*Precision*Recall/(Precision+Recall).
Esempio: 2*0.7*0.778/(0.7+0.778)=0.737 per la classe a
e 2*0.5*0.4/(0.5+0.4)=0.444 per la classe b.
Weka
Pagina 43
Clustering
• Le tecniche di clustering si applicano per suddividere un
insieme di istanze in gruppi che riflettano qualche
meccanismo o caratteristica naturale del dominio di
appartenenza delle istanze stesse.
• Queste proprietà fanno sì che delle istanze siano
accomunate da una “somiglianza” più forte rispetto agli
altri dati nella collezione.
• Il clustering richiede approcci differenti da quelli usati
per classificazione e regole di associazione.
Weka
Pagina 44
Clustering (2)
• Lo scopo di un algoritmo di clustering è quello di
suddividere un insieme di documenti in gruppi che
siano quanto più possibile coerenti internamente, e
allo stesso tempo diversi l’uno dall’altro.
• I documenti all’interno di un cluster dovrebbero
essere quanto più possibile diversi da quelli inseriti
all’interno di un altro cluster.
Weka
Pagina 45
Clustering (3)
• Il clustering è un problema fondamentalmente diverso
dalla classificazione: la classificazione è una forma di
apprendimento supervisionato.
• Lo scopo della classificazione è quello di replicare una
distinzione in categorie che un assessor umano ha
imposto sui dati.
• L’input chiave di un algoritmo di clustering è la misura di
distanza che viene usata per suddividere le istanze in
gruppi.
Weka
Pagina 46
Tipi di clustering
• Flat clustering: crea un insieme di cluster piatto, senza
una struttura gerarchica che metta in relazione i cluster
l’uno con l’altro.
• Hierarchical clustering: crea una gerarchia di cluster.
• Hard clustering: assegna ogni istanza ad esattamente
un cluster.
• Soft clustering: l’assegnazione di un documento è una
distribuzione su tutti i cluster (es. LSI).
• Terminologia alternativa: cluster partizionale o
esaustivo.
Weka
Pagina 47
Clustering in Information Retrieval
• Cluster hypothesis: documenti in uno stesso cluster
hanno un comportamento simile rispetto a ciò che è
rilevante per soddisfare le esigenze informative
degli utenti.
• Se un documento è rilevante per una richiesta di
ricerca, assumiamo che anche gli altri documenti
all’interno dello stesso cluster siano rilevanti.
• Il clustering ha molte applicazioni in information
retrieval. Viene usato per migliorare usabilità,
efficienza ed efficacia del sistema di ricerca.
Weka
Pagina 48
Cardinalità
• Critical issue: determinare K, cardinalità di un
clustering.
• Brute force approach: enumera tutti i possibili
clustering e scegli il migliore (non utilizzabile in pratica
per via dell’esplosione esponenziale del numero di
possibili partizioni).
• La maggior parte degli algoritmi procede per
raffinamento iterativo di un partizionamento iniziale:
trovare un buon punto di partenza è dunque
importante per la qualità della soluzione finale.
Weka
Pagina 49
Valutazione di un clustering
• Obiettivo generale: alta similarità intra-cluster e
bassa similarità inter-cluster (criterio interno di
qualità).
• Il soddisfacimento di questo criterio non garantisce
la realizzazione di un’applicazione efficace.
• Approccio alternativo: valutazione diretta
nell’applicazione di interesse.
• User study: approccio immediato ma costoso.
• Altra possibilità: confronta i risultati del clustering
con un golden standard.
Weka
Pagina 50
Clustering: Criteri esterni di qualità
• Purity: assegna ogni cluster alla classe che occorre
più frequentemente nel cluster; accuratezza: frazione
di documenti assegnati correttamente.
• Un clustering perfetto ha purity 1, mentre un
clustering di cattiva qualità ha purity prossima a 0.
• Un valore elevato è facile da ottenere quando il
numero di cluster è elevato: purity 1 se ogni
documento è assegnato a un suo proprio cluster.
• Purity non dà info utili se cerchiamo un trade off tra
la qualità del clustering e il numero di cluster.
Weka
Pagina 51
Clustering: Criteri esterni di qualità (2)
• Approccio alternativo: vedere il clustering come una
serie di decisioni, una per ogni coppia di documenti
nella collezione.
• Vogliamo assegnare due documenti ad uno stesso
cluster se sono simili.
• TP: assegna due documenti simili allo stesso cluster
• TN: assegna due documenti non simili a cluster
differenti
• FP: assegna due documenti non simili allo stesso
cluster
• FN: assegna due documenti simili a cluster diversi.
Weka
Pagina 52
Clustering: Criteri esterni di qualità (3)
• Rand Index calcola la percentuale di decisioni
corrette: RI = (TP + TN) / (TP + TN + FP + FN)
• RI assegna uguale peso a FP e FN; a volte
separare documenti simili è considerato più grave
che mettere due documenti diversi in uno stesso
cluster;
• F-measure assegna una maggiore
penalizzazione a FN:
F-measure = 2PR / (P+R), con P=TP/(TP+FP) e
R=TP/(TP+FN)
Weka
Pagina 53
K-Means
• Flat Clustering Algorithm più importante.
• Obiettivo: minimizzare il valor medio del quadrato della
distanza euclidea dei documenti dal centro del cluster a
cui sono stati assegnati.
• Il centro di un cluster è definito come la media di tutti i
documenti presenti nel cluster (centroide).
• Clustering ideale: una sfera che ha il centroide come
suo centro di gravità.
Weka
Pagina 54
Explorer: Clusterer SimpleKMeans
Weka
Pagina 55
Explorer: Clusterer SimpleKMeans (2)
Weka
Pagina 56
Explorer: Clusterer SimpleKMeans (3)
Weka
Pagina 57
Explorer: Clusterer SimpleKMeans (4)
1
Risultat
i
2
Weka
Pagina 58
EM Clustering
• Algoritmo iterativo adattabile a vari tipi di modellazione
probabilistica.
• Goal: determinare una stima a massima verosimiglianza
dei parametri del modello, che dipende da alcune
variabili nascoste.
• Itera un “alternanza” di due passi:
– Expectation: calcola il valore atteso della likelihood in
base alle stima corrente per la distribuzione dei
parametri
– Maximization: calcola i parametri che massimizzano
la verosimiglianza attesa determinata al passo
precedente.
• Il passo di expectation determina un’assegnazione “soft”
delle istanze ai cluster.
Weka
Pagina 59
Explorer: Clusterer EM
2
1
3
Weka
Pagina 60
Explorer: Clusterer EM (2)
1
Risultat
i
2
Weka
Pagina 61
Feature Selection
• Obiettivo: selezionare un sottoinsieme di feature
rilevanti per costruire modelli di learning robusti.
• Elimina le feature non rilevanti o rilevanti.
• Migliora le prestazioni dei modelli di learning:
• Allevia problemi dovuti a esplosione dimensionale
• Rafforza la capacità di generalizzazione del modello
• Velocizza il processo di learning
• Migliora la leggibilità del modello
• Permette di acquisire una migliore conoscenza dei dati
evidenziandone le proprietà più importante.
Weka
Pagina 62
Feature Selection (2)
• Teoricamente, una selezione ottimale richiede
l’esplorazione esaustiva dello spazio di tutti i possibili
sottoinsiemi di feature.
• Nella pratica si seguono due diversi approcci:
• Feature Ranking: usa una metrica per ordinare
le feature ed elimina tutte le feature che non
ottengono uno score adeguato.
• Subset Selection: cerca l’insieme di possibili
feature per il sottoinsieme ottimale.
Weka
Pagina 63
Feature Selection: Subset selection
• Valuta la bontà di un insieme di features.
• Molte euristiche per la ricerca delle feature si basano
su greedy hill climbing: valuta iterativamente un
sottoinsieme candidato di feature, quindi modifica
tale insieme e valuta se l’insieme ottenuto è migliore
del precedente.
• La valutazione degli insiemi di feature richiede l’uso
di opportune metriche.
• La ricerca esaustiva non è in genere praticabile; al
raggiungimento di un criterio di arresto si restituisce
l’insieme di feature che ha ottenuto il punteggio più
alto.
Weka
Pagina 64
Feature Selection: Subset Selection (2)
• Possibili euristiche per la ricerca:
• Esaustiva
• Best first
• Simulated annealing
• Algoritmi genetici
• Greedy forward selection
• Greedy backward elimination
• Possibili criteri di arresto:
• lo score assegnato ad un certo insieme supera
una certa soglia;
• il tempo di computazione supera un massimo
prestabilito.
Weka
Pagina 65
Explorer: Select Attributes
Weka
Pagina 66
Select Attributes: CfsSubsetEval
Weka
Pagina 67
Select Attributes: CfsSubsetEval (2)
Weka
Pagina 68
Select Attributes: InfoGainAttributeEval
Weka
Pagina 69
Select Attributes: InfoGainAttributeEval (2)
Weka
Pagina 70
Select Attributes: InfoGainAttributeEval (3)
Weka
Pagina 71