Utilizing multi-core processor for classification in WEKA
Currently, WEKA is one of the most favorites machine learning tools. Without programming skills, you can do severe classification, clustering, and extensive data analysis. For some time, I’ve been using its standard GUI features without thinking much about performance bottlenecks. But since research are becoming more complex by using ensemble, voting, and other meta-algorithms that generally are based on multiple classifiers running simultaneously, the performance issues start becoming annoying. You need to wait for hours until the task is completed. The problem is that when running classification algorithms from the WEKA GUI, they utilize a single core of your processor. Such algorithms as Multi-layer Perceptron running 10-fold cross-validation is calculating one cross-fold at the time on one core, taking a long time to accomplish: So I started looking for options to make it use all cores of the processor as separate threads for each operation fold. There are a couple of options available to do so. One is to use WekaServer package, and another is remote host processing. This time we will focus on WekaServer solution. The idea is to start a WEKA server as a distributed execution environment. When starting the server, you can indicate how many cores you…