首页 > 解决方案 > PYMC3 / 一般混合物的第一步

问题描述

我熟悉 Sklearn Gaussian Mixture,并且很难在 Pymc3 上取得进展。使用以下 pymc3 代码,对 1 个变量 X 和 2 个 W=[0.2,0.8] 的混合使用时间序列

with pm.Model() as model:
  w = pm.Dirichlet("w", np.ones_like(W))
  mu = pm.Normal("mu", -0.05, 0.06, shape=W.size)
  sigma=pm.Gamma('vol',0.0001,0.03,shape=W.size)

  x_obs = pm.NormalMixture("x_obs", w, mu,sigma, observed=x)

接着

with model:
trace = pm.sample(1000, n_init=2000, tune=1000)

# sample posterior predictive samples
ppc_trace = pm.sample_posterior_predictive(trace, var_names=["x_obs"])

# Get an arviz inference object
idata_pymc3 = az.from_pymc3(trace, posterior_predictive=ppc_trace)

如何获得组件的时间序列(哪个分布?),组件概率,均值,西格玛?

标签: pymc3mixture

解决方案


推荐阅读