标签: bayesian

从 ArviZ 的 `from_pymc3` 得到 `AttributeError`

我正在通过书本学习贝叶斯推理Bayesian Analysis with Python。但是,在使用时plot_ppc,我收到AttributeError了警告

\n

/usr/local/Caskroom/miniconda/base/envs/kaggle/lib/python3.9/site-packages/pymc3/sampling.py:1689:UserWarning:样本参数小于 nchains 乘以 ndraws,一些绘制和/或链可能不会在返回的后验预测样本中表示\nwarnings.warn(

\n

模型是

\n
shift = pd.read_csv(\'../data/chemical_shifts.csv\')\n\nwith pm.Model() as model_g:\n    \xce\xbc = pm.Uniform(\'\xce\xbc\', lower=40, upper=70)\n    \xcf\x83 = pm.HalfNormal(\'\xcf\x83\', sd=10)\n    y = pm.Normal(\'y\', mu=\xce\xbc, sd=\xcf\x83, observed=shift)\n    trace_g = pm.sample(1000, return_inferencedata=True)\n
Run Code Online (Sandbox Code Playgroud)\n

如果我使用以下代码

\n
with model_g:\n    y_pred_g = pm.sample_posterior_predictive(trace_g, 100, random_seed=123)\n    data_ppc = az.from_pymc3(trace_g.posterior, posterior_predictive=y_pred_g) # \'Dataset\' object has no attribute \'report\'\n
Run Code Online (Sandbox Code Playgroud)\n

我得到“数据集”对象没有属性“报告”。

\n

如果我使用以下代码

\n
with model_g:\n    y_pred_g = pm.sample_posterior_predictive(trace_g, 100, random_seed=123)\n    data_ppc = az.from_pymc3(trace_g, posterior_predictive=y_pred_g) …
Run Code Online (Sandbox Code Playgroud)

python bayesian pymc3 arviz

1
推荐指数
1
解决办法
1336
查看次数

贝叶斯网络与模糊逻辑

谁能给我一个贝叶斯网络和模糊逻辑用于入侵检测的例子?

我正在努力弄清楚如何使用它.还有任何代码吗?

多谢你们.

matlab bayesian bayesian-networks fuzzy-logic neural-network

0
推荐指数
1
解决办法
1268
查看次数

"Winbugs中节点的多重定义"错误

好吧,我只是重写我的代码.现在的问题是当我编译它时,我得到"节点a的多重定义"的错误.有谁知道我的代码有什么问题.我为模型创建了变量a,b和c,没有很多常量.

  model{



  for(i in 1:n){


            a <- (k[1] + step(s1[i]-.9)*k[2] + step(s1[i]*.5-.9)*k[3]) 
            b <- (r[1] + step(s2[i]-.9)*r[2] + step(s2[i]*.5-.9)*r[3])
            c <- (s[1] + step(s3[i]-.9)*s[2] + step(s3[i]*.5-.9)*s[3])


    dummy[i] <- 0

      dummy[i] ~ dloglik(logLike[i])

      # This is the log transformation of the 3-variate poisson 

      logLike[i] <- -theta12[i] + a*log(theta12[i]) - logfact(a) -theta13[i] - b*log(theta13[i]) - logfact(b)-theta23[i] - c*log(theta23[i]) - logfact(c)-theta1[i] + (y1[i]-a-b)*log(theta1[i]) + logfact(y1[i]-a-b)-theta2[i] + (y2[i]-a-c)*log(theta2[i]) + logfact(y2[i]-a-c)-theta3[i] + (y3[i]-b-c)*log(theta3[i]) + logfact(y3[i]-b-c)





            log(theta1[i]) <- alpha1 + beta1*log(L[i])
            log(theta2[i]) <- alpha2 …
Run Code Online (Sandbox Code Playgroud)

bayesian poisson winbugs winbugs14

0
推荐指数
1
解决办法
5190
查看次数

贝叶斯R编程

binomial <- function(nmax = 100,        
   thr = 0.95,                               
   alpha = 1,
   beta = 1,
   p_true = 0.5,
   p_0 = 0.5){

   for(j in seq.int(nmax, 0)){
      if(pbeta(q = p_0, shape1 = alpha + j, shape2 = beta + nmax - j, lower.tail = FALSE) < thr){
         targetatnmax <- j + 1
    } else {
    print(

         break
      }
   }
result <- list(Success = Success, targeratnmax = targetatnmax)
return(result)
}
res = binomial(nmax,thr,alpha,beta,p_true,p_0)
res
Run Code Online (Sandbox Code Playgroud)

在我的计划中,我试图找到超过0.95 thr所需的成功次数.我试图使用if循环使用if else语句,但是当我运行它时,我没有得到我需要的值.我知道我的价值应该是59,但我似乎无法得到这个.我知道这些代码看起来非常混乱,但这只是因为我已经玩了好几个小时了.请任何帮助

if-statement r bayesian

0
推荐指数
1
解决办法
116
查看次数

在PyMC3中使用BetaBinomial

我有一张二进制结果计数表,我想拟合一个β二项式分布来估计$ \ alpha $和$ \ beta $参数,但是当我尝试以我的方式拟合/采样模型分布时却出错了针对其他情况:

import pymc3 as pm
import pandas as pd

df = pd.read_csv('~/data.csv', low_memory=False)
df = df[df.Clicks >= 0]

C0=df.C.values
I0=df.N.values
N0 = C0 + I0

with pm.Model() as model:
    C=pm.constant(C0)
    I=pm.constant(I0)
    C1=pm.constant(C0 + 1)
    I1=pm.constant(I0 + 1)
    N=pm.constant(N0)
    alpha = pm.Exponential('alpha', 1/(C0.sum()+1))
    beta = pm.Exponential('beta', 1/(I0.sum()+1))
    obs = pm.BetaBinomial('obs', alpha, beta, N, observed=C0)


with model:
    advi_fit = pm.variational.advi(n=int(1e4))
    trace1 = pm.variational.sample_vp(advi_fit, draws=int(1e4))

pm.traceplot(trace1[::10])

with model:
    step = pm.NUTS()
    #step = pm.Metropolis() # <== same …
Run Code Online (Sandbox Code Playgroud)

python bayesian pymc pymc3 data-science

0
推荐指数
1
解决办法
388
查看次数