python - PyMC3 高斯混合模型

标签 python bayesian mcmc pymc3

我一直在关注 PyMC3 的高斯混合模型示例:https://github.com/pymc-devs/pymc3/blob/master/pymc3/examples/gaussian_mixture_model.ipynb 并让它与人工数据集很好地协同工作。 enter image description here

我已经用真实的数据集试过了,我正在努力让它给出合理的结果: enter image description here

关于我应该缩小/扩大/更改哪些参数以获得更好的拟合度,有什么想法吗?痕迹似乎很稳定。这是我根据示例调整的模型片段:

model = pm.Model()
with model:
    # cluster sizes
    a = pm.constant(np.array([1., 1., 1.]))
    p = pm.Dirichlet('p', a=a, shape=k)
    # ensure all clusters have some points
    p_min_potential = pm.Potential('p_min_potential', tt.switch(tt.min(p) < .1, -np.inf, 0))


    # cluster centers
    means = pm.Normal('means', mu=[0, 1.5, 3], sd=1, shape=k)
    # break symmetry
    order_means_potential = pm.Potential('order_means_potential',
                                     tt.switch(means[1]-means[0] < 0, -np.inf, 0)
                                     + tt.switch(means[2]-means[1] < 0, -np.inf, 0))

    # measurement error
    sd = pm.Uniform('sd', lower=0, upper=2, shape=k)

    # latent cluster of each observation
    category = pm.Categorical('category', p=p, shape=ndata)

    # likelihood for each observed value
    points = pm.Normal('obs', mu=means[category], sd=sd[category], observed=data)

最佳答案

事实证明,这里有一篇关于这个主题的优秀博客文章: http://austinrochford.com/posts/2016-02-25-density-estimation-dpm.html

关于python - PyMC3 高斯混合模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35887647/

相关文章:

python - 为什么 C++ Armadillo 的某些特征向量符号与 Python 和 R 不同

bayesian - PyMC3 Sample() 函数不接受 "start"值来生成跟踪

algorithm - 加权平均值和评级

linux - 如何在 JAGS 中定义自定义分布?

python - 如何使用 sqlalchemy 中的关系更改父级?

python - 在pandas中查找两列中的关系值

python - 如何在HUE中调用FileBrowser

r - stan 中的多项式模型 - 如何拟合狄利克雷分布参数?

python - 为什么调和后的mcmc fit 转换不好?

mcmc - R - 使用 gibbs 的 RW metropolis 失败