Skip to content

Gaussian Process Regression and Classification on Graphs

Notifications You must be signed in to change notification settings

ziedbouf/GPnet

 
 

Repository files navigation

GPnet

Gaussian Process Regression and Classification on Graphs

The code is loosely inspired on the code from Chapter 18 of Machine Learning: An Algorithmic Perspective (2nd Edition) by Stephen Marsland and implements the algorithms in Chapters 2 and 3 of Gaussian Processes for Machine Learning by C.E. Rasmussen.

GPnet at the moment exposes two classes: GPnetRegressor and GPnetClassifier

  • GPnetRegressor provides basic regression functionality for functions defined on graph nodes
  • GPnetClassfier provides classification of test nodes, given a set of -1/+1 labels for the training nodes

Available kernels are based on graph node kernels by Kondor et al.

update: kernel composition is already possible via custom function definitions: "soft" kernel composition is yet to be implemented.

Parameter optimization is provided by scipy.optimize.

Dependencies

GPnet demos require networkx, pandas , numpy, matplotlib, scipy.optimize, and random to work: nothing too exotic.

What's the future of this repo?

Possible future work directions include:

  • including support for multiple and custom-defined kernels
  • fixing numerical issues with covariance matrix estimation and parameter optimization

About

Gaussian Process Regression and Classification on Graphs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 88.3%
  • Python 11.7%