正如标题所说,我希望将高斯混合模型拟合到给定的PDF。所以,假设我知道我的数据的概率密度分布,让我们说它是这样的离散化:
import numpy as np
import matplotlib.pyplot as plt
def gaussian(gx, amp, mu, sig):
return amp * np.exp(-np.power(gx - mu, 2.) / (2 * np.power(sig, 2.)))
x = np.linspace(-10, 10, 1000)
g1 = gaussian(gx=x, amp=2, mu=-3, sig=1)
g2 = gaussian(gx=x, amp=1, mu=4, sig=0.5)
pdf = (g1 + g2) / np.nansum(g1 + g2)
plt.scatter(x, pdf)
plt.show()
这给了我们一个很好的pdf,带有两个分离的高斯峰。现在我只想将高斯混合模型拟合到pdf中。我理解scikit的方式是你不适合模型到pdf,而是数据样本。因此,原则上我必须采用pdf,从中抽取样本然后拟合高斯混合模型,但我已经有了pdf,只想用高斯混合物描述它......
任何想法?
答案 0 :(得分:0)
我想,您需要一个curve_fit
,而不是sklearn GMM。应该做的一样好。但是,如果您有2个以上的高斯分布,并且它们之间没有很好地分开,则将需要很好的初始参数猜测。