New releases of WEKA: 3.8.4 and 3.9.4

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

New releases of WEKA: 3.8.4 and 3.9.4

Eibe Frank-2
Hi all,

We have made new releases of WEKA 3.8 (stable branch) and WEKA 3.9 (main development trunk). The new releases are WEKA 3.8.4 and 3.9.4 respectively. (At this point, there is virtually no difference between these two releases, but major changes may occur in the development branch in the future.)

The most significant change in these new releases is that we now bundle Zulu's version of OpenJDK 11 with the Windows and Mac installers of WEKA, and WEKA will now be run with this Zulu JVM. More significantly, the JVM will be installed in the folder that contains WEKA and will be independent of any other JVM that may be installed on the system.

Another novelty is a dedicated distribution for Linux, which also includes the same Zulu JVM in a sub folder. The .zip files holding the new Linux distributions of WEKA 3.8.4/3.9.4 contain a script with the name that starts WEKA using the Zulu JVM. In this way, there is a consistent way to run WEKA across all three major platforms: Windows, macOS, and Linux.

There are currently two packages that cannot be used with these new platform-specific distributions of WEKA: the tigerJython package and the Auto-WEKA package. The reason for this is that they currently cannot be run with a Java 11 JVM.

The primary motivation for switching to a Java 11 JVM for running WEKA was to enable proper use of WEKA on high-density displays under Windows. Java 8 on Windows does not support proper scaling of graphical user interfaces on high-density displays.

Note that the minimum version of Java required to run WEKA remains Java 8. Hence, it is possible to use tigerJython and Auto-WEKA by executing weka.jar with a Java 8 JVM that has been installed elsewhere on a system. There also continue to be platform-independent generic .zip files that only include WEKA and do not include a JVM.

Here is a partial list of changes to the actual WEKA Java code in the new releases (in no particular order):

* Many small changes to the code for the graphical user interfaces to enable memory to be released when windows such as the Explorer window are closed.

* M5P and M5Rules now honour the number of decimal places specified by the user, in the output.

* PreprocessPanel class/color combo box now respects changes in the class attribute that might occur due to the application of a filter.

* The relation name in generated data is now set correctly when a data generator is invoked multiple times with different parameters.

* The batch data generation in the KnowledgeFlow has been fixed.

* The pop-up menus in the KnowledgeFlow GUI now look reasonable on high-density displays.

* The meta classifiers CostSensitiveClassifier, MultiClassClassifier, Vote, and ClassificationByDiscretization now implement the WeightedInstanceHandler interface.

* In the Explorer, it is now possible to turn off collection of predictions for computing performance statistics such as AUROC (under More Options...). This can help to conserve memory when working with classification datasets that have both many instances and many classes (because the evaluation module will no longer store the class probability distribution for each instance that is used as a test instance). Also, it is now also clearer from the text for the corresponding tick box under More options... and the corresponding method names that storing of predictions for visualisation of errors will also store the entire dataset as well.

* The ClassifierPerformanceEvaluator in the KnowledgeFlow now has options to turn on/off output of entropy metrics, confusion matrix, per-class stats and collection of test data/predictions for visualization to reduce memory consumption.

* Improvements to the runtime of the calculation of performance statistics in WEKA's evaluation module when there are many class values in a classification problem. Runtime should now be quadratic in the number of classes. Previously, it was cubic.

* In the AttributePanel, right-clicking while holding down the control key will now set the Y axis (useful for Mac users with one button mice).

* Introduced WekaFileChooser, a derivative of JFileChooser with an accessory panel enabling bookmarks; ConverterFileChooser is based on WekaFileChooser now as well.

* Improved performance of logging output on Windows. Cleaned up logging output.

* New RandomSample class with static utility methods for fast sampling of indices in a given range.

* RandomSubset filter now makes use of the new RandomSample methods and works correctly with string and relational attributes. Note that RandomSubset no longer places the class attribute at the end.

* Changes to IterativeClassifier and implementations to allow them to continue iterating after finishing the user-specified number of iterations. This functionality is available in the Explorer and command-line interface so far.

* Stacking now makes efficient batch predictions if the meta classifier or any of the base classifiers are able to generate batch predictions efficiently and all of them implement BatchPredictor.

* When the user attempts to close a window such as the Explorer window, WEKA now pops up a dialog to confirm that it should proceed.

* Bug fix: when evaluating on a separate test set, class priors were not initialised on the training data when evaluation on the training data was turned off or printing of margins was turned on.

* Bug fixes: Several schemes required improvements to option handling because getOptions() and setOptions() are now used in the Explorer when copies of a configured classifier are made. Implemented a fall back in the GenericObjectEditor when setOptions() throws an exception when an object’s configuration is copied into another object: in that case, the old strategy of standard serialisation is used. This means the J48graft configuration process, for example, will not crash when improper confidence values are used. Also, for symmetry, the setValue() method in the GenericObjectEditor now makes an independent copy of the incoming object based on the same process as getValue().

* Bug fix: in GUI of MultiLayerPerceptron, size of NodePanel is now set appropriately so that vertical scroll bar works correctly. Also turned on horizontal scrollbar.

* Bug fix: model saving in the Evaluation module now uses an absolute path. It appears that rJava in the RPlugin package is changing the current/working directory setting.

* Bug fix: LinearNNSearch nearest neighbour search failed when skipping of identical instances was turned on and the data only contained identical instances.

* Bug fix: the getPluginMetrics() method needed to be synchronised in case it gets called in multiple threads (e.g., in GridSearch or MultiSearch).

* Bug fix: CartesianProduct filter should now work correctly with string and relational attributes.

* Bug fix for data with string or relational attributes: The SerializedModelSaver in the KnowledgeFlow and the ClustererPanel in the Explorer incorrectly saved string attribute values and relational attribute values with the model, creating unnecessarily large files. They now use stringFreeStructure() to generate the header (empty Instances object) that is saved with the model.

* Bug fix: the InputMappedClassifier now supports string and relational attributes as well.

* Bug fix: array of ignored attributes (if present) was not being honored by ClusterEvaluation and AddCluster when loading a serialized clusterer.

* Bug fix: fixed an issue in the KnowledgeFlow related to concurrency when the Classifier step is connected to more than one downstream step via batchClassifier connections.

* Bug fix in the RemoveType filter: using -V created a problem when the class attribute was set and the class attribute was of the same type as the type given by -T.

* Bug fix: InterquartileRange filter was broken when -M or -P flag were set and only a subset of attributes was selected.

For more details on changes that occurred in the WEKA code, check the CHANGELOG.

In other news, the WEKA web site also has a new design:

And the page for accessing downloads has moved to

but forwarding is in place.

Happy holidays (if you have any)!


Wekalist mailing list -- [hidden email]
Send posts to: To unsubscribe send an email to [hidden email]
To subscribe, unsubscribe, etc., visit
List etiquette: