Python 如何使用sklearn将GMM拟合到一维高斯图?

Python 如何使用sklearn将GMM拟合到一维高斯图?,python,scikit-learn,Python,Scikit Learn,我意识到有几篇文章演示了如何使用sklearn(以及,仅举几例)将GMM拟合到一维高斯分布。然而,在所有这些情况下,数据都以单点的形式呈现,其中分布为高斯分布。在我的例子中,我基本上有一个频率表(我正在处理光谱数据),其中的分布是高斯分布,但单个点是未知的 我的分布(即我试图拟合的数据)如下所示: 我想用GMM去卷积2个初始高斯分布,它们组成了这个峰值 到目前为止,我已经尝试了以下方法(假设我的数据是一个200x2数组,位置在一列中,AFU在第二列中): 我试着看看我是否能将这个峰值拟合为一个高

我意识到有几篇文章演示了如何使用sklearn(以及,仅举几例)将GMM拟合到一维高斯分布。然而,在所有这些情况下,数据都以单点的形式呈现,其中分布为高斯分布。在我的例子中,我基本上有一个频率表(我正在处理光谱数据),其中的分布是高斯分布,但单个点是未知的

我的分布(即我试图拟合的数据)如下所示:

我想用GMM去卷积2个初始高斯分布,它们组成了这个峰值

到目前为止,我已经尝试了以下方法(假设我的数据是一个200x2数组,位置在一列中,AFU在第二列中):

我试着看看我是否能将这个峰值拟合为一个高斯:

g = gengmm(1, 100) 
g.fit(data) 
然而,我得到的均值和协方差并不能很好地定义我的数据(值得注意的是,高斯分布的均值为127.5,这不是用1分量GMM恢复的)

有没有更简单的方法?(我意识到我可以使用最小二乘拟合来恢复初始高斯分布,但我再次尝试最终使用它来确定构成最终高斯分布的两个基本高斯分布。)


谢谢

澄清一下,你在尝试拟合分布的PDF,而不是从分布中抽取的点的样本,对吗?是的,基本上是正确的。(由于我正在进行的实验,真正的答案有点微妙,但你可以将其建模为PDF。)澄清一下,你试图拟合分布的PDF,而不是从分布中抽取的点样本,对吗?是的,基本上是正确的。(由于我正在进行的实验,真正的答案有点微妙,但你可以将其建模为PDF。)
g = gengmm(1, 100) 
g.fit(data)