python高斯核密度估计
时间: 2023-11-17 22:03:00 浏览: 145
核密度估计
4星 · 用户满意度95%
斯核密度估计是一种常用的核密度估计方法,它假设样本点周围的概率密度函数服从高斯分布。在Python中,可以使用scikit-learn库中的KernelDensity类来实现高斯核密度估计。下面是一个简单的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.neighbors import KernelDensity
# 生成一些随机样本
np.random.seed(0)
X = np.concatenate((np.random.normal(0, 1, 100), np.random.normal(5, 1, 100)))[:, np.newaxis]
# 创建一个KernelDensity对象
kde = KernelDensity(kernel='gaussian', bandwidth=0.5).fit(X)
# 在[-5, 10]的范围内生成1000个点,并计算它们的概率密度
x_plot = np.linspace(-5, 10, 1000)[:, np.newaxis]
log_dens = kde.score_samples(x_plot)
# 绘制样本点和概率密度函数
plt.hist(X, bins=20, density=True)
plt.plot(x_plot[:, 0], np.exp(log_dens))
plt.show()
```
在这个示例中,我们首先生成了一些随机样本,然后创建了一个KernelDensity对象,并使用fit方法拟合样本数据。接着,我们在[-5, 10]的范围内生成了1000个点,并使用score_samples方法计算它们的概率密度。最后,我们使用hist函数绘制了样本点的直方图,并使用plot函数绘制了概率密度函数的曲线。
阅读全文