我正在尝试复制Scikit-Learn-GMM中R中MClust的结果。根据这些数据,我得到的结果在不同的软件包中是不同的。我试过mixed.GMM中不同的协方差结构。如何使Python版本匹配?简单的例子是可以工作的,但有了这个方差结构,我不能让它工作。
Python代码:

gmm = mixture.GMM(n_components=3,n_iter=1000,covariance_type='full')
gmm.fit(data)
gmm.means_
   array([[ 0.08603919],
          [ 0.08590469],
          [ 0.08617066]])
gmm.covars_
   array([[ 0.00122368],
          [ 0.0012216 ],
          [ 0.00122569]])

R代码
res<-Mclust(Stamp$thickness)
res$param$mean
0.07215458 0.07935341 0.09919740
res$param$variance$sigmasq
4.814927e-06 3.097694e-06 1.884615e-04

最佳答案

设置min_covar=0使其按需工作。

gmm = mixture.GMM(n_components=3,n_iter=1000,covariance_type='full',min_covar=0)

关于python - Python Scikit学习GMM结果与R Mclust不一致,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27338816/

10-10 23:57