python 核密度分布
时间: 2023-12-28 09:25:43 浏览: 81
fast-kde:在 Python 中构建快速核密度估计器 (KDE) 的实验
核密度估计是一种用于估计未知密度函数的非参数方法。它通过使用平滑的峰值函数(核)来拟合观测到的数据点,从而模拟真实的概率分布曲线。
在Python中,可以使用Scikit-learn库进行核密度估计。下面是一个示例代码,演示了如何使用Scikit-learn进行核密度估计:
```python
import numpy as np
from sklearn.neighbors import KernelDensity
import matplotlib.pyplot as plt
# 生成一组观测数据
np.random.seed(0)
X = np.concatenate((np.random.normal(0, 1, 500), np.random.normal(3, 1, 500)))
# 创建核密度估计对象
kde = KernelDensity(kernel='gaussian', bandwidth=0.5).fit(X[:, np.newaxis])
# 生成测试点
x_test = np.linspace(-5, 8, 1000)[:, np.newaxis]
# 计算核密度估计值
log_dens = kde.score_samples(x_test)
# 绘制核密度估计曲线
plt.fill(x_test[:, 0], np.exp(log_dens), fc='lightblue')
plt.xlabel('x')
plt.ylabel('Density')
plt.title('Kernel Density Estimation')
plt.show()
```
这段代码首先生成了一组观测数据X,然后创建了一个核密度估计对象kde,并使用fit()方法拟合数据。接下来,生成一组测试点x_test,并使用score_samples()方法计算核密度估计值。最后,使用matplotlib库绘制核密度估计曲线。
阅读全文