PYMC3混合物模型:有助于理解多变量模型

詹姆斯·斯特林

假设我有一个带有4个变量的数据框。我想看看是否可以在所有变量上生成伽马混合的后验,目的是为每个观察值找到聚类。我猜我将需要某种多元伽马分布吗?但是我该怎么办呢?

这是一些带有一个参数的pymc3代码示例,查找两种伽马的混合体(我选择了任意参数):

with pm.Model() as m:
     p = pm.Dirichlet('p', a = np.ones(2))

     alpha = pm.Gamma('means',alpha = 1, beta = 1, shape = 2)
     beta = pm.Gamma('means',alpha = 1, beta = 1, shape = 2)

     x = pm.Gammma('x', alpha, beta)

     comp_dist = pm.Gamma.dist(means, scale, shape = (2,))
     like = pm.Mixture('y', w = p,comp_dists = comp_dist, observed = data)

     trace = pm.sample(1000)

所以我的问题是,如何将这个基本示例扩展到多个变量?我假设我需要定义变量之间的关系以某种方式在模型中进行编码?我觉得自己了解混合建模的基础知识,但同时又觉得自己缺少一些基本知识。

梅尔

这是多维案例的工作方式:

J = 4 # num dimensions
K = 2 # num clusters

with pm.Model() as m:
    p = pm.Dirichlet('p', a=np.ones(K))

    alpha = pm.Gamma('alpha', alpha=1, beta=1, shape=(J,K))
    beta  = pm.Gamma('beta',  alpha=1, beta=1, shape=(J,K))
    gamma = pm.Gamma.dist(alpha=alpha, beta=beta, shape=(J,K))

    like = pm.Mixture('y', w=p, comp_dists=gamma, observed=X, shape=J)

    trace = pm.sample(1000)

X.shape应该在哪里(N,J)


关于对称破坏的注意事项

困难的部分将是解决可识别性问题,但是我认为这超出了问题的范围。也许看看GMM教程如何使用该pm.Potential函数打破对称性我希望像alpha和的高度相关的似然函数参数化beta会加剧此问题,因此也许考虑切换到musigma参数化。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将混合物模型移植到pymc3

来自分类Dev

PyMC3高斯混合模型

来自分类Dev

Pymc3中的分类混合模型

来自分类Dev

pymc3:具有多个混淆变量的层次模型

来自分类Dev

AsyncController方法声明,有助于理解语法

来自分类Dev

数组as3冲突有助于编码

来自分类Dev

它有助于复制原始数据以便为构建模型提供更多数据吗?

来自分类Dev

有助于Google翻译的API

来自分类Dev

C指针,转换,指向函数的指针,有助于理解复杂的指针

来自分类Dev

AngularJS:一些有助于理解服务/工厂的信息

来自分类Dev

无法理解有助于异步显示的BufferQueue同步逻辑

来自分类Dev

算法中的行成本有助于我理解这一点

来自分类Dev

十进制到十六进制有助于理解

来自分类Dev

如何在Django Rest Framework(DRF)中创建有助于OneToOne关系的两个模型的新实例?

来自分类Dev

PyMC3中的模型比较

来自分类Dev

使用 pymc3 拟合 lomax 模型

来自分类Dev

关闭选项卡/窗口之前删除变量是否有助于释放内存?

来自分类Dev

sqlite3数据库有助于提高性能和设计

来自分类常见问题

索引是否有助于sql选择排序性能?

来自分类Dev

基本的JavaScript对象结构有助于访问属性

来自分类Dev

线程有助于提高Java的效率吗?

来自分类Dev

TSQL查询有助于结构化结果

来自分类Dev

流浪汉如何有助于发展

来自分类Dev

与流有助于消除从文件扩展名

来自分类Dev

索引是否有助于sql选择排序性能?

来自分类Dev

哪些属性有助于LCD面板的质量?

来自分类Dev

合并有助于SQL中聚合的值

来自分类Dev

TSQL查询有助于结构化结果

来自分类Dev

Eclipse内容有助于Gradle依赖性