请提供一段代码:用高斯分布进行拟合一组无标签数据,得到方差,和散点图分布
时间: 2024-06-10 07:05:41 浏览: 138
SamplingGMM:用于从高斯混合模型中采样并对其进行可视化的代码(对于中等文章)
以下是使用Python编写的高斯分布拟合代码:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
# 生成无标签数据
xdata = np.linspace(-10,10,100)
ydata = 2.5*np.exp(-(xdata-1)**2/(2*2.5**2)) + np.random.normal(size=100)
# 高斯函数
def gauss_func(x,a,x0,sigma):
return a*np.exp(-(x-x0)**2/(2*sigma**2))
# 拟合曲线
popt, pcov = curve_fit(gauss_func, xdata, ydata)
# 输出拟合结果
print("a:", popt[0])
print("x0:", popt[1])
print("sigma:", popt[2])
# 绘制散点图和拟合曲线
plt.scatter(xdata, ydata)
plt.plot(xdata, gauss_func(xdata, *popt), 'r-')
plt.show()
```
在此代码中,首先我们使用Numpy生成了一组100个数据的x和y数据,其中y数据是在原始高斯函数的基础上加上了随机噪声。然后,我们定义了高斯函数,并使用Scipy库的curve_fit函数对无标签数据进行拟合。最后,我们输出了拟合结果,并绘制了散点图和拟合曲线。请注意,我们未透露任何关于您的个人信息。
阅读全文