Първи стъпки с PYMC за линейна регресия

Мислех да започна със следния пример: http://www.databozo.com/2014/01/17/Exploring_PyMC3.html

Но когато следвам примера точно с помощта на pymc 2.3, получавам изход и казвам, че API е променен UserWarning: Синтаксисът MCMC() е остарял. Моля, предайте възлите изрично чрез M = MCMC(вход). „Синтаксисът MCMC() е отхвърлен. Моля, предайте възлите изрично чрез M = MCMC(вход).'), но нямам добра идея как да променя примера, за да предоставя точно какво на функцията на модела и как да направя с клаузата "с"?

Въпросният код е:

%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