Weka Debian packages

Users installing Weka on Linux must have always felt left out a bit, with no installer available, instead having to deal with just a ZIP file. For power users, that would not have mattered, but users new to Linux may have found that a bit more challenging.

Well, things have changed - at least for users of Debian or one of its many derivatives like Ubuntu - with the advent of snapshots being available for download as Debian packages (stable 3.8 and developer version).

Read more…

Jupyter notebooks

Jupyter notebooks are extremely popular in the Python world, simply because it is great to combine documentation and code in a visually appealing way. Makes it an ideal tool for teaching!

A recent post on the MOA blog, demonstrated the IJava kernel for executing Java scripts. The kernel relies on the Java JDK 9+ feature called JShell, which allows executing Java code without compiling it first.

Rather than using mybinder.org, I was intrigued how easy it would be to run it on ones local machine. As it turns out, extremely easy!

Read more…

Bookmarks support

One long-standing annoyance in Weka's user interface was the opening and saving of files: you needed to click many times before you reached your destination. The only thing you were able to modify, for example for the Explorer, was the initial directory a file chooser was using (Explorer.props).

However, your datasets are usually distributed, especially when you are working on many projects, which renders a single starting directory ineffective, unfortunately.

Read more…

Micro averages in multi-class classification

When evaluating multi-class classification models, Weka outputs a weighted average of the per-class precision, recall, and F-measure: it computes these statistics for each class individually, treating the corresponding class as the "positive" class and the union of the other classes as the negative class, and computes a weighted average of these per-class statistics, with a per-class weight that is equal to the proportion of data in that class. A recent question on the Weka mailing list was whether the software also outputs micro-averaged precision, recall, and F-measure for multi-class problems. It turns out that it does! To find out where these can be found, read on.

Read more…

Making a Weka classifier

One role of the Weka software is to provide users with the opportunity to implement machine learning algorithms without having to deal with data import and evaluation issues: when a classifier has been written as a Java class that implements a couple of standard methods defined in the Weka framework, all the goodies that come with Weka are automatically applicable to it, and it will automatically show up in Weka's graphical user interfaces. To see what needs to be done, read on!

Read more…

Weka-Kt: Kotlin Extensions for Weka

Weka-Kt: Kotlin Extensions for Weka

Kotlin Extensions for Weka

Kotlin is a statically typed programming language for modern multiplatform applications running on the Java Virtual Machine. Its design philosophy is to be a concise and type-safe (e.g. support for non-nullable types) programming language. It supports both object-oriented and functional constructs. Other features include smart casting, operator overloading, higher-order functions, lambdas, and extensions. The latter has led to the formation of a group of Kotlin extension libraries that primarily focuses on the syntactic improvement of other libraries' usages. A key example is Android KTX library, developed by Google, which provides extensions for the Android framework. The purpose of this is to make Android development with Kotlin more concise, pleasant and idiomatic.

Read more…