https://github.com/michaelosthege/pyrff
pyrff: Python implementation of random fourier feature approximations for gaussian processes
https://github.com/michaelosthege/pyrff
bayesian-optimization gaussian-processes thompson-sampling
Last synced: 22 days ago
JSON representation
pyrff: Python implementation of random fourier feature approximations for gaussian processes
- Host: GitHub
- URL: https://github.com/michaelosthege/pyrff
- Owner: michaelosthege
- License: agpl-3.0
- Created: 2020-05-08T09:56:24.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2025-03-18T22:25:54.000Z (4 months ago)
- Last Synced: 2025-04-11T20:45:53.470Z (3 months ago)
- Topics: bayesian-optimization, gaussian-processes, thompson-sampling
- Language: Jupyter Notebook
- Homepage:
- Size: 68.5 MB
- Stars: 28
- Watchers: 4
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://pypi.org/project/pyrff)
[](https://github.com/michaelosthege/pyrff/actions)
[](https://codecov.io/gh/michaelosthege/pyrff)
[](https://doi.org/10.5281/zenodo.3831380)# `pyrff`: Approximating Gaussian Process samples with Random Fourier Features
This project is a Python implementation of random fourier feature (RFF) approximations [1].It is heavily inspired by the implementations from [2, 3] and generalizes the implementation to work with GP hyperparameters obtained from any GP library.
Examples are given as Jupyter notebooks for GPs fitted with [PyMC3](https://github.com/pymc-devs/pymc3) and [scikit-learn](https://scikit-learn.org):
+ [Example_RFF_PyMC3_1D](https://github.com/michaelosthege/pyrff/blob/master/notebooks/Example_RFF_1D_PyMC3.ipynb)
+ [Example_RFF_PyMC3_2D](https://github.com/michaelosthege/pyrff/blob/master/notebooks/Example_RFF_2D_PyMC3.ipynb)
+ [Thompson sampling, 1D with sklearn](https://github.com/michaelosthege/pyrff/blob/master/notebooks/TS_1D_sklearn.ipynb)# Installation
`pyrff` is released on [PyPI](https://pypi.org/project/pyrff/):
```
pip install pyrff
```
# Usage and Citing
`pyrff` is licensed under the [GNU Affero General Public License v3.0](https://github.com/michaelosthege/pyrff/blob/master/LICENSE).When using `robotools` in your work, please cite the [corresponding software version](https://doi.org/10.5281/zenodo.3831380).
```bibtex
@software{pyrff,
author = {Michael Osthege and
Kobi Felton},
title = {michaelosthege/pyrff: v2.0.1},
month = dec,
year = 2020,
publisher = {Zenodo},
version = {v2.0.1},
doi = {10.5281/zenodo.4317685},
url = {https://doi.org/10.5281/zenodo.4317685}
}
```Head over to Zenodo to [generate a BibTeX citation](https://doi.org/10.5281/zenodo.3831380) for the latest release.
# References
1. Hernández-Lobato, 2014 [paper](https://arxiv.org/pdf/1406.2541), [code](https://bitbucket.org/jmh233/codepesnips2014/src/ac843ba992ca1879190a472ac20c83a447e4e2c0/sourceFiles/sampleMinimum.m#lines-1)
2. PES implementation in Cornell-MOE [code](https://github.com/wujian16/Cornell-MOE/blob/df299d1be882d2af9796d7a68b3f9505cac7a53e/pes/PES/sample_minimum.py#L23)
3. Bradford, 2018 [paper](https://link.springer.com/article/10.1007/s10898-018-0609-2/), [code](https://github.com/Eric-Bradford/TS-EMO/blob/87151d94081db1d0f128a788ebdb789d2891ee9a/TSEMO_V4.m#L501)