首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用单变量GMM在python中学习mixture.GMM

使用单变量GMM在python中学习mixture.GMM
EN

Stack Overflow用户
提问于 2018-04-05 23:19:05
回答 2查看 446关注 0票数 1

在R中,mclust有一个参数'modelNames‘,您可以在其中定义要实现模型。我希望做一个单变量建模,它也是在python中mixture.GMM下mclust中的modelNames <- 'V'。然而,我发现唯一可以调整的就是covariance_type。尽管如此,当我在sklearn下使用R和mixture.GMM运行相同的数据时,我得到了不同的拟合,尽管拟合的组件数量相同。我可以在mixture.GMM中更改什么来表明我使用的是单变量方差?

mclust代码:

代码语言:javascript
复制
function(x){Mclust(ma78[x,],G=2,modelNames="V",verbose=FALSE)}

GMM代码:

代码语言:javascript
复制
gmm = GMM(n_components = 2).fit(data)
EN

回答 2

Stack Overflow用户

发布于 2018-04-05 23:31:10

对于单变量数据,协方差可以是相等的或唯一的(变量)。对于Mclust,这些选项分别是modelNames = "E""V"

sklearn中,它们看起来像是covariance_type = "tied""full"。对于可变高斯混合模型,可能是这样的。

代码语言:javascript
复制
gmm = mixture.GaussianMixture(n_components = 2, covariance_type='full').fit(data)

即使单独使用Mclustsklearn,也可能会出现这样的情况,即不同的运行可能不会获得相同的参数值-这是因为估计值可能取决于初始值。避免这种情况的一种方法是使用更多的启动次数,如果有这样的选项的话。

票数 0
EN

Stack Overflow用户

发布于 2021-05-21 17:55:12

stats.stackexchange上找到了答案。您唯一需要做的就是在将数据data.reshape(-1, 1)传递到sklearn.mixture.GaussianMixture之前对其进行整形

安德烈亚斯

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49675999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档