当前位置: 首页 > 面试题库 >

拟合高斯函数

卫深
2023-03-14
问题内容

我有一个直方图(请参见下文),我试图找到均值和标准差以及适合于我的直方图的曲线的代码。我认为SciPy或matplotlib中有一些可以帮助您的东西,但是我尝试过的每个示例都不起作用。

import matplotlib.pyplot as plt
import numpy as np

with open('gau_b_g_s.csv') as f:
    v = np.loadtxt(f, delimiter= ',', dtype="float", skiprows=1, usecols=None)

fig, ax = plt.subplots()

plt.hist(v, bins=500, color='#7F38EC', histtype='step')

plt.title("Gaussian")
plt.axis([-1, 2, 0, 20000])

plt.show()

问题答案:

看一下将任意曲线拟合到数据的答案。基本上,您可以使用它scipy.optimize.curve_fit来使您想要的任何功能适合您的数据。下面的代码显示了如何使高斯拟合某些随机数据(此SciPy-User邮件列表帖子的贷方)。

import numpy
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt

# Define some test data which is close to Gaussian
data = numpy.random.normal(size=10000)

hist, bin_edges = numpy.histogram(data, density=True)
bin_centres = (bin_edges[:-1] + bin_edges[1:])/2

# Define model function to be used to fit to the data above:
def gauss(x, *p):
    A, mu, sigma = p
    return A*numpy.exp(-(x-mu)**2/(2.*sigma**2))

# p0 is the initial guess for the fitting coefficients (A, mu and sigma above)
p0 = [1., 0., 1.]

coeff, var_matrix = curve_fit(gauss, bin_centres, hist, p0=p0)

# Get the fitted curve
hist_fit = gauss(bin_centres, *coeff)

plt.plot(bin_centres, hist, label='Test data')
plt.plot(bin_centres, hist_fit, label='Fitted data')

# Finally, lets get the fitting parameters, i.e. the mean and standard deviation:
print 'Fitted mean = ', coeff[1]
print 'Fitted standard deviation = ', coeff[2]

plt.show()


 类似资料:
  • 1)概述 正太分布也叫高斯分布,正太分布的概率密度曲线也叫高斯分布概率曲线_。_ GaussianMixtureModel(混合高斯模型,GMM)。 聚类算法大多数通过相似度来判断,而相似度又大多采用欧式距离长短作为衡量依据。而GMM采用了新的判断依据:概率,即通过属于某一类的概率大小来判断最终的归属类别。 GMM的基本思想就是:任意形状的概率分布都可以用多个高斯分布函数去近似,也就是说GMM就是

  • 本文向大家介绍为什么高斯核能够拟合无穷维度相关面试题,主要包含被问及为什么高斯核能够拟合无穷维度时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 因为将泰勒展开式代入高斯核,将会得到一个无穷维度的映射。

  • 校验者: @why2lyj @Shao Y. 翻译者: @glassy sklearn.mixture 是一个应用高斯混合模型进行非监督学习的包,支持 diagonal,spherical,tied,full 四种协方差矩阵 (注:diagonal 指每个分量有各自不同对角协方差矩阵, spherical 指每个分量有各自不同的简单协方差矩阵, tied 指所有分量有相同的标准协方差矩阵, ful

  • 我需要一些关于如何使用ScalaMock在类内模拟高阶函数的帮助 正如您在上面的代码中所看到的,当您传入一个具有高阶函数的值时,被模拟的函数可以正常工作,但如果您在每个位置键入它,则不会正常工作。在我的用例中,我不能像在第二次测试中那样做 下面是关于用例的更多信息,但对回答这个问题并不完全必要 这是一个简化的示例,但我需要一种方法使前者工作。原因是(我会尽我最大的努力解释这一点)我有一个正在测试的

  •   现有的高斯模型有单高斯模型(SGM)和高斯混合模型(GMM)两种。从几何上讲,单高斯分布模型在二维空间上近似于椭圆,在三维空间上近似于椭球。 在很多情况下,属于同一类别的样本点并不满足“椭圆”分布的特性,所以我们需要引入混合高斯模型来解决这种情况。 1 单高斯模型   多维变量X服从高斯分布时,它的概率密度函数PDF定义如下:   在上述定义中,x是维数为D的样本向量,mu是模型期望,sigm

  • 我在scikit learn中使用fit函数进行分类培训。例如,在使用随机林时,通常使用以下类型的代码: 不幸的是,在使用Python 3时,我得到了以下错误: C:\Anaconda3\lib\site-pack\skLearning\base.py:175: DeprecationWarning:inspect.getargspec()已弃用,请使用inspect.signature()代替林