PyMC(曾叫做PyMC3。
概述
PyMC曾经叫做PyMC3,不同于早先的使用Fortran扩展进行计算的PyMC2,它依靠Theano来进行自动微分、计算优化和动态C语言编译。从版本3.8开始PyMC依据来进行数据可视化和贝叶斯推断的。PyMC和是两个最流行的概率编程工具。
PyMC是开源项目,由社区开发并在财务上得到NumFocus赞助。PyMC已经在很多领域中被用于解决推断问题,包括天文学、流行病学、分子生物学、晶体学、化学、生态学和心理学。
在Theano于2017年宣布计划停止开发之后,PyMC团队曾评估采用TensorFlow Probability作为计算后端,但是在2020年接管Theano的开发。在2021年1月绝大部份的Theano代码基被重新建造,并增加了通过JAX和Numba的编译,修订后的这个计算后端以新名字Aesara发行。PyMC团队在2021年6月将PyMC3更名为PyMC。2022年11月28日,PyMC团队宣布采用从Aesara计划分叉出PyTensor。
推论引擎
PyMC实现了不基于梯度的和基于梯度的马尔可夫链蒙特卡洛(MCMC)算法用于贝叶斯推断和随机(),基于梯度的变分贝叶斯方法用于近似贝叶斯推断。
- MCMC算法:
** No-U-Turn采样(NUTS),是的变体和PyMC3用于连续变量的缺省引擎。
** 梅特罗波利斯-黑斯廷斯算法,是PyMC3用于离散变量的缺省引擎。
** 顺序蒙特卡洛算法。
- 变分推断算法:
** 黑箱变分推断。
参见
*是用C++编写统计推论的概率编程语言。
引用
延伸阅读
- [https://camdavidsonpilon.github.io/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/ Probabilistic Programming and Bayesian Methods for Hackers]
- [http://people.duke.edu/~ccc14/sta-663-2016/16C_PyMC3.html Computational Statistics in Python]
外部链接
- [https://www.pymc.io/welcome.html PyMC web site]
- [https://github.com/pymc-devs/pymc PyMC source] , a Git repository hosted on GitHub
- [https://github.com/pymc-devs/symbolic-pymc Symbolic PyMC] is an experimental set of tools that facilitate sophisticated symbolic manipulation of PyMC models
评论 (0)