我正在尝试在R中MClust的Scikit Learn GMM中复制结果。有了这些数据,我得到的结果在软件包中是不同的。我已经尝试了混合物中的不同协方差结构。GMM.如何让 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)