Feb. 17, 2014 - Soeren Sonnenburg -



SHOGUN Release version 3.2.0 (libshogun 16.0, data 0.8, parameter 1)
This release also contains several cleanups and bugfixes:

  • Features:
    • Fully support python3 now
    • Add mini-batch k-means [Parijat Mazumdar]
    • Add k-means++ [Parijat Mazumdar]
    • Add sub-sequence string kernel [lambday]
  • Bugfixes:
    • Compile fixes for upcoming swig3.0
    • Speedup for gaussian process' apply()
    • Improve unit / integration test checks
    • libbmrm uninitialized memory reads
    • libocas uninitialized memory reads
    • Octave 3.8 compile fixes [Orion Poplawski]
    • Fix java modular compile error [Bjoern Esser]
  • Cleanup and API Changes:
    • None


Jan. 6, 2014 - Soeren Sonnenburg -



SHOGUN Release version 3.1.1 (libshogun 15.1, data 0.7, parameter 1)
This is a bugfix release:

  • Bugfixes:
    • Fix compile error occurring with CXX0X
    • Bump data version to required version


Jan. 5, 2014 - Soeren Sonnenburg - sonne@debian.org>



SHOGUN Release version 3.1.0 (libshogun 15.0, data 0.7, parameter 1)
This release also contains several cleanups and bugfixes:

  • Features:
    • Add option to set k-means cluster centers [Parijat Mazumdar]
    • Add leave one out crossvalidation scheme [Saurabh Mahindre]
    • Add multiclass ipython notebook tutorials [Chiyuan Zhang]
    • Add learning of StreamingSparseFeatures in OnlineLibLinear [Thoralf Klein]
  • Bugfixes:
    • Decrease memory footprint of SGObject
    • Fix protobuf detection
    • Fix doxygen files and various doxygen errors
    • Fix compile error with directors
    • Fix memory leak in modular interfaces and apply*()
    • Fix leak in KNN::store_model_features
    • Notebook fixes
    • Allow custom kernel matrices of size 2^31-1 x 2^31-1 [Koen van de Sande]
    • Fix Protobuf cmake detection
    • Fix LabelsFactory methods' object ownership in SWIG interfaces with the %newobject directive.
  • Cleanup and API Changes:
    • Introduce slim SGRefObject for refcounted objects as base class of SGObject [Thoralf Klein]


Oct. 28, 2013 - Soeren Sonnenburg - sonne@debian.org>



SHOGUN Release version 3.0.0 (libshogun 14.0, data 0.6, parameter 1)
This release features 8 successful Google Summer of Code projects and it is the result of an incredible effort by our students. All projects come with very cool ipython-notebooks that contain background, code examples and visualizations. These can be found on our webpage!

    The projects are:
  • Gaussian Processes for binary classification [Roman Votjakov]
  • Sampling log-determinants for large sparse matrices [Soumyajit De]
  • Metric Learning via LMNN [Fernando Iglesias]
  • Independent Component Analysis (ICA) [Kevin Hughes]
  • Hashing Feature Framework [Evangelos Anagnostopoulos]
  • Structured Output Learning [Hu Shell]
  • A web-demo framework [Liu Zhengyang] Other important changes are the change of our build-system to cmake and the addition of clone/equals methods to our base-class. In addition, you get the usual ton of bugfixes, new unit-tests, and new mini-features.
  • Features:
    • In addition, the following features have been added:
    • Added method to importance sample the (true) marginal likelihood of a Gaussian Process using a posterior approximation.
    • Added a new class for classical probability distribution that can be sampled and whose log-pdf can be evaluated. Added the multivariate Gaussian with various numerical flavours.
    • Cross-validation framework works now with Gaussian Processes
    • Added nu-SVR for LibSVR class
    • Modelselection is now supported for parameters of sub-kernels of combined kernels in the MKL context. Thanks to Evangelos Anagnostopoulos
    • Probability output for multi-class SVMs is now supported using various heuristics. Thanks to Shell Xu Hu.
    • Added an "equals" method to all Shogun objects that recursively compares all registered parameters with those of another instance -- up to a specified accuracy.
    • Added a "clone" method to all Shogun objects that creates a deep copy
    • Multiclass LDA. Thanks to Kevin Hughes.
    • Added a new datatype, complex128_t, for complex numbers. Math functions, support for SGVector/Matrix, SGSparseVector/Matrix, and serialization with Ascii and Xml files added. [Soumyajit De].
    • Added mini-framework for numerical integration in one variable. Implemented Gauss-Kronrod and Gauss-Hermite quadrature formulas.
    • Changed from configure script to CMake by Viktor Gal.
    • Add C++0x and C++11 cmake detection scripts
    • ND-Array typmap support for python and octave modular.
  • Bugfixes:
    • Fix json serialization.
    • Fixed bugs in FITC inference method that caused wrong posterior results.
    • Fixed bugs in GP Regression that caused negative values for the variances.
    • Fixed two memory errors in the streaming-features framework.
    • Fixed bug in the Kernel Mean Matching implementation (thanks to Meghana Kshirsagar).
  • Cleanup and API Changes:
    • Switch compile system to cmake
    • SGSparseVector/Matrix are now derived from SGReferenceData and thus refcounted.
    • Move README and INSTALL files to top level directory.
    • Use common RefCount class for ReferencedData and CSGObjects.
    • Rename HMSVMLabels to SequenceLabels
    • Refactored method to fit a sigmoid to SVM scores, now in CStatistics, still called from CBinaryLabels.
    • Use Dynamic arrays to hold preprocessors in features instead of raw pointers.
    • Use Dynamic arrays to hold Features in CombinedFeatures.
    • Use Dynamic arrays to hold Kernels in CombinedKernels/ProductKernels.
    • Use Eigen3 for GPs, LDA


March 17, 2013 - Soeren Sonnenburg - sonne@debian.org>



SHOGUN Release version 2.1.0 (libshogun 13.0, data 0.5, parameter 1)
This release also contains several enhancements, cleanups and bugfixes:

  • Features:
    • Linear Time MMD two-sample test now works on streaming-features, which allows to perform tests on infinite amounts of data. A block size may be specified for fast processing. The below features were also added. By Heiko Strathmann.
    • It is now possible to ask streaming features to produce an instance of streamed features that are stored in memory and returned as a CFeatures* object of corresponding type. See CStreamingFeatures::get_streamed_features().
    • New concept of artificial data generator classes: Based on streaming features. First implemented instances are CMeanShiftDataGenerator and CGaussianBlobsDataGenerator. Use above new concepts to get non-streaming data if desired.
    • Accelerated projected gradient multiclass logistic regression classifier by Sergey Lisitsyn.
    • New CCSOSVM based structured output solver by Viktor Gal
    • A collection of kernel selection methods for MMD-based kernel two- sample tests, including optimal kernel choice for single and combined kernels for the linear time MMD. This finishes the kernel MMD framework and also comes with new, more illustrative examples and tests. By Heiko Strathmann.
    • Alpha version of Perl modular interface developed by Christian Montanari.
    • New framework for unit-tests based on googletest and googlemock by Viktor Gal. A (growing) number of unit-tests from now on ensures basic funcionality of our framework. Since the examples do not have to take this role anymore, they should become more ilustrative in the future.
    • Changed the core of dimension reduction algorithms to the Tapkee library.
  • Bugfixes:
    • Fix for shallow copy of gaussian kernel by Matt Aasted.
    • Fixed a bug when using StringFeatures along with kernel machines in cross-validation which cause an assertion error. Thanks to Eric (yoo)!
    • Fix for 3-class case training of MulticlassLibSVM reported by Arya Iranmehr that was suggested by Oksana Bayda.
    • Fix for wrong Spectrum mismatch RBF construction in static interfaces reported by Nona Kermani.
    • Fix for wrong include in SGMatrix causing build fail on Mac OS X (thanks to @bianjiang).
    • Fixed a bug that caused kernel machines to return non-sense when using custom kernel matrices with subsets attached to them.
    • Fix for parameter dictionary creationg causing dereferencing null pointers with gaussian processes parameter selection.
    • Fixed a bug in exact GP regression that caused wrong results.
    • Fixed a bug in exact GP regression that produced memory errors/crashes.
    • Fix for a bug with static interfaces causing all outputs to be
    • 1/+1 instead of real scores (reported by Kamikawa Masahisa).
  • Cleanup and API Changes:
    • SGStringList is now based on SGReferencedData.
    • "confidences" in context of CLabel and subclasses are now "values".
    • CLinearTimeMMD constructor changes, only streaming features allowed.
    • CDataGenerator will soon be removed and replaced by new streaming- based classes.
    • SGVector, SGMatrix, SGSparseVector, SGSparseVector, SGSparseMatrix refactoring: Now contains load/save routines, relevant functions from CMath, and implementations went to .cpp file.


Sept. 1, 2012 - Soeren Sonnenburg - sonne@debian.org



SHOGUN Release version 2.0.0 (libshogun 12.0, data 0.4, parameter 1)
This release also contains several enhancements, cleanups and bugfixes:

  • Features:
    • This release contains first release of Efficient Dimensionality Reduction Toolkit (EDRT).
    • Support for new SWIG -builtin python interface feature (SWIG 2.0.4 is required now).
    • EDRT algorithms are now available using static interfaces such as matlab and octave.
    • Jensen-Shannon kernel and Homogeneous kernel map preprocessor (thanks to Viktor Gal).
    • New 'multiclass' module for multiclass classification algorithms, generic linear and kernel multiclass machines, multiclass LibLinear and OCAS wrappers, new rejection schemes concept by Sergey Lisitsyn.
    • Various multitask learning algorithms including L1/Lq multitask group lasso logistic regression and least squares regression, L1/L2 multitask tree guided group lasso logistic regression and least squares regression, trace norm regularized multitask logistic regression, clustered multitask logistic regression and L1/L2 multitask group logistic regression by Sergey Lisitsyn.
    • Group and tree-guided logistic regression for binary and multiclass problems by Sergey Lisitsyn.
    • Mahalanobis distance, QDA, Stochastic Proximity Embedding, generic OvO multiclass machine and CoverTree and KNN integation (thanks to Fernando J. Iglesias Garcia).
    • Structured output learning framework by Fernando J. Iglesias Garcia.
    • Hidden markov support vector machine structured output model by Fernando J. Iglesias Garcia.
    • Implementations of three Bundle method for risk minimization (BMRM) variants by Michal Uricar.
    • Latent SVM framework and latent detector example by Viktor Gal.
    • Gaussian processes framework for parameters selection and gaussian processes regression estimation framework by Jacob Walker.
    • New graphical python modular examples.
    • Standard Cross-Validation splitting for regression problems by Heiko Strathmann
    • New data-locking concept by Heiko Strathmann which allows to tell machines that data is not going to change during training/testing until unlocked. KernelMachines now make use of that by not recomputing kernel matrix in cross-validation.
    • Cross-validation for KernelMachines is now parallelized.
    • Cross-validation is now possible with custom kernels.
    • Features may now have arbritarily many index subsets (of subsets (of subsets (...))).
    • Various clustering measures, Least Angle Regression and new multiclass strategies concept (thanks to Chiyuan Zhang).
    • A bunch of multiclass learning algorithms including the ShareBoost algorithm, ECOC framework, conditional probability tree, balanced conditional probability tree, random conditional probability tree and relaxed tree by Chiyuan Zhang.
    • Python Sparse matrix typemap for octave modular interface (thanks to Evgeniy Andreev).
    • Newton SVM port (thanks to Harshit Syal).
    • Some progress on native windows compilation using cmake and mingw-w64 (thanks to Josh aka jklontz).
    • CMake compilation improvements (thanks to Eric aka yoo).
  • Bugfixes:
    • Fix for bug in the Gaussian Naive Bayes classifier, its domain was changed to log-space.
    • Fix for R_static interface installation (thanks Steve Lianoglou).
    • SVMOcas memsetting and max_train_time bugfix.
    • Various fixes for compile errors with clang.
    • Stratified-cross-validation now used different indices for each run.
  • Cleanup and API Changes:
    • Various code cleanups by Evan Shelhamer
    • Parameter migration framework by Heiko Strathmann. From now on, changes in the shogun objects will not break loading old serialized files anymore


Dec. 1, 2011 - Soeren Sonnenburg - sonne@debian.org



SHOGUN Release version 1.1.0 (libshogun 11.0, data 0.3, parameter 0)
This release contains several enhancements, cleanups and bugfixes:

  • Features:
    • New dimensionality reduction algorithms: Diffusion Maps, Kernel Locally Linear Embedding, Kernel Local Tangent Space Alignment, Linear Local Tangent Space Alignment, Neighborhood Preserving embedding, Locality Preserving Projections.
    • Various performance improvements for dimensionality reduction methods (BLAS, alignment formulation of the LLE, ..)
    • Automatical k determination mode for Locally Linear Embedding dimension reduction method based on reconstruction error.
    • ARPACK and SUPERLU integration.
    • Introduce the concept of Converters that can embed (arbitrary) feature types into different feature types.
    • LibSVM is now pthread-parallelized.
    • Create modshogun.dll for csharp.
    • Various new c# examples (thanks Daniel Korn and Ori Cohen).
    • Dimensionality reduction examples application is introduced
  • Bugfixes:
    • Octave_static and octave_modular examples fix.
    • Memory leak in custom kernel is now eliminated (thanks Madeleine Seeland for reporting).
    • Fix for linear machine set_w method (thanks Brian Cheung for reporting).
    • DotFeatures fix for assert bug.
    • FibonacciHeap memory leak fix.
    • Fix for Java modular interface typemapping bug.
    • Fix errors uncovered by LLVM / clang++.
    • Fix for configure on Darwin-x86_64 (thanks Peter Romov for patch).
    • Improve lua / ruby detection.
    • Fix configure / compilation under osx and cygwin for variuos interfaces.
  • Cleanup and API Changes:
    • Most of the inline functions have been (re)moved to the corresponding .cpp file
    • Libshogun is now being compiled with sse support for math (if available) but interfaces are now being compiled with -O0 key which drastically reduces compilation time


Aug. 31, 2011 - Soeren Sonnenburg - sonne@debian.org



SHOGUN Release version 1.0.0 (libshogun 10.0, data 0.2, parameter 0)
This release contains major enhancements, cleanups and bugfixes:

  • Features:
    • Support for new languages: java, c#, ruby, lua in modular interfaces (GSoC project of Baozeng Ding)
    • Port all examples to the new languages: Ruby examples with example transition tool (thanks to Justin Patera aka serialhex)
    • Dimensionality reduction (manifold learning) algorithms are now available. In particular: Locally Linear Embedding (LLE), Hessian Locally Linear Embedding (HLLE), Local Tangent Space Alignment (LTSA), Kernel PCA (kPCA), Multidimensional Scaling (MDS, with possible landmark approximation), Isomap (using Fibonacci Heap Dijkstra for shortest paths), Laplacian Eigenmaps (GSoC project of Sergey Lisitsyn)
    • Various new kernels: TStudentKernel, CircularKernel, WaveKernel, SplineKernel, LogKernel, RationalQuadraticKernel, WaveletKernel, BesselKernel, PowerKernel, ExponentialKernel, CauchyKernel, ANOVAKernel, MultiquadricKernel, SphericalKernel, DistantSegmentsKernel (thanks GSoC students for the contributions!)
    • Streaming / Online Feature Framework for SimpleFeatures, SparseFeatures, StringFeatures (GSoC project of Shashwat Lal Das)
    • SGD-QN, Online SGD, Online Liblinear, Online Vowpal Vabit (GSoC project of Shashwat Lal Das)
    • Model selection framework for arbitrary Machines (GSoC project of Heiko Strathmann)
    • Gaussian Mixture Models (GSoC project of Alesis Novik)
    • FibonacciHeap for efficient shortest-path problem solving (thanks to Evgeniy Andreev)
    • Efficient HashSet (thanks to Evgeniy Andreev)
    • ARPACK wrapper (dseupd) for symmetric eigenproblems (both generalized and non-generalized), some new LAPACK wrappers (Sergey Lisitsyn)
    • New Statistics module for various statistics measures (Heiko Strathmann)
    • Subset support to features (Heiko Strathmann)
    • Java externalization support (Sergey Lisitsyn)
    • Support matlab 2011a.
  • Bugfixes:
    • Fix build failure with ld --as-needed (thanks Matthias Klose for the patch).
    • Fix initialization error in KRR static interfaces (thanks Maxwell Collins for the patch).
  • Cleanup and API Changes:
    • Introduce Machine, KernelMachine, LinearMachine, LinearOnlineMachine, DistanceMachine with train() and apply() functions and drop Classifier.
    • Restructure source code layout: Merge libshogunui and libshogun into src/shogun and move all interfaces into src/shogun. Split up lib into lib, io and mathematics.
    • Create a single 'modshogun' module resembling the functionality found in libshogun. Now octave_modular and other modular interfaces work reliably.
    • Introduce SGVector, SGMatrix, SGNDArray, SGStringList for transfering object-pointers and meta-data from/to shogun.
    • Classes no longer store copies of e.g. matrices, and just pass pointers on set/get operations.
    • Stop using new[] / delete[] and switch to SG_MALLOC, SG_CALLOC, SG_REALLOC, SG_FREE macros.
    • Preproc renamed to preprocessor, PCACut renamed to PCA


Dec. 7, 2010 - Soeren Sonnenburg - sonne@debian.org



SHOGUN Release version 0.10.0 (libshogun 9.0, data 0.1, parameter 0.0)
This release contains several enhancements, cleanups and bugfixes:

  • Features:
    • Serialization of objects deriving from CSGObject, i.e. all shogun objects (SVM, Kernel, Features, Preprocessors, ...) as ASCII, JSON, XML and HDF5
    • Create SVMLightOneClass
    • Add CustomDistance in analogy to custom kernel
    • Add HistogramIntersectionKernel (thanks Koen van de Sande for the patch)
    • Matlab 2010a support
    • SpectrumMismatchRBFKernel modular support (thanks Rob Patro for the patch)
    • Add ZeroMeanCenterKernelNormalizer (thanks Gorden Jemwa for the patch)
    • Swig 2.0 support
  • Bugfixes:
    • Custom Kernels can now be > 4G (thanks Koen van de Sande for the patch)
    • Set C locale on startup in init_shogun to prevent incompatiblies with ascii floats and fprintf
    • Compile fix when reference counting is disabled
    • Fix set_position_weights for wd kernel (reported by Dave duVerle)
    • Fix set_wd_weights for wd kernel.
    • Fix crasher in SVMOcas (reported by Yaroslav)
  • Cleanup and API Changes:
    • Renamed SVM_light/SVR_light to SVMLight etc.
    • Remove C prefix in front of non-serializable class names
    • Drop CSimpleKernel and introduce CDotKernel as its base class. This way all dot-product based kernels can be applied on top of DotFeatures and only a single implementation for such kernels is needed.


May 31, 2010 - Soeren Sonnenburg - sonne@debian.org



SHOGUN Release version 0.9.3 (libshogun 8.0, data 0.0, parameter 0.0)
This release contains several enhancements, cleanups and bugfixes:

  • Features:
    • Experimental lp-norm MCMKL
    • New Kernels: SpectrumRBFKernelRBF, SpectrumMismatchRBFKernel, WeightedDegreeRBFKernel
    • WDK kernel supports amino acids
    • String Features now support append operations (and creation of
    • python-dbg support
    • Allow floats as input for custom kernel (and matrices > 4GB in size)
  • Bugfixes:
    • Static linking fix.
    • Fix sparse linear kernel's add_to_normal
  • Cleanup and API Changes:
    • Remove init() function in Performance Measures
    • Adjust .so suffix for python and use python distutils to figure out install paths


March 31, 2010 - Soeren Sonnenburg - sonne@debian.org



SHOGUN Release version 0.9.2 (libshogun 7.0, data 0.0, parameter 0.0)
This release contains several enhancements, cleanups and bugfixes:

  • Features:
    • Direct reading and writing of ASCII/Binary files/HDF5 based files.
    • Implemented multi task kernel normalizer.
    • Implement SNP kernel.
    • Implement time limit for libsvm/libsvr.
    • Integrate Elastic Net MKL (thanks Ryoata Tomioka for the patch).
    • Implement Hashed WD Features.
    • Implement Hashed Sparse Poly Features.
    • Integrate liblinear 1.51
    • LibSVM can now be trained with bias disabled.
    • Add functions to set/get global and local io/parallel/... objects.
  • Bugfixes:
    • Fix set_w() for linear classifiers.
    • Static Octave, Python, Cmdline and Modular Python interfaces Compile cleanly under Windows/Cygwin again.
    • In static interfaces testing could fail when not directly done after training.
  • Cleanup and API Changes:
    • None


Nov. 16, 2009 - Soeren Sonnenburg - sonne@debian.org



SHOGUN Release version 0.9.1 (libshogun 6.0, data 0.0, parameter 0.0)
This release contains several enhancements, cleanups and bugfixes:

  • Features:
    • Integrate LaRank.
    • Memory Mapped Features (for data sets that don't fit into memory).
    • Compressor module with compression and decompression support for lzo, gzip, bzip2 and lzma.
    • Compressed String Features with on-the-fly decompression (CDecompressString preproc).
    • Parallel computation of get_kernel_matrix().
    • One may now prefix all shogun print/outputs with file name and line number (obj.io.enable_file_and_line())
    • Chinese Documentation thanks Elpmis Lee.
  • Bugfixes:
    • Fix One class MKL testing in static interfaces.
    • Configure fixes: Let octave not write history on configure; fail when cplex is forcefully enabled but not found; add cplex 12 support.
    • Fix a problem with regression and CombinedKernels employing only Custom kernels.
  • Cleanup and API Changes:
    • String Features now (like SimpleFeatures) upon get_feature_vector require an additional do_free argument and need to be freed using free_feature_vector.


Oct. 23, 2009 - Soeren Sonnenburg - sonne@debian.org



SHOGUN Release version 0.9.0 (libshogun 5.0, data 0.0, parameter 0.0)
This release contains several cleanups and enhancements:

  • Features:
    • Implement set_linear_classifier for static interfaces.
    • Implement Polynomial DotFeatures.
    • Implement domain adaptation SVM.
    • Speed up ScatterSVM.
    • Initial implementation for saving and Loading of shogun objects.
    • Examples have been polished/split up into separate files.
    • Documentation and webpage improvements.
  • Bugfixes:
    • Fix one class MKL for static interfaces.
    • Fix performance measures integer overflow.
    • Configure fixes to run under OSX's snow leopard.
    • Compiles and runs under solaris both using suncc and gcc.
  • Cleanup and API Changes:
    • It is no longer necessary to call init_kernel TRAIN/TEST.
    • Removed kernel {load,save}_init.
    • Removed preproc {load,save}_init.
    • Move the mkl code from classifier/svm to classifier/mkl.
    • Removed obsolete mindy support.
    • Rename MCSVM to ScatterSVM
    • Move distributions to distributions/ directory.
    • CClassifier::classify() no longer has a label as argument.
    • Introduce CClassifier::train(CFeatures* ) and classify(CFeatures*) for more effective training/testing.
    • Remove unnecessary global symbols.


Aug. 16, 2009 - Soeren Sonnenburg - sonne@debian.org



SHOGUN Release version 0.8.0 (libshogun 4.0, data 0.0, parameter 0.0)
This release contains several cleanups, features and bugfixes:

  • Features:
    • Implements new multiclass svm formulation.
    • 1,2 and general q-norm MKL for classification, regression and one-class for wrapper and chunking algorithm for arbitrary (dual) SVM solvers.
    • Dynamic Programming code is now accessible from python.
    • Implements Regulatory Modules kernel.
    • Documentation updates (Tutorial, improved installation instructions, overview about the implemented algorithms).
  • Bugfixes:
    • Correct q-norm MKL for Newton.
    • Upon make install of elwms don't install files into R/octave/python if these interfaces were not configured
    • Svm-nu parameter was not set correctly.
    • Fix custom kernel initialization.
    • Correct get_subkernel_weights.
    • Proper Intel core2 compile flags detection
    • Fix number of outputs for KNN.
    • Run tests with proper LD_LIBRARY_PATH set.
    • Fix several memory leaks.
  • Cleanup and API Changes:
    • Rename svm_one_class_nu to svm_nu.
    • Clean up dynamic programming code.
    • Remove commands from_position_list and slide_window and move functionallity into set/add_features,
    • Remove now obsolete legacy examples.


May 2, 2009 - Soeren Sonnenburg - sonne@debian.org



SHOGUN Release version 0.7.3 (libshogun 3.0, data 0.0, parameter 0.0)
This release contains several bugfixes:

  • Features:
    • Improve libshogun/developer tutorial.
    • Implement convenience function for parallel quicksort.
    • Fasta/fastq file loading for StringFeatures.
  • Bugfixes:
    • get_name function was undefined in Evaluation causing the PerformanceMeasures class to be defunct.
    • Workaround bugs in the std template library for math functions.
    • Compiles cleanly under OSX now, thanks to James Kyle.
  • Cleanup and API Changes:
    • Make sure that all destructors are declared virtual.


March 23, 2009 - Soeren Sonnenburg - sonne@debian.org



SHOGUN Release version 0.7.2 (libshogun 2.0, data 0.0, parameter 0.0)
This release contains several cleanups and enhancements:

  • Features:
    • Support all data types from python_modular: dense, scipy-sparse csc_sparse matrices and strings of type bool, char, (u)int{8,16,32,64}, float{32,64,96}. In addition, individual vectors/strings can now be obtained and even changed. See examples/python_modular/features_*.py for examples.
    • AUC maximization now works with arbitrary kernel SVMs.
    • Documentation updates, many examples have been polished.
    • Slightly speedup Oligo kernel.
  • Bugfixes:
    • Fix reading strings from directory (f.load_from_directory()).
    • Update copyright to 2009.
  • Cleanup and API Changes:
    • Remove {Char,Short,Word,Int,Real}Features and only ever use the templated SimpleFeatures.
    • Split up examples in examples/python_modular to separate files.
    • Now use s.set_features(strs) instead of s.set_string_features(strs) to set string features.
    • The meaning of the width parameter for the Oligo Kernel changed, the OligoKernel has been renamed to OligoStringKernel.


March 8, 2009 - Soeren Sonnenburg - debian@nn7.de



SHOGUN Release version 0.7.1 (libshogun 1.0, data 0.0, parameter 0.0)
This release contains several cleanups and bugfixes:

  • Features:
    • configure now detects libshogun/ui installed in /usr/(local/)lib if libshogun/ui dirs are removed.
    • Improved documentation (and path and doxygen fixes).
    • Tutorial on how to develop with libshogun and to extend shogun.
    • Added the elwms (eilergendewollmilchsau) interface that is a chimera that in one file interfaces to python,octave,r,matlab and provides the run_{octave,python,r} command to run code in {octave,python,r} from within octave,r,matlab,python transparently making variables available to the target interface avoiding file i/o.
    • Implement AttributeFeatures for (attr,value) pairs, trees etc.
  • Bugfixes:
    • fix a crasher occurring with combined kernel and multiple threads.
    • configure now allows building of modular interfaces only.
    • n-dimensional arrays work now in octave.
  • Cleanup and API Changes:
    • Custom Kernel no longer requires features nor initialization, even not when used in CombinedKernel (the combined kernel will skip over custom kernels on init).


Feb. 20, 2009 - Soeren Sonnenburg - debian@nn7.de



SHOGUN Release version 0.7.0 (libshogun 0.0, data 0.0, parameter 0.0)
This release contains major feature enhancements and bugfixes:

  • Features:
    • Implement DotFeatures and CombinedDotFeatures. DotFeatures need to provide dot-product and similar operations (hence the name). This enables training of linear methods with mixed datatypes (sparse and dense and other even the newly implemented string based SpecFeatures and WDFeatures).
    • MKL now does not require CPLEX any longer.
    • Add q-norm MKL support based on internal Newton implementation.
    • Add 1-norm MKL support based on GLPK.
    • Add multiclass MKL support based on the GLPK and the GMNP svm solver.
    • Implement Tensor Product Pair Kernel (TPPK).
    • Support compilation on the iPhone :)
    • Add an option to set wds kernel position weights.
    • Build static libshogun.a for libshogun target.
    • Testsuite can also test the modular R interface, added test for OligoKernel.
    • Ocas and WDOcas can be used with a bias feature now.
    • Update to LibSVM 2.88.
    • Enable parallelized HMM code by default.
  • Cleanup and API Changes:
    • Shogun has been split up into libshogun and the static and modular interfaces linking to it.
    • Static interfaces now do proper reference counting.
    • Remove SparseLinearClassifier: LinearClassifier is a drop-in replacement.
    • WDOcas and SVMOcas now have the bias term enabled by default.
  • Bugfixes:
    • Fix regression for COMM* kernels (normalization argument was ignored).
    • Use C99 variadic macros, instead of gcc's own variant.
    • Disable lp_solve, it is not required as we are using GLPK now.
    • Fix HMM training.


Nov. 25, 2008 - Soeren Sonnenburg - debian@nn7.de



SHOGUN Release version 0.6.7 (libshogun 0.0, data 0.0, parameter 0.0)
This release contains major feature enhancements and bugfixes:

  • Cleanup:
    • Replace ambigous self-defined data types for char/int/float etc. by 'standardized' types.
    • Method classify() in WDSVMOcas now has a default value for its argument.
    • Removed a few stderr debug outputs.
  • Features:
    • Testsuite now covers subSVMs in MultiClassSVMs, static interfaces now support commands GET_NUM_SVMS and GET_SVM for MultiClassSVMs.
  • Bugfixes:
    • Fix for contigous arrays/vectors in interface for Python modular.
    • Fixed improper assignment of labels in constructor of WDSVMOcas leading to segfaults on destruction in (python) modular interface.
    • Fixed a segfault opportunity in MultiClassSVM


Oct. 11, 2008 - Soeren Sonnenburg - debian@nn7.de



SHOGUN Release version 0.6.6 (libshogun 0.0, data 0.0, parameter 0.0)

  • Bugfixes:
    • Include missing file regression/Regression.h.
    • Fix formula in CosineDistance.


Oct. 10, 2008 - Soeren Sonnenburg - debian@nn7.de



SHOGUN Release version 0.6.7 (libshogun 0.0, data 0.0, parameter 0.0)
This release contains several cleanups and bugfixes:

  • Implement KernelNormalizer class with a couple of normalization functions that can now be attached to almost any kernel via set_normalizer() in the modular and set_kernel_normalization in the static interfaces. This fixes a long standing bug in the WeightedDegreePositionStringKernel normalization WARNING will break compatibility to all previously trained WD-shift kernel models, use FIRSTELEMENT / CFirstElementKernelNormalizer for an *approximation* to the previous buggy behaviour. Also breaks WordMatchKernel as for this kernel normalization is now enabled by default.
  • The custom kernel no longer requires lhs/rhs features (it will create its own dummy features)
  • Linear kernels don't use kernel cache (only slows down things)
  • Integrate the Oligo string-kernel (from Meinecke et.al 2004)
  • Remove use_precompute hack from SVMLight.
  • Add precompute_kernels function to turn kernels appended to a combined kernel into CustomKernels (i.e. precomputed ones).
  • Add distances BrayCurtis, ChiSquare, Cosine and Tanimoto.
  • Bugfixes:
    • Support Intel MKL on 32bit archs.
    • Fix compilation when atlas/lapack is not available.


Aug. 15, 2008 - Soeren Sonnenburg - debian@nn7.de



SHOGUN Release version 0.6.4 (libshogun 0.0, data 0.0, parameter 0.0)
This release contains major feature enhancements and bugfixes:

  • Implement 2-norm Multiple Kernel Learning.
  • Much extended documentation.
  • Add Gaussian kernel for 32bit floating point features.
  • Testsuite is now available for static interfaces python, octave, matlab and R and modular interface octave.
  • Bugfixes:
    • Tests are now run in the examples/interface directory, with paths set to the installation directory.
    • Filter out duplicate signals in signal handler and make sure the handler is removed.
    • Fix random number generator initialization.


June 13, 2008 - Soeren Sonnenburg - debian@nn7.de



SHOGUN Release version 0.6.3 (libshogun 0.0, data 0.0, parameter 0.0)
This release contains several cleanups and bugfixes:

  • Fail nicely in out of memory situations.
  • Drop R package, now configure; make; make install will work for all interfaces.
  • Disable progress output by default. Ocas now uses a progress bar and hence is less verbose.
  • Revised directory structure with /doc, /examples, /src, /testsuite.
  • Add common toy data repository and make all examples from all interfaces use it.
  • Add examples for cmdline interface.
  • Dynamically generate a reference documentation for the static interfaces.
  • Syntax highlight commands again.
  • Support for cplex 11.
  • Port MKL examples to R.
  • Merge structure learning branch.
  • Bugfixes:
    • Don't render string if it is not printed in current loglevel anyway and throw exceptions for messages with priority ERROR or higher.
    • Compile fix when lapack is not available.
    • Fix when only lapack and blas (but not atlas) are available.
    • Fix bug in batch/linadd occurring for WD kernel of order 1.
    • Check that strings have same length on initing WD kernels.
    • Remove signal handler on Ctrl+C to fix Ctrl+C pressed twice bug.
    • All derived classes now call their parent class on construction.
    • Fix a crasher occuring with SVRLight on multiple threads.


May 15, 2008 - Soeren Sonnenburg - debian@nn7.de



SHOGUN Release version 0.6.2 (libshogun 0.0, data 0.0, parameter 0.0)

  • Experimental support for r-modular thanks to the swig team!
  • All python-modular examples describing the use of kernels, classifier, distributions, features, distances, regression and preprocessors have been ported to r-modular (requires swig from svn).
  • The 'send_command' legacy is no longer necessary, numbers can be used as such and don't have to be given as strings. All examples for r,python,octave,matlab have been converted to the new syntax.
  • Resurrected the command line interface. Basic functionionality, like training a classifier on strings/real valued (sparse) features was restored. Readline completion was added.
  • Documentation updates.
    • Bugfixes:
      • The weighted spectrum kernel is now working again.
      • Fix the testsuite to reliably check methods that use random().
      • Off-by-one bug fix in FixedDegreeStringKernel.
      • Fix reading strings from file, when strings don't have the same length.
      • Fix massive slowdown in modular interfaces for WD based kernels (it is 5-30 times faster now).


    April 19, 2008 - Soeren Sonnenburg - debian@nn7.de



    SHOGUN Release version 0.6.1 (libshogun 0.0, data 0.0, parameter 0.0)

  • Now fully support octave-modular thanks to the swig team!
  • All python-modular examples describing the use of kernels, classifier, distributions, features, distances, regression and preprocessors have been ported to octave-modular.
  • Minor documentation updates.
  • Unconditionally disable swig director. This reduces wrapper code size and compile time and also speeds up calls to virtual functions *a lot*. Expect big speed improvements if you were using the python-modular interface.
    • Bugfixes:
      • Include missing files in documentation.
      • The 'send_command' legacy is no longer necessary.
      • Improved cmdline help, categorized in topic sg('help', 'topic')


    April 12, 2008 - Soeren Sonnenburg - debian@nn7.de



    SHOGUN Release version 0.6.0 (libshogun 0.0, data 0.0, parameter 0.0)
    This release contains several major enhancements:

    • The static R,octave,matlab,python interfaces have been rewritten from scratch simplifying future extensions. They now use the same syntax and support the same set of shogun commands.
    • Toy examples describing the use of kernels, classifier, distributions, features, distances, regression and preprocessors for the static python, R, octave and matlab interface have been added.
    • Improved user documentation
    • Support for ACML and Intel MKL
    • New methods:
      • POIMs for python-modular interface
    • Bugfixes:
      • Fixed memory leaks in Classifiers, Kernels, Distributions
      • Fixed severale delete[]/free mismatches
      • Fixed reading and writing of svm light format
      • Enable ctrl-c support in octave


    Feb. 19, 2008 - Soeren Sonnenburg - debian@nn7.de



    SHOGUN Release version 0.5.1 (libshogun 0.0, data 0.0, parameter 0.0)
    This release contains minor bugfixes

    • Allow building w/o doxygen
    • Code cleanups
    • Support newer lapack/atlas/blas
    • New methods:
      • Added several performance measures
      • SVMSGD
      • Efficient reading/writing of svmlight format


    Jan. 31, 2008 - Soeren Sonnenburg - debian@nn7.de



    SHOGUN Release version 0.5.0 (libshogun 0.0, data 0.0, parameter 0.0)
    This release contains several major enhancements:

    • Full fledged test suite for python-modular interface
    • Toy examples describing the use of kernels, classifier, distributions, features, distances, regression and preprocessors for the python-modular interface
    • Doxygen generated documentation for python-modular interface
    • Many cleanups to make python-modular interface more consistent
    • New methods:
      • WDSVMOcas
      • Update liblinear to version 1.22
    • Bugfixes:
      • StringFeatures may now directly read DNA strings from a single file
      • Option to quieten progress output
      • Several memory leaks and valgrind errors
      • Fixed rarely ocurring convergence problem in OCAS
      • Division by zero in Chi2Kernel
      • WD kernel now dynamically allocates Tries
      • Matlab clear sg ; sg crasher
      • Salzberg/HistogramWordkernel crasher
      • Fix build dependency generation using gcc -MM
    • Switched license to GPL v3


    Nov. 23, 2007 - Soeren Sonnenburg - debian@nn7.de



    SHOGUN Release version 0.4.4 (libshogun 0.0, data 0.0, parameter 0.0)
    This release contains:

    • Memory leak fix in libsvm wrapper
    • Enable error checking in matlab interface
    • Free memory after batch computation
    • Parallel (num_threads>1) bug occurring with batch computation
    • Several python-modular interface cleanups
    • Fix for Chi2 kernel
    • Use gcc now to generate build dependencies
    • Test for existance of log2 (enables building on interix)
    • Python build fix
    • Double free fix for combined kernel (python modular interface)
    • New methods: SVMOcas, GaussianShiftKernel


    Oct. 10, 2007 - Soeren Sonnenburg - debian@nn7.de



    SHOGUN Release version 0.4.3 (libshogun 0.0, data 0.0, parameter 0.0)
    This release contains minor bugfixes for the

    • weighted spectrum kernel and poims


    Sept. 1, 2007 - Soeren Sonnenburg - debian@nn7.de



    SHOGUN Release version 0.4.1 (libshogun 0.0, data 0.0, parameter 0.0)
    This release contains minor bugfixes and improvements:

    • Fixes for:
      • SVMLin
      • python examples
      • R examples
      • cplex 10 compatibility fixes
      • compilation fix when configured with --disable-svm-light
      • sliding window/position list fixes
    • New methods
      • Liblinear
      • Local Alignment Kernel
      • support for transfering StringFeatures of type word to matlab
      • python modular support for custom kernel


    March 6, 2007 - Soeren Sonnenburg - debian@nn7.de



    SHOGUN Release version 0.3.2 (libshogun 0.0, data 0.0, parameter 0.0)

    • new methods:
      • SubgradientSVM
      • GMNPSVM (multiclass b-SVM)
      • SubgradientLPM
      • CplexLPM
      • LPBoost (for LPM)
      • SVMLin
      • weighted spectrum kernel
    • linadd support for GPDTSVM
      • new commands new_classifier / train_classifier / get_classifier
        • support for sparse features (from matlab)
          • cleaned and added many more examples
            • removed suffixarray code due to license conflicts
              • Matlab R2007a support
                • all string kernels now work on strings (not charfeatures)


                Feb. 20, 2007 - Soeren Sonnenburg - debian@nn7.de



                SHOGUN Release version 0.3.1 (libshogun 0.0, data 0.0, parameter 0.0)

                • update README
                  • fix autodetection of powl() and _SC_NPROCESSORS_ONLN


                  Feb. 14, 2007 - Soeren Sonnenburg - debian@nn7.de



                  SHOGUN Release version 0.3.0 (libshogun 0.0, data 0.0, parameter 0.0)


                  Feb. 13, 2007 - Soeren Sonnenburg - debian@nn7.de

                  SHOGUN Release version 0.0.0 (libshogun 0.0, data 0.0, parameter 0.0)

                  • added vojtechs SVM
                    • finished (regularized) LDA
                      • conservational weights in WD kernel
                        • added mikios kernel ridge regression (KRR)
                          • many fixes in python swig interface
                            • build fixes for archs that don't have powl()
                              • much improved build system
                                • updated coding conventions (though still in a flux)
                                  • enable warnings for shadowed variables
                                    • lots of build fixe


                                    Dec. 5, 2006 - Soeren Sonnenburg - debian@nn7.de



                                    SHOGUN Release version 0.2.1 (libshogun 0.0, data 0.0, parameter 0.0)


                                    Oct. 9, 2006 - Soeren Sonnenburg - Soeren.Sonnenburg@first.fraunhofer.de

                                    SHOGUN Release version 0.0.0 (libshogun 0.0, data 0.0, parameter 0.0)

                                    • swig python interface (works w/ multiple svms etc etc)


                                    Sept. 11, 2006 - Soeren Sonnenburg - Soeren.Sonnenburg@first.fraunhofer.de

                                    SHOGUN Release version 0.0.0 (libshogun 0.0, data 0.0, parameter 0.0)

                                    • incorporated MINDY support
                                      • new alphabet class, all string features now have a defined alphabet plus mapping function
                                        • RAW (i.e. 8bit) alphabet added
                                          • fixes for CommStringUlongKernel (was buggy when strings have different lengths)
                                            • new get_WD_scoring function
                                              • compile fixes for octave and matlab on osx
                                                • configure now scans a number of variants to detect include and library paths
                                                  • configure obeys INCLUDES LIBS environment variables and optional paths specified by --libraries --includes
                                                    • updated copyright infos
                                                      • updated license infos


                                                      June 30, 2006 - Soeren Sonnenburg - Soeren.Sonnenburg@first.fraunhofer.de



                                                      SHOGUN Release version 0.1.2 (libshogun 0.0, data 0.0, parameter 0.0)

                                                      • compile fixes for R on MaxOSX
                                                        • some compile fixes for cygwin/WIN32
                                                          • Weighted Degree/Weighted Degree Shift kernel speedups and fixes
                                                            • python build fixes
                                                              • initial *workin* swig support
                                                                • entropy example


                                                                June 15, 2006 - Soeren Sonnenburg - Soeren.Sonnenburg@first.fraunhofer.de



                                                                SHOGUN Release version 0.1-pre1 (libshogun 0.0, data 0.0, parameter 0.0)

                                                                • New version


                                                              • What's New

                                                                Feb. 17, 2014 -> SHOGUN 3.2.0
                                                                Jan. 6, 2014 -> SHOGUN 3.1.1
                                                                Jan. 5, 2014 -> SHOGUN 3.1.0
                                                                Oct. 28, 2013 -> SHOGUN 3.0.0
                                                                March 17, 2013 -> SHOGUN 2.1.0
                                                                Sept. 1, 2012 -> SHOGUN 2.0.0
                                                                Dec. 1, 2011 -> SHOGUN 1.1.0