BayesianSVM icon indicating copy to clipboard operation
BayesianSVM copied to clipboard

Source code of the Bayesian SVM described in the paper by Wenzel et al. "Bayesian Nonlinear Support Vector Machines for Big Data"

!!!DISCLAIMER!!!

A better and more recent Julia implementation exists now at : AugmentedGaussianProcesses.jl , this repository only contains an older version of the algorithm as well the experiments presented in our paper, it is relying on an outdated version of Julia

README

Objective

  • This repository contains the updated source code for the Bayesian Nonlinear Support Vector Machine (BSVM) both in its stochastic (and with inducing points) and its batch version
  • It relates to the paper published at the conference track of ECML 17' "Bayesian Nonlinear Support Vector Machines for Big Data" by Florian Wenzel, Théo Galy-Fajou, Matthäus Deutsch and Marius Kloft. Paper is available at https://arxiv.org/abs/1707.05532

How do I install the package?

  • First clone this repository (git clone https://github.com/theogf/BayesianSVM.git)

  • If you simply want to try out the package you need to install the Julia dependencies :

    Note: to install new packages use the Pkg.add("ModuleName") function in Julia

  • If you want to try the competitors as well you will need to install these Julia and Python dependencies (as well as Python ofc):

    Note: to use Tensorflow and GPflow, they must me included in the search path of PyCall, to do this use : unshift!(PyVector(pyimport("sys")["path"]), "path_to_add") and call Pkg.build("PyCall"), also note that they are much more complicate to install

  • Both tests and source files are written in Julia (v0.5), one first needs to julia to run those, however a Python or Matlab user should be able to read easily through the code as the syntax is quite similar

  • Some light datasets are included (especially the Rätsch Benchmark dataset), the SUSY dataset can be found on UCI

How to run tests?

  • Go to the "test" folder, open "run_test.jl", chose the dataset and change the parameters (more is explained in the file) and simply run the file. (for example change the type of BSVM (linear/nonlinear, sparse, use of stochasticity etc)
  • If you want to also use the competitors, open "paper_experiments.jl", chose the dataset, chose the methods you want to test and adapt the parameters (more details in the file).
  • For more custom usage of the BSVM method, look at the source code of src/BSVM.jl, where all the options are explained. More documentation will be there soon.

Who to contact

For any queries please contact theo.galyfajou at gmail.com