Python Scikit Learn GMM 结果与 R Mclust 不一致
Posted
技术标签:
【中文标题】Python Scikit Learn GMM 结果与 R Mclust 不一致【英文标题】:Python Scikit Learn GMM results inconsistent with R Mclust 【发布时间】:2015-02-04 23:26:09 【问题描述】:我正在尝试在 R 中复制 MClust 的 Scikit Learn GMM 中的结果。使用这些数据,我得到的结果在各个包中是不同的。我在mixture.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
【问题讨论】:
【参考方案1】:设置 min_covar=0 使其按您的需要工作。
gmm = mixture.GMM(n_components=3,n_iter=1000,covariance_type='full',min_covar=0)
【讨论】:
以上是关于Python Scikit Learn GMM 结果与 R Mclust 不一致的主要内容,如果未能解决你的问题,请参考以下文章
BIC 使用来自 scikit-learn 的 GaussianMixture 过度拟合图像分割模型中的组件数量