Skip to content

Gaussian Process Regression and Classification on Graphs

Notifications You must be signed in to change notification settings

filippocastelli/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