Noisyopt

Noisyopt: A Python library for optimizing noisy functions. - Published in JOSS (2017)

https://github.com/andim/noisyopt

Science Score: 93.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
    Found 1 DOI reference(s) in JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org, zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

optimization
Last synced: 4 months ago · JSON representation

Repository

Python library for optimizing noisy functions.

Basic Info
Statistics
  • Stars: 88
  • Watchers: 5
  • Forks: 15
  • Open Issues: 4
  • Releases: 5
Topics
optimization
Created almost 10 years ago · Last pushed over 3 years ago
Metadata Files
Readme Contributing License Codemeta

README.md

Latest release Build Status Documentation Status Coverage Status License

JOSS DOI

Noisyopt: A python library for optimizing noisy functions

In some optimization problems a precise evaluation of the function to be optimized is either impossible or exceedingly computationally expensive. This package provides algorithms to optimize a function based on noisy evaluations.

Currently the following algorithms are implemented: - robust pattern search with adaptive sampling - simultaneous perturbation stochastic approximation

Both algorithms support bound constraints and do not require to explicitely calculate the gradient of the function.

We do not attempt to find global optima -- look at scikit-optimize for Bayesian optimization algorithms aimed at finding global optima to noisy optimization problems. For optimizing functions that are not noisy take a look at scipy.optimize.

Installation

Noisyopt is on PyPI so you can install it using pip install noisyopt.

Alternatively you can install it from source by obtaining the source code from Github and then running python setup.py install in the main directory. If you install from source, you first need to install numpy and scipy if these packages are not already installed.

Getting started

Find the minimum of the noisy function obj(x) with noisyopt:

```python import numpy as np from noisyopt import minimizeCompass

def obj(x): return (x*2).sum() + 0.1np.random.randn()

bounds = [[-3.0, 3.0], [0.5, 5.0]] x0 = np.array([-2.0, 2.0]) res = minimizeCompass(obj, bounds=bounds, x0=x0, deltatol=0.1, paired=False) ```

Documentation

You can access the documentation online at Read the docs. If you install from source you can generate a local version by running make html from the doc directory.

Support and contributing

For bug reports and enhancement requests use the Github issue tool, or (even better!) open a pull request with relevant changes. If you have any questions don't hesitate to contact me by email (andimscience@gmail.com) or Twitter (@andimscience).

You can run the testsuite by running pytest in the top-level directory.

You are cordially invited to contribute to the further development of noisyopt!

Owner

  • Name: Andreas Tiffeau-Mayer
  • Login: andim
  • Kind: user
  • Location: London
  • Company: University College London

Quantitative Immunology, Biological Physics

JOSS Publication

Noisyopt: A Python library for optimizing noisy functions.
Published
May 30, 2017
Volume 2, Issue 13, Page 258
Authors
Andreas Mayer ORCID
Laboratoire de Physique Théorique, École Normale Supérieure
Editor
Ariel Rokem ORCID
Tags
optimization stochastic approximation spsa

CodeMeta (codemeta.json)

{
  "@context": "https://raw.githubusercontent.com/mbjones/codemeta/master/codemeta.jsonld",
  "@type": "Code",
  "author": [],
  "identifier": "https://doi.org/10.5281/zenodo.439144",
  "codeRepository": "https://github.com/andim/noisyopt",
  "datePublished": "2017-03-30",
  "dateModified": "2017-03-30",
  "dateCreated": "2017-03-30",
  "description": "Noisyopt is a Python library for local optimization of functions based on noisy evaluations.",
  "keywords": "optimization, stochastic approximation, spsa",
  "license": "MIT",
  "title": "noisyopt",
  "version": "v0.2.0"
}

GitHub Events

Total
  • Watch event: 1
Last Year
  • Watch event: 1

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 140
  • Total Committers: 2
  • Avg Commits per committer: 70.0
  • Development Distribution Score (DDS): 0.007
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Andreas Mayer a****m@g****m 139
Svein Aas s****n@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 21
  • Total pull requests: 2
  • Average time to close issues: 8 months
  • Average time to close pull requests: 4 months
  • Total issue authors: 13
  • Total pull request authors: 1
  • Average comments per issue: 1.52
  • Average comments per pull request: 5.5
  • Merged pull requests: 1
  • 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
  • nirum (8)
  • microprediction (2)
  • tgbrooks (1)
  • sclamons (1)
  • komosinski (1)
  • andim (1)
  • zohimchandani (1)
  • montus15 (1)
  • vishalmhjn (1)
  • toumix (1)
  • Pundarikm37 (1)
  • thomasahle (1)
  • dsmic (1)
Pull Request Authors
  • Baughn (2)
Top Labels
Issue Labels
enhancement (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 999 last-month
  • Total docker downloads: 34
  • Total dependent packages: 6
  • Total dependent repositories: 25
  • Total versions: 6
  • Total maintainers: 1
pypi.org: noisyopt

Python library for optimization of noisy functions

  • Versions: 6
  • Dependent Packages: 6
  • Dependent Repositories: 25
  • Downloads: 999 Last month
  • Docker Downloads: 34
Rankings
Dependent packages count: 1.4%
Dependent repos count: 2.9%
Docker downloads count: 3.9%
Average: 4.4%
Downloads: 9.3%
Maintainers (1)
Last synced: 4 months ago

Dependencies

requirements.txt pypi
  • numpy *
  • scipy *