Weka Project Weka Machine Learning Algorithms in Java Weka Project • Comprende – Librerie – GUI • Scaricabile gratuitamente all’indirizzo – http://www.cs.waikato.ac.nz/~ml Formato .arff Nome relazione Dati Preprocessing Classificazione Clustering Regole di associazione Formato .arff • File testuale usato da Weka per memorizzare i dati (data set) • Ogni file corrisponde ad una relazione • Formato – Nome tabella – Definizione attributi – Dati Modalità di utilizzo di Weka • Gli algoritmi possono essere eseguiti @ATTRIBUTE sepallength REAL Attributo di tipo reale @ATTRIBUTE sepalwidth REAL @ATTRIBUTE petallength REAL @ATTRIBUTE petalwidth REAL @ATTRIBUTE class {Iris-setosa,Iris-versicolor,Iris-virginica} @DATA 5.1,3.5,1.4,0.2,Iris-setosa 4.9,3.0,1.4,0.2,Iris-setosa – – – – Nome attributo @RELATION iris Attributi • Waikato Environment for Knowledge Analysis • Algoritmi di Data Mining e Machine Learning realizzati in Java – Tramite linea di comando – Tramite GUI – Tramite chiamate all’interno di codice java Attributo di tipo nominale 1 Esecuzione tramite linea di comando Esecuzione tramite linea di comando • Tutti gli algoritmi inclusi in Weka possono essere eseguiti in linea • Si “esegue” la classe java associata all’algoritmo che si intende usare • Si passano su linea di comando i valori dei parametri dell’algoritmo e i file da usare • Esempio Esecuzione tramite linea di comando Esecuzione tramite linea di comando • Dal prompt di dos eseguire • Modello Algoritmo java -classpath weka.jar weka.classifiers.trees.J48 -t iris.arff Dati di training • In uscita vengono visualizzati – Il modello – Il risultato dei test – Algoritmo di classificazione • Albero di decisione J48 – Dati di training • iris.arff – Verifica dell’accuratezza del modello • Cross-validation test (opzione di default) petalwidth <= 0.6: Iris-setosa (50.0) petalwidth > 0.6 | petalwidth <= 1.7 | | petallength <= 4.9: Iris-versicolor (48.0/1.0) | | petallength > 4.9 | | | petalwidth <= 1.5: Iris-virginica (3.0) | | | petalwidth > 1.5: Iris-versicolor (3.0/1.0) | petalwidth > 1.7: Iris-virginica (46.0/1.0) GUI Weka Esecuzione tramite linea di comando • Risultati test === Stratified cross-validation === Correctly Classified Instances 144 96% Incorrectly Classified Instances 6 4% ……. === Confusion Matrix === a b c <-- classified as 49 1 0 | a = Iris-setosa 0 47 3 | b = Iris-versicolor 0 2 48 | c = Iris-virginica • Per avviare la parte grafica eseguire dal prompt di dos il comando java –jar weka.jar • Sono disponibili quattro modalità – – – – Simple CLI Explorer Experimenter KnowledgeFlow 2 GUI Weka Weka – Explorer GUI • Simple CLI – Linea di comando • Explorer – Versione grafica di base • Experimenter – Parte sperimentale con collegamento a JDBC Selezionare Explorer • KnowledgeFlow – Versione drag and drop Tipologie di operazioni disponibili Preprocessing • Selezione del dataset • Filtri – Selezione attributi – Discretizzazione – …. • Informazione sulla distribuzione dei dati Preprocessing Tipo filtro da applicare Apertura dataset • Selezionare il dataset che si vuole analizzare – Open file • Decidere quale filtro applicare Attributi – Premere il tasto Choose e selezionare il filtro • Eseguire il filtro premendo Apply Distribuzione delle classi in funzione dell’attributo selezionato 3 Classify Tipologia di test Algoritmo selezionato e suoi parametri • Selezione l’algoritmo di classificazione che si vuole utilizzare – Premere il tasto Choose e selezionare l’algoritmo – Premere il tasto sinistro sulla barra delle opzioni per modificare le opzioni Attributo di classe • Selezionare l’attributo di classe • Selezionare il metodo di test/verifica • Eseguire l’algoritmo premendo Start Risultati Cluster Tipologia di test Algoritmo selezionato e suoi parametri • Selezione l’algoritmo di clustering che si vuole utilizzare – Premere il tasto Choose e selezionare l’algoritmo – Premere il tasto sinistro sulla barra delle opzioni per modificare le opzioni • Selezionare gli eventuali attributi da non considerare (as esempio la classe) • Selezionare il metodo di test/verifica • Eseguire l’algoritmo premendo Start Attributi da non considerare Risultati Associate Algoritmo selezionato e suoi parametri • Selezione l’algoritmo di estrazione che si vuole utilizzare – Premere il tasto Choose e selezionare l’algoritmo – Premere il tasto sinistro sulla barra delle opzioni per modificare le opzioni • Eseguire l’algoritmo premendo Start Risultati 4 Altri algoritmi disponibili • Select attributes – Permette di selezionare gli attributi che sono considerati più utili per la classificazione • Utile per eliminare gli attributi poco interessanti e quindi velocizzare la creazione dei modelli di clustering • Visualize – Permette di visualizzare i dati Uso di Weka nel programmi java • Passi base – Creazione di un oggetto di tipo Instances per la memorizzazione del dataset – Eventuale discretizzazione dei dati – Applicazione dell’algoritmo di Data Mining – Visualizzazione o salvataggio dei risultati Uso di Weka nel programmi java • Si possono usare tutti gli algoritmi disponibili in Weka all’interno di programmi java • Si include la libreria di weka • Si effettuano le chiamate ai metodi delle classi java che realizzano gli algortimi di Data Mining Esempio • Classificazione di messaggi – Creazione del dataset di training – Generazione del modello tramite l’algoritmo J48 – Applicazione del modello a dei dati di test • Fare riferimento a MessaggeClassifier.java 5