我试图在Scikit中复制结果在R中学习MClust的GMM。根据数据,我得到的结果在各个包中是不同的。我在混合物中尝试了不同的协方差结构.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
答案 0 :(得分:2)
设置 min_covar = 0可以根据需要使用。
gmm = mixture.GMM(n_components=3,n_iter=1000,covariance_type='full',min_covar=0)