Bayesian Methods for Hackers: Probabilistic Programming and Bayesian Inference (Paperback)

Cameron Davidson-Pilon



Master Bayesian Inference through Practical Examples and Computation–Without Advanced Mathematical Analysis


Bayesian methods of inference are deeply natural and extremely powerful. However, most discussions of Bayesian inference rely on intensely complex mathematical analyses and artificial examples, making it inaccessible to anyone without a strong mathematical background. Now, though, Cameron Davidson-Pilon introduces Bayesian inference from a computational perspective, bridging theory to practice–freeing you to get results using computing power.


Bayesian Methods for Hackers illuminates Bayesian inference through probabilistic programming with the powerful PyMC language and the closely related Python tools NumPy, SciPy, and Matplotlib. Using this approach, you can reach effective solutions in small increments, without extensive mathematical intervention.


Davidson-Pilon begins by introducing the concepts underlying Bayesian inference, comparing it with other techniques and guiding you through building and training your first Bayesian model. Next, he introduces PyMC through a series of detailed examples and intuitive explanations that have been refined after extensive user feedback. You’ll learn how to use the Markov Chain Monte Carlo algorithm, choose appropriate sample sizes and priors, work with loss functions, and apply Bayesian inference in domains ranging from finance to marketing. Once you’ve mastered these techniques, you’ll constantly turn to this guide for the working PyMC code you need to jumpstart future projects.


Coverage includes


• Learning the Bayesian “state of mind” and its practical implications

• Understanding how computers perform Bayesian inference

• Using the PyMC Python library to program Bayesian analyses

• Building and debugging models with PyMC

• Testing your model’s “goodness of fit”

• Opening the “black box” of the Markov Chain Monte Carlo algorithm to see how and why it works

• Leveraging the power of the “Law of Large Numbers”

• Mastering key concepts, such as clustering, convergence, autocorrelation, and thinning

• Using loss functions to measure an estimate’s weaknesses based on your goals and desired outcomes

• Selecting appropriate priors and understanding how their influence changes with dataset size

• Overcoming the “exploration versus exploitation” dilemma: deciding when “pretty good” is good enough

• Using Bayesian inference to improve A/B testing

• Solving data science problems when only small amounts of data are available


Cameron Davidson-Pilon has worked in many areas of applied mathematics, from the evolutionary dynamics of genes and diseases to stochastic modeling of financial prices. His contributions to the open source community include lifelines, an implementation of survival analysis in Python. Educated at the University of Waterloo and at the Independent University of Moscow, he currently works with the online commerce leader Shopify.


通過實際例子和計算,掌握貝葉斯推論的方法 - 不需要高深的數學分析

貝葉斯推論方法自然而強大,然而大多數關於貝葉斯推論的討論都依賴於極其複雜的數學分析和人工例子,這使得沒有強大數學背景的人難以理解。現在,Cameron Davidson-Pilon從計算的角度介紹了貝葉斯推論,將理論與實踐相結合,讓您能夠利用計算能力獲得結果。




- 學習貝葉斯的“思維方式”及其實際影響
- 理解計算機如何進行貝葉斯推論
- 使用PyMC Python庫進行貝葉斯分析編程
- 使用PyMC構建和調試模型
- 測試模型的“適應度”
- 打開馬爾可夫鏈蒙特卡羅算法的“黑盒子”,了解其工作原理和原因
- 利用“大數定律”的威力
- 掌握關鍵概念,如聚類、收斂、自相關和稀疏化
- 使用損失函數根據目標和期望結果評估估計值的弱點
- 選擇適當的先驗分佈,並了解其在數據集大小變化時的影響
- 克服“探索與利用”的困境:決定何時“相當好”就足夠好
- 使用貝葉斯推論改進A/B測試
- 在只有少量數據可用時解決數據科學問題

Cameron Davidson-Pilon在應用數學的許多領域工作,從基因和疾病的演化動力學到金融價格的隨機建模。他對開源社區的貢獻包括在Python中實現的生存分析工具lifelines。他在滑鐵盧大學和莫斯科獨立大學接受教育,目前在線商務領導者Shopify工作。