Каковы возвращаемые значения find_MAP в pymc3?Что означает вывод 'find_MAP' в pymc3?
Кажется, что переменные pymc3.Normal и pymc3.Uniform не считаются одинаковыми: для pymc3.Normal variables find_MAP возвращает значение, которое выглядит как максимальная апостериорная вероятность. Но для переменных pymc3.Uniform я получаю суффикс '_interval', добавленный к имени переменной, и я не нахожу где-либо в документе значение возвращаемого значения (что может показаться абсурдным, даже в пределах физических ограничений) ,
Например:
import numpy as np
import pymc3 as pm3
# create basic data such as obs = (x*0.95)**2+1.1+noise
x=np.arange(10)+1
obs=(x*0.95)**2+np.random.randn(10)+1.1
# fitting the model y=a(1*x)**2+a0 on data points
with pm3.Model() as model:
a0 = pm3.Uniform("a0",0,5)
a1 = pm3.Normal("a1",mu=1,sd=1)
a2 = pm3.Deterministic('a2',(x*a1)**2+a0)
hypothesis = pm3.Normal('hypothesis', mu=a2, sd=0.1, observed=obs)
start = pm3.find_MAP()
print('start: ',start)
возвращается:
Optimization terminated successfully.
Current function value: 570.382509
Iterations: 13
Function evaluations: 17
Gradient evaluations: 17
start: {'a1': array(0.9461006484031161), 'a0_interval_': array(-1.0812715249577414)}
thx! это должно быть четко указано в документе ... большой вопрос. –
Согласен @ Стефан. PyMC3 имеет кучу функциональности, которая не является официальной, документированной частью API библиотеки. Я думаю, что авторы часто рефакторизуют, что они не уделяют первостепенное внимание современным документам. Если вам нравится мой ответ, не могли бы вы «принять» его? Благодаря! – bsmith89