pymc3中find_MAP的返回值是什麼?pymc3中的'find_MAP'輸出意味着什麼?
看來,pymc3.Normal和pymc3.Uniform變量不認爲是相同的:對於pymc3.Normal變量,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!這應該在文檔中明確說明...大問題。 –
同意@Stéphane。 PyMC3有許多功能,似乎並不是官方的,也是圖書館API的一部分。我認爲作者經常重構,以至於他們沒有優先考慮最新的文檔。 如果你喜歡我的回答,請問「接受」嗎?謝謝! – bsmith89