# Code for the NeurIPS 2024 submission "Robust Gaussian Processes via Relevance Pursuit"

This is the code accompanying the "Robust Gaussian Processes via Relevance Pursuit" 2024 NeurIPS submission. It contains the core methods implementation as well as the setup for the benchmarks.

# Structure of the module:
| - relevance_pursuit                     > overall module
|    - relevance_pursuit.py               > core implementation of the relevance pursuit algorithm
|    - constraints.py                     > helper functions
|    - robust_gp                          > module containing the model code, including baselines
|    - benchmark                          > module containing the benchmarking code
|       - relevance_pursuit_benchmark.py  > main entry point for running a benchmark. START HERE
|       - problems                        > module containig the problems evaluated in the paper
|       - regression_replication.py       > code for running a single replication of a regression problem
|       - bo_replication.py               > code for running a single replication of a BO problem
|       - contamination_processes.py      > code for defining/applying label corruptions
|       - helpers.py                      > helper functions
|       - example_benchmark_run.py        > an example benchmark run


# Dependencies / Requirements:
- botorch v0.11.0
- pandas
- sklearn (for power transformation, SVM BO problem)
- xgboost (for SVM BO problem)
- torchvision (for Pytorch CNN BO problem)


# Quickstart:
From the `relevance_pursuit_neurips2024` directory, call
`python -m relevance_pursuit.benchmark.example_benchmark_run`
