An open API service indexing awesome lists of open source software.

https://github.com/theogf/bayesiansvm

Source code of the Bayesian SVM described in the paper by Wenzel et al. "Bayesian Nonlinear Support Vector Machines for Big Data"
https://github.com/theogf/bayesiansvm

bayesian-inference bsvm julia svm

Last synced: over 1 year ago
JSON representation

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

Awesome Lists containing this project

README

          

# !!!DISCLAIMER!!! #
## A better and more recent Julia implementation exists now at : [AugmentedGaussianProcesses.jl](https://github.com/theogf/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][arxiv]

### 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 :
- [Distributions][dist]
- [PyPlot][pyplot]
- [StatsBase][statsbase]
- [GaussianMixtures][gaussm]
- [Clustering][clustering]
- [ScikitLearn][scikitjl]

*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):
* (Julia)[PyCall][pycall]
* (Python)[ScikitLearn][scikit]
* (Python)[Tensorflow][tflow]
* (Python)[GPflow][gpflow]

*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**

[arxiv]:
[dist]:
[pyplot]:
[pycall]:
[statsbase]:
[gaussm]:
[clustering]:
[scikitjl]:
[scikit]:
[tflow]:
[gpflow]: