GithubHelp home page GithubHelp logo

ibo's Introduction

Interactive Bayesian Optimization with Gaussian Processes.

This is the code used for the experiments in my PhD thesis, which is available at https://circle.ubc.ca/bitstream/handle/2429/30519/ubc_2011_spring_brochu_eric.pdf?sequence=3

All files are copyright 2010, 2011 by Eric Brochu and released under the MIT license. See license.txt for details.

Installation

This package expects you to have Python 2.6.x, NumPy and SciPy installed. An easy way to get it all at once it to download the Enthought Python Distribution from enthought.com.

After cloning the repository, you will need to add the package path to your PYTHONPATH. On OS X, I added the following lines to .bash_login:

PYTHONPATH=${PYTHONPATH}:/Users/eric/projects/EGOcode/
export PYTHONPATH

The package contains C++ code for an OSX dynamic library, though it should be pretty simple to compile it on Linux if need be. This library is optional. It adds no functionality, but it speeds up the algorithm substantially. To build it, jut run

make depend
make

You will then need to add the library path (/path/to/EGOcode/cpp/libs/) to your DYLD_LIBRARY_PATH.

To make sure the system is set up properly, run the unittests in EGOcode/ego. There may be warnings if the C++ library is not found, but all tests should pass.

Using the Package

The file demo.py provides examples of calling the package. Basically, you create a GaussianProcess if you have direct observations, or PrefGaussianProcess if you have preference observations. You can then add data to the GP, and call maximizeEI() or fastUCBGallery() to find informative query points.

The 'bound' argument controls the ranges of the parameters that the queries will return on. If they are set so that the lower bound is equal to the upper bound, that parameter is fixed at the indicated value. For example:

>>> fastUCBGallery(GP, [[-1, 1.5], [0.5, 0.5]], 4)

will get a gallery of 4 query points over the range [-1, 1.5] for the first parameter, fixing the second parameter at 0.5.

Other use cases can be found in the unit tests.

ibo's People

Contributors

misterwindupbird avatar

Stargazers

 avatar Ben avatar  avatar Matt-Heun Hong avatar  avatar Stefan Repplinger avatar Daniel Winkler avatar Robb Beal avatar Alan-Chauvin avatar sunxiaolin avatar Sebastian Böck avatar June avatar Liam Ellis avatar Guanlin Li avatar Slice avatar Romy Lorenz avatar 爱可可-爱生活 avatar TENSORTALK avatar samim avatar Luyu Wang avatar Kai Mast avatar Esben Sørig avatar  avatar

Watchers

 avatar James Cloos avatar Romy Lorenz avatar

ibo's Issues

Adding Library Path to DYLD_LIBRARY_PATH in Windows

@misterwindupbird When I run demo.py, my call stops before plots are generated and iterative updates are provided. The issue is that lpath is not found for cdirectGP, which is called by maximizeEI in demo.py. I want to make sure that I have properly added the library path to my DYLD_LIBRARY_PATH. I am running on Windows and currently have some failures when I run the unittests in the ego folder.

unittest failures

There is not a libs file or subfolder in the cpp folder. Currently, what am I doing by adding .../cpp/libs/ to my DYLD_LIBRARY_PATH?

I am new to GitHub (and BitBucket) and I am just starting to use python again (after taking one semester in python 4 years ago). I really appreciate any advice and insights that could be provided. Thank you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.