jbopt is a suite of powerful parameter space exploration methods.
Methods of likelihood maximization, estimation of uncertainty for parameter estimation in a maximum likelihood and Bayesian way are available. The problem only has to be stated once, then the various methods can called interchangably, or in combination, by a common call interface.
Take a look at the instructive code example.
- Nelder-Mead, COBYLA (via scipy.optimize)
- ralg, auglag and 100s others from the OpenOpt framework (via openopt.NLP)
- Minuit (via PyMinuit)
- Custom minimization methods (see here)
- Differential evolution, specially preconfigured (via inspyred)
- Metropolis Hastings MCMC with automatic step width adaption
- Ensemble MCMC (via emcee)
- MultiNest Nested Sampling (via PyMultiNest)
- see the pymultinest/pycuba package
using pip:
$ pip install jbopt # also consider the --user option
$ git clone git://github.com/JohannesBuchner/jbopt
$ cd jbopt
$ python setup.py install # also consider the --user option
Be aware that you will have to install the various dependencies for the algorithms you would like to use.