Начало работы с PYMC для линейной регрессии

Думаю, я начну с этого примера: http://www.databozo.com/2014/01/17/Exploring_PyMC3.html

Но когда я точно следую примеру, используя pymc 2.3, я получаю выход и говорю, что API изменился UserWarning: синтаксис MCMC() устарел. Пожалуйста, передайте узлы явно через M = MCMC(input). 'Синтаксис MCMC() устарел. Пожалуйста, передайте узлы явно через M = MCMC(input).'), но у меня нет хорошей идеи, как изменить пример, чтобы точно указать, что для функции модели и что делать с предложением «с»?

Рассматриваемый код:

%pylab inline
import scipy
import numpy as np
x = np.array(range(0,50))
y = np.random.uniform(low=0.0, high=40.0, size=200)
y = map((lambda a: a[0] + a[1]), zip(x,y))

import matplotlib.pyplot as plt
plt.scatter(x,y)

Вышеуказанный генератор данных работает нормально

import pymc as pm
import numpy as np

trace = None
with pm.Model() as model:         <<<<<<indicated as the error line
    alpha = pm.Normal('alpha', mu=0, sd=20)
    beta = pm.Normal('beta', mu=0, sd=20)
    sigma = pm.Uniform('sigma', lower=0, upper=20)

    y_est = alpha + beta * x

    likelihood = pm.Normal('y', mu=y_est, sd=sigma, observed=y)

    start = pm.find_MAP()
    step = pm.NUTS(state=start)
    trace = pm.sample(2000, step, start=start, progressbar=False)

    pm.traceplot(trace);

person dartdog    schedule 12.02.2014    source источник


Ответы (1)


Автор пакета @fonnesbeck сообщил мне, что мне нужна версия 3 для разработки с Github, а не версия pypi 2.3. Установил это через github, и все готово. Открытый исходный код — это здорово!

person dartdog    schedule 12.02.2014