The SHOGUN machine learning toolbox

Unified and efficient Machine Learning since 1999.


Shogun is implemented in C++ and offers automatically generated, unified interfaces to Python, Octave, Java / Scala, Ruby, C#, R, Lua. We are currently working on adding more languages including JavaScript, D, and Matlab.

Interface Status
Python mature (no known problems)
Octave mature (no known problems)
Java/Scala stable (no known problems)
Ruby stable (no known problems)
C# stable (no known problems)
R beta (most examples work, static calls unavailable)
Perl pre-alpha (work in progress quality)
JS pre-alpha (work in progress quality)

See our website for examples in all languages.


Shogun is supported under GNU/Linux, MacOSX, FreeBSD, and Windows.

Directory Contents

The following directories are found in the source distribution. Note that some folders are submodules that can be checked out with git submodule update --init.

  • src – source code, separated into C++ source and interfaces
  • doc – readmes (doc/readme, submodule), Jupyter notebooks, cookbook (API examples), licenses
  • examples – example files for all interfaces
  • data – data sets (submodule, required for examples)
  • tests – unit tests and continuous integration of interface examples
  • applications – applications of SHOGUN (outdated)
  • benchmarks – speed benchmarks
  • cmake – cmake build scripts