pyGPGO
pyGPGO: Bayesian Optimization for Python - Published in JOSS (2017)
Science Score: 46.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: joss.theoj.org, zenodo.org -
✓Committers with academic emails
3 of 7 committers (42.9%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.7%) to scientific vocabulary
Keywords
Scientific Fields
Repository
Bayesian optimization for Python
Basic Info
- Host: GitHub
- Owner: josejimenezluna
- License: mit
- Language: Python
- Default Branch: master
- Homepage: http://pygpgo.readthedocs.io
- Size: 59.5 MB
Statistics
- Stars: 246
- Watchers: 9
- Forks: 61
- Open Issues: 7
- Releases: 3
Topics
Metadata Files
README.md
pyGPGO: Bayesian Optimization for Python

pyGPGO is a simple and modular Python (>3.5) package for bayesian optimization.
Bayesian optimization is a framework that can be used in situations where:
- Your objective function may not have a closed form. (e.g. the result of a simulation)
- No gradient information is available.
- Function evaluations may be noisy.
- Evaluations are expensive (time/cost-wise)
Installation
Retrieve the latest stable release from pyPI:
bash
pip install pyGPGO
Or if you're feeling adventurous, retrieve it from this repo,
bash
pip install git+https://github.com/hawk31/pyGPGO
Check our documentation in http://pygpgo.readthedocs.io/.
Features
- Different surrogate models: Gaussian Processes, Student-t Processes, Random Forests, Gradient Boosting Machines.
- Type II Maximum-Likelihood of covariance function hyperparameters.
- MCMC sampling for full-Bayesian inference of hyperparameters (via
pyMC3). - Integrated acquisition functions
A small example!
The user only has to define a function to maximize and a dictionary specifying input space.
```python import numpy as np from pyGPGO.covfunc import matern32 from pyGPGO.acquisition import Acquisition from pyGPGO.surrogates.GaussianProcess import GaussianProcess from pyGPGO.GPGO import GPGO
def f(x, y): # Franke's function (https://www.mathworks.com/help/curvefit/franke.html) one = 0.75 * np.exp(-(9 * x - 2) ** 2 / 4 - (9 * y - 2) ** 2 / 4) two = 0.75 * np.exp(-(9 * x + 1) ** 2/ 49 - (9 * y + 1) / 10) three = 0.5 * np.exp(-(9 * x - 7) ** 2 / 4 - (9 * y -3) ** 2 / 4) four = 0.25 * np.exp(-(9 * x - 4) ** 2 - (9 * y - 7) ** 2) return one + two + three - four
cov = matern32() gp = GaussianProcess(cov) acq = Acquisition(mode='ExpectedImprovement') param = {'x': ('cont', [0, 1]), 'y': ('cont', [0, 1])}
np.random.seed(1337) gpgo = GPGO(gp, acq, f, param) gpgo.run(max_iter=10)
```
Check the tutorials and examples folders for more ideas on how to use the software.
Citation
If you use pyGPGO in academic work please cite:
Jiménez, J., & Ginebra, J. (2017). pyGPGO: Bayesian Optimization for Python. The Journal of Open Source Software, 2, 431.
Owner
- Name: José Jiménez-Luna
- Login: josejimenezluna
- Kind: user
- Location: Cambridge, UK
- Company: @MicrosoftResearch
- Website: https://josejimenezluna.github.io/
- Twitter: josejimlun
- Repositories: 27
- Profile: https://github.com/josejimenezluna
Driving drug discovery one gradient update at a time.
GitHub Events
Total
- Watch event: 6
- Fork event: 1
Last Year
- Watch event: 6
- Fork event: 1
Committers
Last synced: 5 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| hawk31 | h****1@g****m | 203 |
| hawk31 | j****z@u****u | 46 |
| hawk31 | h****1@g****m | 35 |
| Anders Sjöberg | a****g@f****e | 3 |
| Jose Jimenez | j****z@r****h | 2 |
| Dan Foreman-Mackey | d****n@d****a | 1 |
| Connor Barnhill | c****l@b****o | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 27
- Total pull requests: 5
- Average time to close issues: 7 months
- Average time to close pull requests: 15 days
- Total issue authors: 22
- Total pull request authors: 5
- Average comments per issue: 2.04
- Average comments per pull request: 1.2
- Merged pull requests: 3
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- josejimenezluna (4)
- dfm (2)
- RemiDav (2)
- melonwater211 (1)
- xunzhang (1)
- lilleswing (1)
- petersandersen (1)
- lucailvec (1)
- RHammond2 (1)
- jamesdj (1)
- richardknudsen (1)
- xunhuan-li (1)
- borgricw (1)
- miha-skalic (1)
- bacalfa (1)
Pull Request Authors
- Saizor (1)
- ConnorBarnhill (1)
- crawlingcub (1)
- dataronio (1)
- dfm (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- joblib *
- numpy *
- pymc3 *
- scikit-learn *
- scipy *
- theano *
- Theano-PyMC *
- joblib *
- mkl *
- numpy *
- pyMC3 *
- scikit-learn *
- scipy *