A Brief History and the Benefits of Shogun, the ML Library for Everyone


Shogun is an open source machine learning software library built in C++. It offers a wide range of efficient and unified machine learning algorithms. The heart of Shogun lies in kernel machines such as support vector machines for regression and classification problems. Read on to understand more about this library.

Shogun offers a full implementation of Hidden Markov models. Its core is written in C++ and it offers interfaces for MATLAB, Octave, Python, R, Java, Lua, Ruby and C#. Today, there is a large and active user community all over the world that uses Shogun as a base for education and research, and also contributes to the core package.

Shogun was developed in 1999 by Soeren Sonnenburg and Gunnar Raetsch. The inventive focus was on large-scale kernel methods and bioinformatics. Since then, it has continuously been used for scientific research and has expanded massively. In early 2017, Shogun joined NumFocus.

Presently, Shogun is developed by a diverse team of students, scientists and professionals. None of their work would have been possible, however, without the patches and bug reports given by various contributors.

Machine learning is powerful. Since the last two decades, machine learning (ML) has emerged from an unconventional academic field to changing the way we live. Its methods impact society and its tools have a billion-dollar influence on the global economy. Shogun developers want to make sure that the primary algorithms are user-friendly and accessible. They want users like scientists, data enthusiasts, journalists, students, non-profit organisations and companies, as well as common citizens to be able to use ML tools at no cost.

The Shogun ML toolkit encourages this expedition through its features (accessible, open source and good, which will be explained later) and a pivot on ML education and development. Shogun is one of the largest and oldest open source ML platforms.

Given below are some features of Shogun which make it unique.

Accessible: Shogun is not limited to any single language; you can use the toolkit through a unified interface (SWIG) from C++, Python, Octave, R, Java, Lua, C#, Ruby, etc. Thus Shogun is independent of trends in computing languages and importantly, this allows us to use it as a vehicle to expose one’s algorithms to multiple communities. Shogun runs natively under Linux/UNIX, MacOS and Windows.

Anybody can attempt and learn Shogun with minimal effort, simply by connecting to a Jupyter Notebook (an open source Web application that allows us to create and share documents that contain live code, equations or other things). Users can run Shogun in the cloud. It also offers this service for free through external donations.

Shogun does not reinvent anything, but provides bindings to other sophisticated libraries like Tapkee, SLEP, GPML, LibSVM/LibLinear, SVMLight, LibOCAS, libqp, VowpalWabbit, and more.

Free (open source): Shogun is community-based and non-commercial. It is currently released under the GPLv3. It is also moving towards BSD compatibility with optional GPL (General Public License) parts. This means companies can use the code without having to turn their code-base to GPL.

Benefits of using Shogun
Shogun offers well-organised implementation of all standard ML algorithms. Its executions are competitive as measured by the MLPack benchmarking framework. Shogun offers complete modern/advance algorithms (like efficient SVM implementations, multiple kernel learning, etc). All of these are assisted by a collection of general-purpose methods for pre-processing, serialisation, I/O, evaluation and parameter tuning. Shogun has a substantial testing infrastructure, making it dependable in dozens of OS setups.

Reasons for using Shogun
Shogun is a community learning platform in every sense — anyone can use the toolbox to learn about ML and apply it to solve problems. Many scientists use Shogun as a tool for their research, and it is cited many hundred times on Google Scholar. The Shogun cloud is being used for educational purposes in several universities and workshops (e.g., University College London: ‘Introduction to Machine Learning’). Shogun values its contributors highly, and aims to foster and develop them. It has counselled 33 Google Summer of Code student projects since 2011 (and counting). Many of its students have taken the skills they gained to industries and organisations, and have really done well for themselves and their companies.

Installing Shogun on Ubuntu
We are using a Debian/Ubuntu operating system to install Shogun. Both currently contain the C++ library and Python bindings. Add this to your system as follows:

sudo add-apt-repository ppa:shogun-toolbox/stable
sudo apt-get update

Then, install as:

sudo apt-get install libshogun18

The Python (2) bindings can be installed using:

sudo apt-get install python-shogun

This article gives a brief idea of Shogun, its history, features and reasons to use it. Anyone interested to learn more can visit the official site at https://www.shogun-toolbox.org/.


Please enter your comment!
Please enter your name here