Skip to content

Latest commit

 

History

History
172 lines (145 loc) · 7.66 KB

RELEASE-NOTES.md

File metadata and controls

172 lines (145 loc) · 7.66 KB

Release Notes

PyMC3 3.0 (September xx, 2016)

We are proud and excited to release the first stable version of PyMC3, the product of more than 5 years of ongoing development and contributions from over 80 individuals. PyMC3 is a Python module for Bayesian modeling which focuses on modern Bayesian computational methods, primarily gradient-based (Hamiltonian) MCMC sampling and variational inference. Models are specified in Python, which allows for great flexibility. The main technological difference in PyMC3 relative to previous versions is the reliance on Theano for the computational backend, rather than on Fortran extensions.

New features

Since the beta release last year, the following improvements have been implemented:

  • Added variational submodule, which features the automatic differentiation variational inference (ADVI) fitting method. Also supports mini-batch ADVI for large data sets. Much of this work was due to the efforts of Taku Yoshioka, and important guidance was provided by the Stan team (specifically Alp Kucukelbir and Daniel Lee).

  • Added model checking utility functions, including leave-one-out (LOO) cross-validation, BPIC, WAIC, and DIC.

  • Implemented posterior predictive sampling (sample_ppc).

  • Implemented auto-assignment of step methods by sample function.

  • Enhanced IPython Notebook examples, featuring more complete narratives accompanying code.

  • Extensive debugging of NUTS sampler.

  • Updated documentation to reflect changes in code since beta.

  • Refactored test suite for better efficiency.

  • Added von Mises, zero-inflated negative binomial, and Lewandowski, Kurowicka and Joe (LKJ) distributions.

  • Adopted joblib for managing parallel computation of chains.

  • Added contributor guidelines, contributor code of conduct and governance document.

Deprecations

  • Argument order of tau and sd was switched for distributions of the normal family:
  • Normal()
  • Lognormal()
  • HalfNormal()

Old: Normal(name, mu, tau) New: Normal(name, mu, sd) (supplying keyword arguments is unaffected).

  • MvNormal calling signature changed: Old: MvNormal(name, mu, tau) New: MvNormal(name, mu, cov) (supplying keyword arguments is unaffected).

We on the PyMC3 core team would like to thank everyone for contributing and now feel that this is ready for the big time. We look forward to hearing about all the cool stuff you use PyMC3 for, and look forward to continued development on the package.

Contributors

A Kuz for.akuz@gmail.com A. Flaxman abie@alum.mit.edu Abraham Flaxman abie@alum.mit.edu Alexey Goldin alexey.goldin@gmail.com Anand Patil anand.prabhakar.patil@gmail.com Andrea Zonca code@andreazonca.com Andreas Klostermann andreasklostermann@googlemail.com Andres Asensio Ramos Andrew Clegg andrew.clegg@pearson.com Anjum48 AustinRochford arochford@monetate.com Benjamin Edwards bedwards@cs.unm.edu Boris Avdeev borisaqua@gmail.com Brian Naughton briannaughton@gmail.com Byron Smith Chad Heyne chadheyne@gmail.com Chris Fonnesbeck chris.fonnesbeck@vanderbilt.edu Colin Corey Farwell coreyf@rwell.org David Huard david.huard@gmail.com David Huard huardda@angus.meteo.mcgill.ca David Stück dstuck@users.noreply.github.com DeliciousHair mshepit@gmail.com Dustin Tran Eigenblutwurst Hannes.Bathke@gmx.net Gideon Wulfsohn gideon.wulfsohn@gmail.com Gil Raphaelli g@raphaelli.com Gogs gogitservice@gmail.com Ilan Man Imri Sofer imrisofer@gmail.com Jake Biesinger jake.biesinger@gmail.com James Webber jamestwebber@gmail.com John McDonnell john.v.mcdonnell@gmail.com John Salvatier jsalvatier@gmail.com Jordi Diaz Jordi Warmenhoven jordi.warmenhoven@gmail.com Karlson Pfannschmidt kiudee@mail.uni-paderborn.de Kyle Bishop citizenphnix@gmail.com Kyle Meyer kyle@kyleam.com Lin Xiao Mack Sweeney mackenzie.sweeney@gmail.com Matthew Emmett memmett@unc.edu Maxim Michael Gallaspy gallaspy.michael@gmail.com Nick nalourie@example.com Osvaldo Martin aloctavodia@gmail.com Patricio Benavente patbenavente@gmail.com Peadar Coyle (springcoil) peadarcoyle@googlemail.com Raymond Roberts Rodrigo Benenson rodrigo.benenson@gmail.com Sergei Lebedev superbobry@gmail.com Skipper Seabold chris.fonnesbeck@vanderbilt.edu Taku Yoshioka taku.yoshioka.4096@gmail.com The Gitter Badger badger@gitter.im Thomas Kluyver takowl@gmail.com Thomas Wiecki thomas.wiecki@gmail.com Tobias Knuth mail@tobiasknuth.de Volodymyr Volodymyr Kazantsev Wes McKinney wesmckinn@gmail.com Zach Ploskey zploskey@gmail.com akuz for.akuz@gmail.com aloctavodia aloctavodia@gmail.com brandon willard brandonwillard@gmail.com dstuck dstuck88@gmail.com ingmarschuster ingmar.schuster.linguistics@gmail.com jan-matthis mail@jan-matthis.de jason JasonTam22@gmailcom jonsedar jon.sedar@applied.ai kiudee quietdeath@gmail.com maahnman github@mm.maahn.de macgyver neil.rabinowitz@merton.ox.ac.uk mwibrow mwibrow@gmail.com olafSmits o.smits@gmail.com paul sorenson paul@metrak.com redst4r redst4r@web.de santon steven.anton@idanalytics.com sgenoud stevegenoud+github@gmail.com stonebig taku-y taku.yoshioka.4096@gmail.com tyarkoni tyarkoni@gmail.com x2apps x2apps@yahoo.com zenourn daniel@zeno.co.nz

PyMC3 3.0b (June 16th, 2015)

Probabilistic programming allows for flexible specification of Bayesian statistical models in code. PyMC3 is a new, open-source probabilistic programmer framework with an intuitive, readable and concise, yet powerful, syntax that is close to the natural notation statisticians use to describe models. It features next-generation fitting techniques, such as the No U-Turn Sampler, that allow fitting complex models with thousands of parameters without specialized knowledge of fitting algorithms.

PyMC3 has recently seen rapid development. With the addition of two new major features: automatic transforms and missing value imputation, PyMC3 has become ready for wider use. PyMC3 is now refined enough that adding features is easy, so we don't expect adding features in the future will require drastic changes. It has also become user friendly enough for a broader audience. Automatic transformations mean NUTS and find_MAP work with less effort, and friendly error messages mean its easy to diagnose problems with your model.

Thus, Thomas, Chris and I are pleased to announce that PyMC3 is now in Beta.

Highlights

  • Transforms now automatically applied to constrained distributions
  • Transforms now specified with a transform= argument on Distributions. model.TransformedVar is gone.
  • Transparent missing value imputation support added with MaskedArrays or pandas.DataFrame NaNs.
  • Bad default values now ignored
  • Profile theano functions using model.profile(model.logpt)

Contributors since 3.0a