pyGPGO

pyGPGO: Bayesian Optimization for Python - Published in JOSS (2017)

https://github.com/josejimenezluna/pyGPGO

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

bayesian machine-learning optimization

Scientific Fields

Artificial Intelligence and Machine Learning Computer Science - 31% confidence
Last synced: 4 months ago · JSON representation

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
bayesian machine-learning optimization
Created about 9 years ago · Last pushed almost 4 years ago
Metadata Files
Readme Contributing License

README.md

pyGPGO: Bayesian Optimization for Python

Build Status codecov Documentation Status DOI status

sine

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

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

All Time
  • Total Commits: 291
  • Total Committers: 7
  • Avg Commits per committer: 41.571
  • Development Distribution Score (DDS): 0.302
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email 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
enhancement (6) bug (2) dependency bug (1)
Pull Request Labels

Dependencies

requirements_rtd.txt pypi
  • joblib *
  • numpy *
  • pymc3 *
  • scikit-learn *
  • scipy *
  • theano *
setup.py pypi
  • Theano-PyMC *
  • joblib *
  • mkl *
  • numpy *
  • pyMC3 *
  • scikit-learn *
  • scipy *