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. CaratteristicheWeka è 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:
Il datasetInsieme 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 confusioneVengono utilizzate per la valutazione dei classificatori utilizzati in Weka.
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”. Utilizzo all'interno di codice JavaOltre 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
Altri progetti
Collegamenti esterni
|