Code for Fast and Scalable Implementation of the Bayesian SVM WenzelFlorian Galy-FajouThéo DeutschMatthäus KloftMarius 2017 <div>This dataset contains the Julia code package for the Bayesian SVM algorithm described in the ECML PKDD 2017 paper; Wenzel et al.: Bayesian Nonlinear Support Vector Machines for Big Data.</div><div><br></div><div><p>Files are provided in .jl format; containing Julia language code: a high-performance dynamic programming language for numerical computing. These files can be accessed by openly available text edit software. To run the code please see the description below or the more detailed <a href="https://github.com/theogf/BayesianSVM.jl/wiki/Bayesian-Support-Vector-Machine-Documentation#welcome-to-the-bayesiansvmjl-wiki">wiki</a> </p></div><div><b><br></b></div><div><div><b>BSVM.jl</b> - contains the module to run the Bayesian SVM algorithm.</div><div><br></div><div><b>AFKMC2.jl</b> - File for the Assumption Free K MC2 algorithm (KMeans)<br></div><div><b><br></b></div><div><b>KernelFunctions.jl</b> - Module for the kernel type</div><div><br></div><div><b>DataAccess.jl</b> - Module for either generating data or exporting from an existing dataset<br></div><div><br></div><div><b>run_test.jl </b>and<b> paper_experiments.jl</b></div><div><b> </b>- Modules to run on a file and compute accuracy on a nFold cross validation, also to compute the brier score and the logscore</div><div><br></div><div><b>test_functions.jl</b> and <b>paper_experiment_functions.jl</b> - Sets of datatype and functions for efficient testing.</div><div><br></div><div><div><b>ECM.jl</b> - Module for expectation conditional maximization (ECM) for nonlinear Bayesian SVM</div></div><div><br></div><div>For datasets used in the related experiments please see <a href="https://doi.org/10.6084/m9.figshare.5443621">https://doi.org/10.6084/m9.figshare.5443621</a></div><div><b><br></b></div><div><b>Requirements</b></div><div><br></div><div>The BayesianSVM only works for version of Julia > 0.5. Other necessary packages will automatically be added in the installation. It is also possible to run the package from Python, to do so please check <a href="https://github.com/JuliaPy/pyjulia">Pyjulia</a>. If you prefer to use R you have the possibility to use <a href="https://github.com/armgong/RJulia">RJulia</a>. All these are a bit technical due to the fact that Julia is still a young package.</div><div><br></div><div><b>Installation</b></div><div><br></div><div>To install the last version of the package in Julia run</div><div><br></div><div> Pkg.clone("git://github.com/theogf/BayesianSVM.jl.git")</div><div><b><br></b></div><div><b>Running the Algorithm</b></div><div><br></div><div>Here are the basic steps for using the algorithm :</div><div><br></div><div> using BayesianSVM</div><div> Model = BSVM(X_training,y_training)</div><div> Model.Train()</div><div> y_predic = sign(Model.Predict(X_test))</div><div> y_uncertaintypredic = Model.PredictProb(X_test)</div><div> Where X_training should be a matrix of size NSamples x NFeatures, and y_training should be a vector of 1 and -1</div><div><br></div><div>You can find a more complete description in the <a href="https://github.com/theogf/BayesianSVM.jl/wiki/Bayesian-Support-Vector-Machine-Documentation#welcome-to-the-bayesiansvmjl-wiki">Wiki</a></div></div><div><br></div><div><b>Background</b></div><div><br></div><div>We propose a fast inference method for Bayesian nonlinear support vector machines that leverages stochastic variational inference and inducing points. Our experiments show that the proposed method is faster than competing Bayesian approaches and scales easily to millions of data points. It provides additional features over frequentist competitors such as accurate predictive uncertainty estimates and automatic hyperparameter search.<br></div><div><br></div><div><b>Please also check out our github repository:</b></div><div>github.com/theogf/BayesianSVM.jl<br></div>