Weka (software)
Weka, acronimo di "Waikato Environment for Knowledge Analysis", è un software per l'apprendimento automatico sviluppato nell'università di Waikato in Nuova Zelanda. È open source e viene distribuito con licenza GNU General Public License. Curiosamente la sigla corrisponde al nome di un simpatico animale simile al Kiwi (vedi foto), presente solo nelle isole della Nuova Zelanda.
WEKA software | |
---|---|
Genere | Analisi dei dati Apprendimento automatico (non in lista) |
Sviluppatore | University of Waikato (NZ) |
Ultima versione | 3.8.6 (12 febbraio 2022) |
Ultima beta | 3.7.10 (21 febbraio 2013) |
Sistema operativo | Multipiattaforma |
Linguaggio | Java |
Licenza | GNU General Public License (licenza libera) |
Sito web | ml.cms.waikato.ac.nz/weka |
Caratteristiche
modificaWeka è un ambiente software interamente scritto in Java. Un semplice metodo per utilizzare questo software consiste nell'applicare dei metodi di apprendimento automatici (learning methods) ad un set di dati (dataset), e analizzarne il risultato. È possibile attraverso questi metodi, avere quindi una previsione dei nuovi comportamenti dei dati.
L'interfaccia grafica di Weka è composta da:
- Simple CLI: l'interfaccia dalla riga di comando;
- Explorer: ambiente che consente di esplorare i dati attraverso i comandi Weka:
- Preprocess permette di caricare i dati da una base dati o da un CSV e di applicare dei filtri ai dati;
- Classify applica algoritmi di classificazione e regressione;
- Cluster permette di usare tecniche di clustering;
- Associate cerca di estrarre delle Regole di associazione;
- Select attributes esegue degli algoritmi che permettono di valutare gli attributi in base alla loro utilità per la classificazione;
- Visualize visualizza un Grafico di dispersione;
- Experimenter: compie test statistici fra i diversi algoritmi di data mining;
- Knowledge Flow.
Il dataset
modificaInsieme di valori e attributi presenti all'interno di una relazione. In una tabella di un database relazionale le istanze corrispondono alle righe e gli attributi alle colonne. Il formato utilizzato in Weka per la lettura dei dataset è l'ARFF(Attribute Relationship File Format), è simile al più famoso CSV (Comma-separated values) ed è equivalente alla tabella di un database relazionale.
La matrice di confusione
modificaVengono utilizzate per la valutazione dei classificatori utilizzati in Weka.
a | b | classified as |
---|---|---|
7 | 2 | a = yes |
3 | 2 | b = no |
Le colonne della matrice rappresentano le istanze che sono state classificate come appartenenti a quella classe. Nell'esempio la prima colonna mostra che in totale sono state classificate 10 istanze “a” da Weka, e 4 sono state classificate come “b”.
Le righe della matrice di confusione rappresentano le reali istanze che appartengono a quella classe. Attraverso questo meccanismo la matrice è in grado di fornire il numero di casi che sono stati classificati correttamente e il numero di casi classificati in modo scorretto.
Utilizzo all'interno di codice Java
modificaOltre ad utilizzare WEKA da interfaccia grafica, è anche possibile usarlo all'interno di programmi scritti in Java.
Un esempio di training incrementale è il seguente[1]:
// carica di dati dal file di tipo ARFF
ArffLoader loader = new ArffLoader();
loader.setFile(new File("/some/where/data.arff"));
Instances structure = loader.getStructure();
// usa i dati caricati per allenare il clusterer Cobweb
Cobweb cw = new Cobweb();
cw.buildClusterer(structure);
Instance current;
while ((current = loader.getNextInstance(structure)) != null)
cw.updateClusterer(current);
cw.updateFinished();
È possibile anche eseguire l'allenamento in modalità batch, ovvero su tutte le istanze insieme:
import weka.core.Instances;
import java.io.BufferedReader;
import java.io.FileReader;
import weka.clusterers.EM;
...
BufferedReader reader = new BufferedReader(
new FileReader("/some/where/data.arff"));
Instances data = new Instances(reader);
reader.close();
String[] options = new String[2];
options[0] = "-I"; // numero massimo di interazioni
options[1] = "100";
EM clusterer = new EM(); // crea una nuova istanza del clusterer
clusterer.setOptions(options); // imposta le opzioni
clusterer.buildClusterer(data); // costruisci il clusterer
Note
modifica- ^ Use WEKA in your Java code, su weka.wikispaces.com. URL consultato il 2 gennaio 2014.
Altri progetti
modifica- Wikimedia Commons contiene immagini o altri file su Weka
Collegamenti esterni
modifica- Sito ufficiale, su cs.waikato.ac.nz. URL consultato il 31 agosto 2006 (archiviato dall'url originale il 6 dicembre 2011).
- Sito su Sourceforge [collegamento interrotto], su weka.wiki.sourceforge.net.
- Articolo Weka su Mokabyte, su www2.mokabyte.it (archiviato dall'url originale il 30 agosto 2007).
- WEKA: classificazione di dati meteo con tecniche di Data Mining - I parte: Creazione dei modelli, su www2.mokabyte.it. URL consultato il 16 ottobre 2022 (archiviato dall'url originale il 13 aprile 2013).