New WekaDeeplearning4j Release - CNN explorer, saliency maps, progress manager, and model summaries
A new version of WekaDeeplearning4j, version 1.7.0, is available!
A new version of WekaDeeplearning4j, version 1.7.0, is available!
A new version of WekaDeeplearning4j, version 1.6.0, has just been released and brings with it a bunch of exciting new features.
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).
In the previous post, I quickly described how to set up Jupyter Notebooks to run Java code. Now I want to explain how to set things up on Windows using Anaconda. Of course, you have to have a Java 9 JDK or later installed on your system, as the JDK's JShell feature is required to execute the Java code on the fly.
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!
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.
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.
A frequent question of Weka users is how to implement oversampling or undersampling, which are two common strategies for dealing with imbalanced classes in classification problems. This post provides some explanation.
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!
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.