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.