kombine ======= ``kombine`` is an ensemble sampler built for efficiently exploring multimodal distributions. By using estimates of ensemble's instantaneous distribution as a proposal, it achieves very fast burnin, followed by sampling with very short autocorrelation times. Example Usage ------------- Construct an 8-D bimodal target distribution:: import numpy as np class Target(object): def __init__(self, ndim, nmodes): # Generate random inverse variances for each dimension self.ivar = 1. / np.random.rand(ndim) # Space modes 5-sigma apart std = np.sqrt(1/self.ivar) self.means = 5 * std * np.arange(nmodes)[:, np.newaxis] def __call__(self, x): ivar, means = self.ivar, self.means lnprobs = [-np.sum(ivar * (x - mu) ** 2)/2 for mu in means] return np.logaddexp.reduce(lnprobs) ndim, nmodes = 8, 2 lnprob = Target(ndim, nmodes) Sample the target distribution:: import kombine nwalkers = 500 sampler = kombine.Sampler(nwalkers, ndim, lnprob) p0 = 5 * (5 * np.random.rand(nwalkers, ndim) - 1) p, _, _ = sampler.burnin(p0) User Guide ---------- .. toctree:: :maxdepth: 2 installation kombine API Documentation ----------------- * :ref:`genindex` * :ref:`modindex` * :ref:`search` Contributors ------------ .. include:: ../AUTHORS.rst