sklearn mixture.GMM in python using univariate GMM

时间:2018-04-05 15:19:05

标签: python r scikit-learn gmm mclust

在R中,mclust有一个参数&#39; modelNames&#39;您可以在哪里定义要实施的模型。我希望在python中的mixture.GMM下的mclust中进行单变量建模,也是modelNames <- 'V'。但是,我发现我唯一可以调整的是covariance_type。尽管如此,当我在mixture.GMM下使用R和sklearn运行相同的数据时,尽管安装了相同数量的组件,但我得到了不同的拟合。我可以在mixture.GMM中更改哪些内容表明我使用的是单变量变量?

mclust代码:

function(x){Mclust(ma78[x,],G=2,modelNames="V",verbose=FALSE)}

GMM代码:

gmm = GMM(n_components = 2).fit(data)

1 个答案:

答案 0 :(得分:0)

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

使用sklearn,它们似乎是covariance_type = "tied""full"。对于可变高斯混合模型,可能就是这样的东西

gmm = mixture.GaussianMixture(n_components = 2, covariance_type='full').fit(data)

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