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