WekaA Machine Learning Framework Machine LearningSub-discipline of AI to train computer programsto make predictions on future data WekaProvides algorithms and services to conductML experiments and develop ML applicationsHistory Received funding in 1993 fromgovernment of New Zealand First TCL/TK implementation released in1996 Rewritten in Java in 1999 Updated Java GUI in 2003Main ServicesData Pre-ProcessingImporting Data into Weka’s FormatsFiltering DataData ClassificationPredict one attribute based on other attributesClusteringBreaking data into meaningful sub-groups5Main Concept¢ Two Main Features in WEKA framework. Machine-Learning Algorithms.¢ 76 classification/regression algorithms.¢ 8 clustering algorithms. Data Processing Tools.¢ 49 data processing tools.Main Concept¢ Class and Package in WEKA Class in WEKA Implementation of a particular machine learningalgorithm ex. J48 class in weka.classifier.trees package. Package in WEKA Just a directory containing a collection of related classes. ex. weka.classifier.trees package.Main Concept¢ Main Packages weka.core package weka.classifiers package weka.filters packageMain Concept¢ Class Diagram for weka.core packageMain Concept¢ Class Diagram for weka.classifiers package10Main Concept¢ Class Diagram for weka.filters packageGetting Started: Data Start with a collection of dataWeka specific ARFF files or other sources (DB,CSV)@relation weather@attribute outlook {sunny, overcast, rainy}@attribute temperature real@attribute humidity real@attribute windy {TRUE, FALSE}@attribute play {yes, no}@datasunny,85,85,FALSE,nosunny,80,90,TRUE,noovercast,83,86,FALSE,yesrainy,70,96,FALSE,yesGetting Started: Code First load data into Instances variableDataSource source = new DataSource("weather.arff");Instances data = source.getDataSet();if (data.classIndex() == -1)data.setClassIndex(data.numAttributes() - 1);Getting Started: Code Filter if necessary, then conductexperimentNaiveBayes cModel = new NaiveBayes();...Evaluation eval = new Evaluation(data);eval.crossValidateModel(cModel, data, 10, new Random(1));System.out.println(eval.toSummaryString("\nResults\n=======\n",false));Getting Started: Code Printed resultsCorrectly Classified Instances 9 64.2857 %Incorrectly Classified Instances 5 35.7143 %Kappa statistic 0.1026Mean absolute error 0.4649Root mean squared error 0.543Relative absolute error 97.6254 %Root relative squared error 110.051 %Total Number of Instances 14Getting Started: Code Make a predictioncModel.buildClassifier(data);double[] fDistribution = cModel.distributionForInstance(iClassify);if(fDistribution[0] >= fDistribution[1]){System.out.println("Go out and play!\n");} else {System.out.println("Read a
View Full Document