MATLAB implementation of linear support vector classification in hyperbolic space
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


This repository contains a MATLAB implementation of linear support vector machines (SVM) for data points in hyperbolic space. The manuscript describing this method is currently under review. Preprint is available here:

  • MATLAB (version R2017b)
  • LIBLINEAR for Euclidean support vector classification. Also used as a subroutine in our hyperbolic SVM implementation. Developed with version 2.20.
How to Run

We provide example scripts for comparing hyperbolic SVM to Euclidean SVM on three benchmark datasets described in our manuscript:

  • Gaussian point clouds in hyperbolic space (run_gaussian.m)
  • simulated scale-free networks with simulated node labels, embedded in hyperbolic space via LaBNE [1] (run_randnet.m)
  • real-world networks with known node labels, embedded in hyperbolic space using the approach of Chamberlain et al. [2] (run_realnet.m).

Before executing these scripts, edit the following top line in each script

addpath /PATH/TO/LIBLINEAR/matlab % modify

to include the correct path to the MATLAB subdirectory of LIBLINEAR.


Hoon Cho,


[1] G. Alanis-Lobato, P. Mier, and M.A. Andrade-Navarro. Efficient Embedding of Complex Networks to Hyperbolic Space via their Laplacian. Scientific reports, 6:30108, 2016.

[2] B.P. Chamberlain, J. Clough, and M.P. Deisenroth. Neural Embeddings of Graphs in Hyperbolic Space. arXiv preprint, arXiv:1705.10359, 2017.