gpt4 book ai didi

python - 拟合多峰分布

转载 作者:太空宇宙 更新时间:2023-11-04 00:33:43 24 4
gpt4 key购买 nike

假设我们有两个正态分布的线性组合。我认为人们会将结果称为 multimodal distribution .

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm

ls = np.linspace(0, 60, 1000)

distribution = norm.pdf(ls, 0, 5) + norm.pdf(ls, 20, 10)
distribution = (distribution * 1000).astype(int)
distribution = distribution/distribution.sum()

plt.plot(ls, distribution)

enter image description here

如您所见,我们有两个参数为 (mu1 = 0, s1 = 5)(mu2 = 20, s2 = 10)。但是当然,我们通常事先不知道这些参数。

我想知道如何估计或拟合这些参数(mus 和 sigmas)。我相信有一些方法可以做到这一点,但我还没有找到。

最佳答案

您描述的问题是Gaussian Mixture model 的特例.为了能够估计这些参数,您需要有一些样本。如果你没有 sample 但你得到了曲线,你可以根据曲线制作一些 sample 。然后你可以使用Expectation–maximization algorithm来估计参数。 Scikit-learn 有一个方法可以让你做到这一点:sklearn.mixture.GaussianMixture .您只需要提供您的样本、组件数量 (n_components)(在您的情况下为 2)和协方差类型(在您的情况下为 full),如您没有对协方差矩阵的先验假设。

关于python - 拟合多峰分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44934808/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com