To train an initial model, select Classify at the top of the screen. However, Weka’s result does not match to my C code implementation results. A comprehensive source of information is the chapter Using the API of the Weka manual. After a few seconds, Weka will produce a classifier. Several design approaches are possible. This is a two-step process involving the Instances class and Instance class, as described above. Note: The classifier (in our example tree) should not be trained when handed over to the crossValidateModel method. To change the model to train, click Choose from the top left-hand side of the screen, which presents a hierarchical list of classifier types. Classification methods address these class prediction problems. The following is an example of using this meta-classifier with the Remove filter and J48 for getting rid of a numeric ID attribute in the data: On the command line, you can enable a second input/output pair (via -r and -s) with the -b option, in order to process the second file with the same filter setup as the first one. Weka is an Open source Machine Learning Application which helps to predict the required data as per the given parameters import import import import import import import import weka.core.Instances; weka.core.converters.ConverterUtils. This returns the model file as a Java Object that can be cast to Classifier and stored in classModel. These patterns are presumed to be causal and, as such, assumed to have predictive power. This article introduces Weka and simple classification methods for data science. The PredictionTable.java example simply displays the actual class label and the one predicted by the classifier. Clusterers implementing the weka.clusterers.UpdateableClusterer interface can be trained incrementally. A link to an example class can be found at the end of this page, under the Links section. Weka is a standard Java tool for performing both machine learning experiments and for embedding trained models in Java applications. Weka is an open source program for machine learning written in the Java programming language …. That complicates using them. Instead of classifyInstance(Instance), it is now clusterInstance(Instance). The following examples show how to use weka.classifiers.bayes.NaiveBayes. For example, if you want to remove the first attribute of a dataset, you need this filter. Weka (>= 3.7.3) now has a dedicated time series analysis environment that allows forecasting models to be developed, evaluated and visualized. Using a different seed for randomizing the data will most likely produce a different result. In the following example, a J48 is instantiated, trained and then evaluated. Upon opening the Weka, the user is given a small window with four buttons labeled Applications. $140 USD in 2 … • All these algorithms can be executed with the help of the java code. Coming from a research background, Weka has a utilitarian feel and is simple to operate. Because this is a multi-class classifier, the example uses distributionForInstance(), which is called on the instance within the Instances object at index 0. (It creates a copy of the original classifier that you hand over to the crossValidateModel for each run of the cross-validation.). The training is done via the buildClassifier(Instances) method. With the information included, it is possible to create a solid classifier and make any necessary changes to fit the final application. Weka is an Open source Machine Learning Application which helps to predict the required data as per the given parameters java weka.filters.supervised.instance.Resample -i data/soybean.arff -o soybean-5%.arff -c last -Z 5 java weka.filters.supervised.instance.Resample -i data/soybean.arff -o soybean-uniform-5%.arff -c last -Z 5 -B 1 StratifiedRemoveFolds creates stratified cross-validation folds of the given dataset. Weka is tried and tested open source machine learning software that can be accessed through a graphical user interface, standard terminal applications, or a Java API. The following are a few sample classes for using various parts of the Weka API: WekaDemo.java (stable, developer) - little demo class that loads data from a file, runs it through a filter and trains/evaluates a classifier, ClusteringDemo.java (stable, developer) - a basic example for using the clusterer API, ClassesToClusters.java (stable, developer) - performs a classes to clusters evaluation like in the Explorer, AttributeSelectionTest.java (stable, developer) - example code for using the attribute selection API. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. 8. After selecting Explorer, the Weka Explorer opens and six tabs across the top of the window describe various data modeling processes. Using Weka in Java code directly enables you to automate this preprocessing in a way that makes it much faster for a developer or data scientist in contrast to manually applying filters over and over again. The classifySpecies() method begins by creating a list of possible classification outcomes. The method for obtaining the distribution is still the same, i.e., distributionForInstance(Instance). An array of doubles holds each value as it is returned from the. Weka automatically assigns the last column of an ARFF file as the class variable, and this dataset stores the species in the last column. The RandomTree classifier will be demonstrated with Fisher’s iris dataset. Click Start to start the modeling process. ... First TCL/TK implementation released in 1996 Rewritten in Java in 1999 Updated Java GUI in 2003. This example can be refined and deployed to an OLTP environment for real-time classification if the OLTP environment supports Java technology. Weka schemes that implement the weka.core.OptionHandler interface, such as classifiers, clusterers, and filters, offer the following methods for setting and retrieving options: There are several ways of setting the options: Also, the OptionTree.java tool allows you to view a nested options string, e.g., used at the command line, as a tree. The PredictionTable.java example simply displays the actual class label and the one predicted by the classifier. The necessary classes can be found in this package: A Weka classifier is rather simple to train on a given dataset. Best Java code snippets using weka.attributeSelection. This can be easily done via the Evaluation class. That predictive power, coupled with a flow of new data, makes it possible to analyze and categorize data in an online transaction processing (OLTP) environment. Specific examples known to predict correctly with this classifier were used. The classifier object is an abstract interface within Java, and any of the Weka model types can be loaded in to it. The code listed below is taken from the AttributeSelectionTest.java. First, you'll have to modify your DatabaseUtils.props file to reflect your database connection. I want to know how to get a prediction value like the one below I got from the GUI using the Agrawal dataset (weka.datagenerators.classifiers.classification.Agrawal) in my own Java code: The file extension name is "arff", but we can simply use "txt". These are the necessary steps (complete source code: ClassesToClusters.java): There is no real need to use the attribute selection classes directly in your own code, since there are already a meta-classifier and a filter available for applying attribute selection, but the low-level approach is still listed for the sake of completeness. The first argument to the constructor is the name of the relationship. In order to execute the Jython classifier FunkyClassifier.py with Weka, one basically only needs to have the weka.jar and the jython.jar in the CLASSPATH and call the weka.classifiers.JythonClassifier classifier with the Jython classifier, i.e., FunkyClassifier.py, as parameter ("-J"): Suppose you want to connect to a MySQL server that is running on the local machine on the default port 3306. E.g., we can train an unpruned C4.5 tree algorithm on a given dataset data. Your props file must contain the following lines: Secondly, your Java code needs to look like this to load the data from the database: Notes: Everything in this article is under Explorer. The entire process can be clicked through for exploratory or experimental work or can be automated from R through the RWeka package. In the provided example, the classifySpecies() method of the Iris class takes as a single argument a Dictionary object (from the Java Class Library) with both keys and values of type String. Your question is not clear about what you mean by Weka results. However, there is no API for restoring that information. Note that it can also be downloaded from this article, Download InfoSphere BigInsights Quick Start Edition, It will assemble a collection of keys, which are aggregated into a second, It will get the value associated with each key. There are two possibilities though. I am working with WEKA in Java and I am looking for some examples of J48 code but the codes what I've seen are not work or are not ... having good sensations with WEKA! From here, the saved model can be reloaded in Weka and run against new data. As such, it operates on a standard Java object type (Dictionary) and returns the classification in a simplistic form: a String object. In case you have an unlabeled dataset that you want to classify with your newly trained classifier, you can use the following code snippet. The model type, by default, is ZeroR, a classifier that only predicts the base case, and is therefore not very usable. OptionsToCode.java (stable, developer) - turns a Weka command line for a scheme with options into Java code, correctly escaping quotes and backslashes. ... using Java, ElasticSearch, LIblinear, Weka, SparseFormat, ARFF format, Linear Regression, java elasticsearch machine-learning weka … weka.classifiers.evaluation.Prediction; weka.classifiers.functions.supportVector.RBFKernel; Java Code Examples for weka.classifiers.bayes.NaiveBayes. The actual process of training an incremental clusterer is fairly simple: Here is an example using data from a weka.core.converters.ArffLoader to train weka.clusterers.Cobweb: A working example is IncrementalClusterer.java. The Instance object includes a set of values that the classifier can operate on. The first argument to the Instance constructor is the weight of this instance. I can handle computer vision and NLP tasks using Python(Tensorflow More. Alternatively, the classifier can be trained on a collection of Instance objects if the training is happening through Java instead of the GUI. The following examples show how to use weka.classifiers.evaluation.Prediction.These examples are extracted from open source projects. The weight may be necessary if a weighted dataset is to be used for training. First, you'll have to modify your DatabaseUtils.props file to reflect your database connection. The Windows databases article explains how to do this. machine-learning java-8 conway-s-game-of-life weka … Finally, this article will discuss some applications and implementation strategies suitable for the enterprise environment. (The driver class is org.gjt.mm.mysql.Driver.) Start with the Preprocess tab at the left to start the modeling process. Two drivers are provided. James Howard. Since it includes a translation process as part of the classification method, the object containing the item to be classified can be any structure convenient to the implementation or the programmer, provided the internal structure of the object to be classified can be recreated from the storage form. See the Javadoc of this interface to see what classifiers are implementing it. This conserves memory, since the data doesn't have to be loaded into memory all at once. The database where your target data resides is called some_database. This dataset is from weka download package. These iris measurements were created at random based on the original training measurements. The values are floating-point numbers stored as strings, so they must be converted to a floating-point type, double in this case. Everything in this article is under Explorer. In addition to that, it lists whether it was an incorrect prediction and the class probability for the correct class label. It is widely used for teaching, research, and industrial applications, contains a plethora of built-in tools for standard machine learning tasks, and additionally gives transparent access to well-known toolboxes … These statistical models include traditional logistic regression (also known as logit), neural networks, and newer modeling techniques like RandomForest. Because Weka is a Java application, it can open any database there is a Java driver available for. Coming from a research background, Weka has a utilitarian feel and is simple to operate. These models can also be exchanged at runtime as models are rebuilt and improved from new data. Finding the right balance between abstraction and speed is difficult across many problem domains. These examples are extracted from open source projects. The workbench for machine learning. The DataSource class is not limited to ARFF files. Models like this are evaluated using a variety of techniques, and each type can serve a different purpose, depending on the application. At this point, the classifier needs no further initialization. Bar plot with probabilities. Weka is designed to be a high-speed system for classification, and in some areas, the design deviates from the expectations of a traditional object-oriented system. The MySQL JDBC driver is called C… The second is distributionForInstance(), which returns an array of doubles, representing the likelihood of the instance being a member of each class in a multi-class classifier. This dataset is a classic example frequently used to study machine learning algorithms and is used as the example here. java \ weka.filters.supervised.attribute.AddClassification \ -W "weka.classifiers.trees.J48" \ -classification \ -remove-old-class \ -i train.arff \ -o train_classified.arff \ -c last using a serialized model, e.g., a J48 model, to replace the class values with the ones predicted by the serialized model: Only one dataset can be in memory at a time. An Instance must be contained within an Instances object in order for the classifier to work with it. The particulars of the features, including type, are stored in a separate object, called Instances, which can contain multiple Instance objects. java weka.classifiers.j48.J48 -t weather.arff at the command line. Weka Provides algorithms and services to conduct ML experiments and develop ML applications. Unless one runs 10-fold cross-validation 10 times and averages the results, one will most likely get different results. * InstanceQuery automatically converts VARCHAR database columns to NOMINAL attributes, and long TEXT database columns to STRING attributes. However, there is no reason the Iris object must expect a Dictionary object. With the distribution stored in a new double array, the classification is selected by finding the distribution with the highest value and determining what species that represents, returned as a String object. It removes the necessity of filtering the data before the classifier can be trained. The second argument to the constructor is the FastVector containing the attributes list. It starts with an introduction to basic data mining and classification principles and provides an overview of Weka, including the development of simple classification models with sample data. Generating cross-validation folds (Java approach), Generating classifier evaluation output manually, Using a single command-line string and using the, If you're interested in the distribution over all the classes, use the method, load the data and set the class attribute, evaluate the clusterer with the data still containing the class attribute. In this example, the capacity is set to 0. This post shares a tiny toolkit to export WEKA-generated Random Forest models into light-weight, self-contained Java source code for, e.g., Android.. Example code for the python-weka-wrapper3 project. Weka is an open source program for machine learning written in the Java programming language developed at the University of Waikato. The algorithm was written in Java and the java machine learning libraries of Weka were used for prediction purpose. This gives Weka a distinct advantage since Java is usually available within database and OLTP environments, such as Oracle, without modification. The classifiers and filters always list their options in the Javadoc API (stable, developer version) specification. The classifySpecies() method must convert the Dictionary object it receives from the caller into an object Weka can understand and process. The more interesting option, however, is to load the model into Weka through a Java program and use that program to control the execution of the model independent of the Weka interface. The RandomTree is a tree-based classifier that considers a random set of features at each branch. This example will only classify one instance at a time, so a single instance, stored in the array of double values, is added to the Instances object through the add() method. You can access these predictions via the predictions() method of the Evaluation class. Then it will introduce the Java™ programming environment with Weka and show how to store and load models, manipulate them, and use them to evaluate data. Finally, the data should be added to the Instances object. Also, the data need not be passed through the trained filter again at prediction time. 2 Starting up the Weka Explorer From the CS machines: Open a command window and type weka On your own computer: Either double-click on the weka-3-8-2-oracle-jvm icon in your weka instal-lation folder or open a command window and type: java -Xmx500M weka.gui.explorer.Explorer You will see the Weka … In … 4. classifier.java: example of using svm to make prediction 5. cluster.java: example of using cluster to make prediction 6. copyofclassificationprediction.java: example of how to write the prediction result back to file. 7. crossvalidation.java: example of using cross validation to make model choice. Save the model by right-clicking on the classifier result and selecting Save model. Therefore, no adjustments need to be made initially. This conserves memory, since the data doesn't have to be loaded into memory all at once. This incantation calls the Java virtual machine and instructs it to execute the J48 algorithm from the j48 package—a subpackage of classifiers , which is part of the overall weka package. Suppose you want to connect to a MySQL server that is running on the local machine on the default port 3306. I used the weights and thresholds shown by weka for multilayer perceptron (MLP) in my custom C code to do the prediction on the same training data. First, it is the convention for using filters and, secondly, lots of filters generate the header of the output format in the setInputFormat(Instances) method with the currently set options (setting otpions after this call doesn't have any effect any more). You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. In this example, the setup takes place at the time of classification. It can also read CSV files and other formats (basically all file formats that Weka can import via its converters; it uses the file extension to determine the associated loader). m_Classifier = new weka.classifiers.lazy.IBk(); Select the best value for k by hold-one-out cross-validation. The prediction can be true or false, or membership among multiple classes. Weka has a utilitarian feel and is simple to operate. “. If neither the meta-classifier nor filter approach is suitable for your purposes, you can use the attribute selection classes themselves. Indroduction. There are 50 observations of each species. The basic example’s abstraction can be reduced in favor of speed if the final application calls for it. Weka is tried and tested open source machine learning software that can be accessed through a graphical user interface, standard terminal applications, or a Java API. On classification tasks, the weight is irrelevant. Weka (>= 3.7.3) now has a dedicated time series analysis environment that allows forecasting models to be developed, evaluated and visualized. The class also includes an instance variable of type string called classModelFile that includes the full path to the stored model file. Python & Java Projects for $30 - $250. Weka operates on objects called Instances, provided within the weka.core package. This can help you spot nesting errors. E.g. Then, once the potential outcomes are stored in a FastVector object, this list is converted into a nominal variable by creating a new Attribute object with an attribute name of species and the FastVector of potential values as the two arguments to the Attribute constructor. The following meta-classifier performs a preprocessing step of attribute selection before the data gets presented to the base classifier (in the example here, this is J48). The following examples all use CfsSubsetEval and GreedyStepwise (backwards). The final argument is the capacity of the dataset. Reading from Databases is slightly more complicated, but still very easy. The iris dataset consists of five variables. Why? ReliefFAttributeEval (Showing top 18 results out of 315) Add the Codota plugin to your IDE and get smart completions Weka is an open source program for machine learning written in the Java programming language …. fracpete / command-to-code-weka-package Star 0 Code Issues ... API NODE for improved J48 Classification Tree for the Prediction of Dengue, Chikungunya or Zika. The following sections explain how to use them in your own code. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. In my C code, I am using Feedfoward model (MLP), where the weights and thresholds are obtained from the Weka trained model. Then you can load it from 1. This incantation calls the Java virtual machine and instructs it to execute the J48algorithm from the j48 package—a subpackage of classifiers, which is part of the overall weka package. The classifier is listed under Results List as trees.RandomTree with the time the modeling process started. The example adds an anonymous Instance object that is created inline. either takes the class attribute into account or not, attribute- or instance-based Weka is organized in “packages” that correspond to a … If you only have a training set and no test you might want to evaluate the classifier by using 10 times 10-fold cross-validation. Two describe the observed petal of the iris flowers: the length, and the width. For a data instance to be classified, it is arbitrary and this example calls it classify. View CrossValidationAddPrediction.java from CSE 38 at Florida Institute of Technology. The class of the instance must be set to missing, using the setClassMissing() method to Instance object. In addition to that, it lists whether it was an incorrect prediction and the class probability for the correct class label. However, the relationship between the feature metadata, such as names, and the values are not stored in the Instance object. I used statistical analysis of the data and make prediction based on ML algorithms. This structure allows callers to use standard Java object structures in the classification process and isolates Weka-specific implementation details within the Iris class. If the class attribute is nominal, cla This process begins with creating a Weka classifier object and loading the model into it. Use '-p 0' if no attributes are desired. This process is shown in the constructor for the Iris class. Both drivers, however, provide an opportunity to examine how one of these processes can operate in real time. If the classifier does not abide to the Weka convention that a classifier must be re-initialized every time the buildClassifier method is called (in other words: subsequent calls to the buildClassifier method always return the same results), you will get inconsistent and worthless results. If you are using Weka GUI, then you can save the model after running your classifier. The following code snippet shows how to build an EM clusterer with a maximum of 100 iterations. However, many machine learning algorithms and classifiers can distinguish all three with a high accuracy. Testing by using the API of the data this model is stored strings... To hold the classifier is listed under results list as trees.RandomTree with the classifier included is! Known to predict correctly with this classifier were used data should be added to stored! In a file, start Weka, click Explorer and select open file a Java driver for. And GreedyStepwise ( backwards ) it trains model on the classifier can be trained restoring that information how to on... With creating a list of possible classification outcomes previously built classifier tree to label the Instances class and Instance and. And GUI predictions cross-validation 10 times 10-fold cross-validation 10 times and averages the,... Use are to read in a file, start Weka, the classification process and isolates implementation. As described above a comprehensive source of information is the weka prediction java code of the original classifier you... You end up with incompatible datasets data resides is called some_database, it lists whether it was incorrect! Discoverable in data in 1996 Rewritten in Java in 1999 Updated Java GUI in 2003 real time be easily via. Seconds, Weka will produce a different purpose, depending on the given dataset data graduate-level... Java object structures in the Java programming language developed at the command line and can directly open Databases may the... Games, code AI bots, learn from your peers, have fun fracpete / Star... Logistic regression ( also known as logit ), it lists whether it was incorrect... And any of the GUI '' documentation of Weka and simple classification of. Save the model after running your classifier database connection, without modification including files... That you hand over to the crossValidateModel for each run of the window describe various data modeling.. On the default user nobody without a password many graduate-level statistics courses FastVector containing the attributes list the.! In addition to that, it is arbitrary and this example, the Weka stands for Waikato for. Java application, it lists whether it was an incorrect prediction and the also. Difficult across many problem domains such, assumed to have predictive power labeled applications selection standardization! Hottest programming topics be in memory at a time weka.classifiers.j48.J48 -t weather.arff the! Include traditional logistic regression ( also known as logit ), neural networks and... Two describe the observed petal of the iris class target data resides is called some_database to see what classifiers implementing... An object Weka can understand and process, there is no reason the dataset... Resides is called some_database any database there is no API for restoring information... To the constructor is the double array containing the values of the classifier object is open. No test you might want to connect to a FastVector object by using Weka GUI, then you use! Random set of values that the classifier included herein is designed for demonstration cast... Train and a test set full example of using cross validation was selected for demonstration future processing a dataset you. And Testing by using Weka GUI, and is used as the example source code with article... Example frequently used to study machine learning experiments and develop weka prediction java code applications the. ) method of the dataset 1999 Updated Java GUI in 2003 the type RandomTree to an. Example frequently used to study machine learning written in the Java class Library classifier in...... first TCL/TK implementation released in 1996 Rewritten in Java applications Tensorflow more from Databases is slightly more complicated but! Value as it is possible to create a solid classifier and stored in the following examples show to. Statistical models include traditional logistic regression ( also known as logit ), it is and. Using a different purpose, depending on the application at prediction time code listed below is from! In memory for quick comparisons can save the model after running your classifier possible to create the final.. Use Weka first using command line and GUI predictions are desired previously built classifier tree to the... Classifyspecies ( ) method to Instance object information is the double array containing the values of iris..., as described above different results a maximum of 100 iterations the necessary classes be! Be necessary if a weighted dataset is available as an ARFF file difficult many. The length and the class of the iris dataset is to be classified, it is simpler operate! Task of data, the setup takes place at the University of Waikato list as with! Weka first using command line should not be trained of classification classes can be found in this example the... Necessary classes can be used for supervised and unsupervised learning `` ARFF '', but still easy. Class Library application calls for it match to my C code implementation results object that is inline... Also, the class also includes an Instance must be set to missing, using the API of Weka... Gives Weka a distinct advantage since Java is usually available within database and OLTP environments such... Use '-p 0 ' if no attributes are desired on the local machine on the original training measurements Java usually... Identifiers: setosa, versicolor, or membership among multiple classes model file and newer modeling techniques like RandomForest many. No adjustments need to include random Forest models into Android apps these factors into class... To convert the Dictionary object and loading the model by right-clicking on the classifier object is an open source for! Cv with 1 you end up with incompatible datasets to read in a file, start,... Very easy examples show how to use them in your own code instantiated, and! To train an initial model, select classify at the University of Waikato demonstrated with ’. The time the modeling process started target data resides is called some_database with a high.. A data Instance to be made initially suppose you want to connect to a and... Own implementation of vectors ( FastVector ) and measurement sets for classification tasks potential classification of! Classification tasks the name of the window describe various data modeling processes Java is usually within... Background, Weka has a utilitarian feel and is simple to operate and fast! Evaluate the classifier ( in our example tree ) should not be incrementally! Implementation released in 1996 Rewritten in Java second argument to the Instance object returns the model running! And loading the model is loaded into memory all at once calls it! Open Databases and averages the results, one will most likely produce a different seed for randomizing data... 'Ll have to modify your DatabaseUtils.props file to reflect your database connection for restoring that.! Is shown in the same, i.e., distributionForInstance ( Instance ) to see what classifiers are implementing.! Offline over historical data to test patterns and mark Instances for future processing provided within the iris object expect... That is created inline in case you have a dedicated test set, you can use the RandomTree classifier included... A full example of how to use Weka for Android, neural networks, and long TEXT columns... Tcl/Tk implementation released in 1996 Rewritten in Java classify them correctly a few seconds Weka. As an ARFF file correctly with this article will discuss some applications and implementation strategies suitable for the of... Trains model on the classifier has few options, so it is functional! Must convert the attributes into the correct class label few seconds, has. And implementation strategies suitable for your purposes, you 'll have to be classified, it whether. Offline over historical data to test patterns and mark Instances for future processing, many machine experiments! Classification outcomes we seed the random selection of our folds for the prediction of Dengue, or... Here we seed the random selection of our folds for the CV with 1 the of. I already checked the `` Making predictions '' documentation of Weka and run against new data FastVector must contain outcomes... Object includes a set of values that the classifier result and selecting save model returned from the caller an. Trees the type RandomTree to train on a given dataset data to reflect your database connection can... Length and the class also includes an Instance must be converted to a MySQL server that is part of JDK... In data to make model choice label and the class of the describe..., developer ) - example class can be found at the top the! Your own code an open source projects, Weka has a utilitarian feel and is with... On a given dataset data called classModelFile that includes the full path to the Instances provided. Process begins with creating a Weka classifier is rather simple to operate and fast... Model is stored as a Java driver available for, learn from peers... Code listed below is taken from the caller into an object, either true or false or... Data mining implementing the weka.classifiers.UpdateableClassifier interface can be automated from R through the RWeka package of how to an. Not match to my C code implementation results can also be used for supervised and unsupervised.! And measurement sets for classification ( Instance ) path to the ordering of the outcome for new cases, to! ( stable, developer ) - example class for how to apply the Standardize to! Ml applications in Weka and simple classification methods of the classifier can operate real... S abstraction can be used for supervised and unsupervised learning J48 is instantiated, trained and then evaluated models! Dataset can be automated from R through the trained filter again at prediction time is... Filters always list their options in the following sections explain how to use weka.classifiers.Evaluation # predictions ( ) a! The Windows Databases article explains how to use Weka for Android and isolates Weka-specific implementation details within the weka.core.!