PyMC
来自维基百科,自由的百科全书
PyMC(曾叫做PyMC3[1])是一个Python包,用于贝叶斯统计建模和概率机器学习,它聚焦于高级马尔可夫链蒙特卡洛法和变分拟合算法[2][3][4]。
原作者 | PyMC开发团队 |
---|---|
首次发布 | 2013年5月4日 |
当前版本 | 5.16.2(2024年7月11日 | )
源代码库 | https://github.com/pymc-devs/pymc |
编程语言 | Python |
操作系统 | 类Unix, Mac OS X, Microsoft Windows |
平台 | Intel x86 – 32-bit, x64 |
类型 | 统计包 |
许可协议 | Apache License, Version 2.0 |
网站 | www |
概述
PyMC曾经叫做PyMC3,不同于早先的使用Fortran扩展进行计算的PyMC2,它依靠Theano来进行自动微分、计算优化和动态C语言编译[3][5]。从版本3.8开始PyMC依据ArviZ来进行数据可视化和贝叶斯推断的探索分析[6]。PyMC和Stan是两个最流行的概率编程工具[7]。
PyMC是开源项目,由社区开发并在财务上得到NumFocus赞助[8]。PyMC已经在很多领域中被用于解决推断问题,包括天文学[9][10]、流行病学[11][12]、分子生物学[13]、晶体学[14][15]、化学[16]、生态学[17][18]和心理学[19]。
在Theano于2017年宣布计划停止开发之后[20],PyMC团队曾评估采用TensorFlow Probability[21]作为计算后端[22],但是在2020年接管Theano的开发[23]。在2021年1月绝大部分的Theano代码基被重新建造,并增加了通过JAX和Numba的编译,修订后的这个计算后端以新名字Aesara发行。PyMC团队在2021年6月将PyMC3更名为PyMC[1]。2022年11月28日,PyMC团队宣布采用从Aesara计划分叉出PyTensor[24]。
推论引擎
PyMC实现了不基于梯度的和基于梯度的马尔可夫链蒙特卡洛(MCMC)算法用于贝叶斯推断和随机(Stochastic),基于梯度的变分贝叶斯方法用于近似贝叶斯推断。
- MCMC算法:
- No-U-Turn采样(NUTS)[25],是哈密顿蒙特卡洛的变体和PyMC3用于连续变量的缺省引擎。
- 梅特罗波利斯-黑斯廷斯算法,是PyMC3用于离散变量的缺省引擎。
- 顺序蒙特卡洛算法。
- 变分推断算法:
- 黑箱变分推断[26]。
参见
- Stan是用C++编写统计推论的概率编程语言。
引用
延伸阅读
外部链接
Wikiwand - on
Seamless Wikipedia browsing. On steroids.