首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将多条高斯曲线拟合成直方图的sklearn.mixture.GMM算法误差

将多条高斯曲线拟合成直方图的sklearn.mixture.GMM算法误差
EN

Stack Overflow用户
提问于 2015-09-22 16:16:47
回答 1查看 1.1K关注 0票数 1

我使用sklearn.mixture.GMM将两条高斯曲线拟合成一组数据,然后用数据直方图覆盖它(dat扰动是2条高斯曲线的混合物)。

我的数据是浮点数的列表,下面是我使用的代码行:

代码语言:javascript
复制
clf = mixture.GMM(n_components=1, covariance_type='diag')
clf.fit(listOffValues)  

如果我将n_components设置为1,则会得到以下错误:

“(或增加n_init)或检查退化数据。RuntimeError: EM算法无法计算给定初始参数的有效似然。尝试不同的init参数(或增加n_init)或检查是否有退化的数据.

如果我将n_components用于2,错误是:

(self.n_components,X.shape)) ValueError: GMM估计有2个分量,但只有1个样本,

对于第一个错误,我尝试更改GMM的所有init参数,但没有产生任何区别。

尝试了一组随机数,代码运行得非常好。我想不出这个问题可能是什么。

是否存在我忽略的实现问题?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2015-12-15 09:09:27

如果我对你的理解是正确的--你想要用高斯来为你提供数据分布,而且你每个元素只有一个特性。比你应该把你的向量重塑成一个列向量:

代码语言:javascript
复制
listOffValues = np.reshape(listOffValues, (-1, 1))

否则,如果您的listOffValues对应于一些曲线,您想要用几个高斯曲线来拟合它,那么您应该使用适合。请参阅Python的高斯拟合

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

https://stackoverflow.com/questions/32721865

复制
相关文章

相似问题

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