Ответ 1
Для представления предыдущего вам нужен экземпляр класса Stochastic, который имеет два основных атрибута:
value : the variable current value
logp : the log probability of the variable current value given the values of its parents
Вы можете инициализировать предыдущее имя используемого вами дистрибутива.
Чтобы представить вероятность, вам нужен так называемый Data Stochastic. То есть экземпляр класса Stochastic, флаг observed
которого установлен в 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])
Мы можем запустить простую логическую регрессию со следующим:
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())
Большая часть вышла из Chris Fonnesbeck iPython notebook здесь.