首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修正ValueError在sklearn.mixture.GaussianMixture拟合GMM中的应用?

如何修正ValueError在sklearn.mixture.GaussianMixture拟合GMM中的应用?
EN

Stack Overflow用户
提问于 2018-01-21 18:09:13
回答 1查看 4K关注 0票数 3

我试图使用GaussianMixture模型进行图像分割,所以我使用了两个组件,协方差矩阵type=“满”,并尝试运行使用Spyder3.6,这是附带的anaconda。下面是代码:

代码语言:javascript
复制
from scipy.misc import imread, imshow
from sklearn.mixture import GaussianMixture as GMM
import graph_tool.all as gt
from graph_tool.all import *

X=imread('2.jpg')
old=X.shape
X=X.reshape(-1,3)
gmm=GMM(covariance_type='full', n_components=2)
gmm.fit(X)
clusters=gmm.predict(X)
clusters=clusters.reshape(old[0],old[1])

但它显示了ValueError和正定的例外,我不知道为什么?这是错误的痕迹。

`

回溯(最近一次调用): 文件"/home/madhur/anaconda3/lib/python3.6/site-packages/sklearn/mixture/gaussian_mixture.py",第318行,在_compute_precision_cholesky cov_chol =linalg.cholesky(协方差,lower=True)中 文件"/home/madhur/anaconda3/lib/python3.6/site-packages/scipy/linalg/decomp_cholesky.py",第81行,在cholesky check_finite=check_finite中) 文件"/home/madhur/anaconda3/lib/python3.6/site-packages/scipy/linalg/decomp_cholesky.py",第30行,在_cholesky中 提高LinAlgError(“%d-引导未成年人不确定”% info) numpy.linalg.linalg.LinAlgError:第2代导语小调未正定 在处理上述异常的过程中,发生了另一个异常: 回溯(最近一次调用): 文件"/home/madhur/Desktop/Project/graphcutmaterials/test.py",第19行,在gmm.fit(X)中 文件"/home/madhur/anaconda3/lib/python3.6/site-packages/sklearn/mixture/base.py",第207行,在fit self._initialize_parameters(X,random_state)中 文件"/home/madhur/anaconda3/lib/python3.6/site-packages/sklearn/mixture/base.py",第157行,在_initialize_parameters self._initialize(X,resp)中 文件"/home/madhur/anaconda3/lib/python3.6/site-packages/sklearn/mixture/gaussian_mixture.py",第643行,_initialize协方差,self.covariance_type) 文件"/home/madhur/anaconda3/lib/python3.6/site-packages/sklearn/mixture/gaussian_mixture.py",第320行,在_compute_precision_cholesky中 raise (Estimate_precision_error_message) ValueError:拟合混合模型失败是因为某些组件的经验协方差定义不明确(例如,由单例或塌陷样本引起)。尝试减少组件的数量,或增加reg_covar。

`

EN

回答 1

Stack Overflow用户

发布于 2020-02-18 04:28:07

我认为原因已经在ErrorInformation中提出了,这是因为“因为某些组件的经验协方差定义不明确(例如,由单例或塌陷样本引起的)”。因为您将组件的数量设置为2,所以不能减少它,所以我建议您将参数"reg_covar“增加到1e-5 (默认为1e-6)。

有关GMM参数的更多信息,请参见:https://scikit-learn.org/stable/modules/generated/sklearn.mixture.GaussianMixture.html

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48370066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档