python与stan的接口,一个用于贝叶斯推理的包

pystan的Python项目详细描述


Stan logo

pypi versiontravis-ci build statusappveyor-ci build statuszenodo citation DOI

pystan为stan提供了一个python接口,一个用于贝叶斯推理的包 使用不掉头取样器,哈密顿蒙特卡罗的一种变体。

有关Stan及其建模语言的更多信息, 请参阅http://mc-stan.org/上的STAN用户指南和参考手册。

详细的安装说明

有关详细的安装说明,请参见 doc/installation_beginner.md文件。

快速安装(Linux和MacOS)

NumPyCython (0.22或更高版本)是必需的。matplotlib 是可选的。

pystan和所需的包可以使用pipPython Package Index安装。

pip install pystan

或者,如果cython(0.22或更高版本)和numpy已经 pystan可以通过以下命令从源代码安装

git clone --recursive https://github.com/stan-dev/pystan.git
cd pystan
python setup.py install

如果在从源代码处编译后遇到ImportError,请尝试更改 在尝试import pystan之前离开源目录。在Linux和 os x cd /tmp将起作用。

示例

import pystan
import numpy as np
import matplotlib.pyplot as plt

schools_code = """
data {
    int<lower=0> J; // number of schools
    real y[J]; // estimated treatment effects
    real<lower=0> sigma[J]; // s.e. of effect estimates
}
parameters {
    real mu;
    real<lower=0> tau;
    real eta[J];
}
transformed parameters {
    real theta[J];
    for (j in 1:J)
        theta[j] = mu + tau * eta[j];
}
model {
    eta ~ normal(0, 1);
    y ~ normal(theta, sigma);
}
"""

schools_dat = {'J': 8,
               'y': [28,  8, -3,  7, -1,  1, 18, 12],
               'sigma': [15, 10, 16, 11,  9, 11, 10, 18]}

sm = pystan.StanModel(model_code=schools_code)
fit = sm.sampling(data=schools_dat, iter=1000, chains=4)

print(fit)

eta = fit.extract(permuted=True)['eta']
np.mean(eta, axis=0)

# if matplotlib is installed (optional, not required), a visual summary and
# traceplot are available
fit.plot()
plt.show()

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么需要ScheduledExecutorService。shutdown()使用我100%的CPU吗?   java如何加载应用程序。spring框架中的属性?   java立即绘制JFrame   java定时器不允许用户进行编辑   java如何通过在React应用程序中提交值来加载数据   java在Multimultiul maven项目中集成特性(文件)存储在哪里?   java Arjuna JTA事务意外回滚   java禁用edittext 安卓,在视图中使用if-else   java中的错误。图书馆从Matlab调用使用Cplex的Java函数时的路径   Java中的浮点计算错误   Java中C#IEnumerable的等价物是什么?是可协变的,不是可协变的   最终播放商店用户可见的java Apk名称