Summary Most programming is deterministic, relying on concrete logic to determine the way that it operates. However, there are problems that require a way to work with uncertainty. PyMC3 is a library designed for building models to predict the likelihood of certain outcomes. In this episode Thomas Wiecki explains the use cases where Bayesian statistics are necessary, how PyMC3 is designed and implemented, and some great examples of how it is being used in real projects. Announcements Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email hosts@podcastinit.com) To help other people find the show please leave a review on iTunes and tell your friends and co-workers Join the community in the new Zulip chat workspace at pythonpodcast.com/chat Your host as usual is Tobias Macey and today I’m interviewing Thomas Wiecki about PyMC3, a project for probabilistic programming in Python Interview Introductions How did you get introduced to Python? Can you start by explaining what probabilistic programming is? What is the PyMC3 project and how did you get involved with it? The opening line for the project README is packed with a slew of terms that are rather opaque to the lay-person. Can you unpack that a bit and discuss some of the ways that PyMC3 is used in real-world projects? How much knowledge of statistical modeling and Bayesian statistics is necessary to make effective use of PyMC3? Can you talk through an example use case for PyMC3 to illustrate how you would use it in a project? How does it compare to the way that you would approach the same problem in a deterministic or frequentist modeling framework? Can you describe how PyMC3 is implemented? There are a number of other projects that build on top of PyMC3, what are some that you find particularly interesting or noteworthy? What do you find to be the most useful features of PyMC3 and what are some areas that you would like to see it improved? What have been the most interesting/unexpected/challenging lessons that you have learned in the process of building and maintaining PyMC3? What is in store for the future of PyMC3? Keep In Touch PyMC GitHub Discourse Forum Thomas twiecki on GitHub @twiecki on Twitter Website Picks Tobias Fantastic Beasts And Where To Find Them Fantastic Beasts: The Crimes Of Grindelwald Thomas Hyperion by Dan Simmons The Mind Illuminated Links PyMC3 Quantopian University of Tubingen MatLab Probabilistic Modeling Probability Distribution A/B Testing Bayesian Statistics Beta Distribution Bernoulli Distribution P-Value Hamiltonian Monte Carlo sampling algorithm Metropolis Hastings Inference Algorithm Theano Bayesian Methods For Hackers by Cameron Davidson-Pilon Bayesian Analysis With Python by Osvaldo Martin Tensorflow MXNet deep learning framework PyTorch Tensorflow Probability BAMBI package to build generalized linear models PMProphet PyMC3 implementation of Facebook’s Prophet for timeseries prediction Exoplanet BEAT (Bayesian Earthquake Analysis Tool) PyMC3 in Google Summer of Code The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA