Skip to content

Latest commit

 

History

History
153 lines (105 loc) · 4.08 KB

index.rst

File metadata and controls

153 lines (105 loc) · 4.08 KB
./../logo.png

zeus is a Python implementation of the Ensemble Slice Sampling method.

  • Fast & Robust Bayesian Inference,
  • Efficient Markov Chain Monte Carlo (MCMC),
  • Black-box inference, no hand-tuning,
  • Excellent performance in terms of autocorrelation time and convergence rate,
  • Scale to multiple CPUs without any extra effort.
https://img.shields.io/badge/GitHub-minaskar%2Fzeus-blue https://img.shields.io/badge/arXiv-2002.06212-red https://travis-ci.com/minaskar/zeus.svg?token=xnVWRZ3TFg1zxQYQyLs4&branch=master https://readthedocs.org/projects/zeus-mcmc/badge/?version=latest&token=4455dbf495c5a4eaba52de26ac56628aad85eb3eadc90badfd1703d0a819a0f9

Basic use

For instance, if you wanted to draw samples from a 10-dimensional Normal distribution, you would do something like:

import zeus
import numpy as np

def log_prob(x, ivar):
    return - 0.5 * np.sum(ivar * x**2.0)

nsteps, nwalkers, ndim = 1000, 100, 10
ivar = 1.0 / np.random.rand(ndim)
start = np.random.randn(nwalkers, ndim)

sampler = zeus.EnsembleSampler(nwalkers, ndim, log_prob, args=[ivar])
sampler.run_mcmc(start, nsteps)

Installation

To install zeus using pip run:

pip install zeus-mcmc

Getting Started

  • See the :doc:`cookbook` page to learn how to perform Bayesian Inference using zeus.
  • See the :doc:`faq` page for frequently asked questions about zeus' operation.
  • See the :doc:`api` page for detailed API documentation.

Citation

Please cite Karamanis & Beutler (2020) if you find this code useful in your research. The BibTeX entry for the paper is:

@article{zeus,
    title={zeus: A Python Implementation of the Ensemble Slice Sampling method},
    author={Minas Karamanis and Florian Beutler},
    year={2020},
    note={in prep}
}

@article{ess,
    title={Ensemble Slice Sampling},
    author={Minas Karamanis and Florian Beutler},
    year={2020},
    eprint={2002.06212},
    archivePrefix={arXiv},
    primaryClass={stat.ML}
}

Licence

Copyright 2019-2020 Minas Karamanis and contributors.

zeus is free software made available under the GPL-3.0 License.

Changelog

2.1.0 (29/10/20)

  • Added blobs interface to track arbitrary metadata.
  • Updated GlobalMove and multimodal example.
  • Fixed minor bugs.

2.0.0 (05/10/20)

  • Added new Moves interface (e.g. DifferentialMove, GlobalMove, etc).
  • Plotting capabilities (i.e. cornerplot).
  • Updated docs.
  • Fixed minor bugs.

1.2.2 (19/09/20)

  • Sampler class is deprecated. New EnsembleSampler class in now available.
  • New estimator for the Integrated Autocorrelation Time. It's accurate even with short chains.
  • Updated ChainManager to handle thousands of CPUs.

1.2.1 (04/08/20)

  • Changed to Flat-not-nested philosophy for diagnostics and ChainManager.

1.2.0 (03/08/20)

  • Extended ChainManager with gather, scatter, and bcast tools.

1.1.0 (02/08/20)

  • Added ChainManager to deploy into supercomputing clusters, parallelizing both chains and walkers.
  • Added Convergence diagnostic tools (Gelman-Rubin, Geweke).

1.0.7 (11/05/20)

  • Improved parallel distribution of tasks
.. toctree::
    :maxdepth: 1
    :caption: Cookbook Recipes
    :hidden:

    Overview <cookbook>
    notebooks/normal_distribution.ipynb
    notebooks/datafit.ipynb
    notebooks/multiprocessing.ipynb
    notebooks/MPI.ipynb

.. toctree::
    :maxdepth: 3
    :caption: Help & Reference
    :hidden:

    faq
    api