为了表示先验,您需要一个 Stochastic 类的实例,它有两个主要属性:
value : the variable's current value
logp : the log probability of the variable's current value given the values of its parents
Run Code Online (Sandbox Code Playgroud)
您可以使用您正在使用的发行版的名称来初始化先验。
为了表示可能性,您需要所谓的数据随机变量。即,observed标志设置为的 Stochastic 类的实例True。该变量的值无法更改,也不会被采样。同样,您可以使用您正在使用的分布的名称来初始化可能性(但不要忘记将标志设置observed为True)。
假设我们有以下设置:
import pymc as pm
import numpy as np
import theano.tensor as t
x = np.array([1,2,3,4,5,6])
y = np.array([0,1,0,1,1,1])
Run Code Online (Sandbox Code Playgroud)
我们可以使用以下命令运行简单的逻辑回归:
with pm.Model() as model:
#Priors
b0 = pm.Normal("b0", mu=0, tau=1e-6)
b1 = pm.Normal("b1", mu=0, tau=1e-6)
#Likelihood
z = b0 + b1 * x
yhat = pm.Bernoulli("yhat", 1 / (1 + t.exp(-z)), observed=y)
# Sample from the posterior
trace = pm.sample(10000, pm.Metropolis())
Run Code Online (Sandbox Code Playgroud)
以上大部分内容来自 Chris Fonnesbeck 的 iPython笔记本。