sklearn实现核密度估计并绘制概率密度曲线和概率分布曲线 
时间: 2023-05-26 13:01:50 浏览: 33
以下是使用sklearn实现核密度估计并绘制概率密度曲线和概率分布曲线的代码示例:
```
import numpy as np
import matplotlib.pyplot as plt
from sklearn.neighbors import KernelDensity
from scipy.stats import norm
# 生成一组随机数作为样本数据
np.random.seed(0)
sample_data = np.concatenate((np.random.normal(0, 1, 500), np.random.normal(5, 0.5, 100)))
# 配置概率密度估计模型
kde_model = KernelDensity(kernel='gaussian', bandwidth=0.5)
kde_model.fit(sample_data[:, np.newaxis])
# 生成概率密度曲线的x坐标
x_grid = np.linspace(-5, 10, 1000)
# 计算概率密度估计的值并绘制概率密度曲线
log_dens = kde_model.score_samples(x_grid[:, np.newaxis])
dens = np.exp(log_dens)
plt.plot(x_grid, dens, label='Probability density curve')
# 计算概率分布曲线的值并绘制概率分布曲线
prob = norm.pdf(x_grid, loc=sample_data.mean(), scale=sample_data.std())
plt.plot(x_grid, prob, label='Probability distribution curve')
plt.xlabel('Value')
plt.ylabel('Density')
plt.legend()
plt.show()
```
代码输出的结果包括概率密度曲线和概率分布曲线,可以使用matplotlib库绘制这些曲线。概率密度曲线表示核密度估计的结果,而概率分布曲线是样本数据的概率分布(在这个例子中,正态分布)。这些曲线可以帮助我们理解样本数据的分布情况。
相关推荐










