使用parzen窗法对iris数据进行概率密度估计Python完整代码
时间: 2024-11-03 19:15:01 浏览: 13
Parzen窗(也称为Parzen-Rosenblatt窗函数)是一种常用的非参数概率密度估计方法,在机器学习和统计中常用于估计连续随机变量的概率分布。下面是一个使用Python的`scipy`库中的`kdeplot`函数(基于核密度估计,其实现底层包含了Parzen窗的思想)来对Iris数据集进行概率密度估计的示例:
```python
from sklearn.datasets import load_iris
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import kde
# 加载Iris数据
iris = load_iris()
X = iris.data[:, :2] # 我们只取前两个特征进行可视化
# 创建KDE对象
density = kde.gaussian_kde(X)
# 计算并绘制数据点的概率密度
grid = np.mgrid[iris.data[:, 0].min():iris.data[:, 0].max():100j,
iris.data[:, 1].min():iris.data[:, 1].max():100j]
positions = grid.reshape(2, -1).T
prob_density = density(positions)
# 绘制PDF
plt.figure(figsize=(6, 4))
plt.contourf(grid[0], grid[1], prob_density, cmap='Blues', alpha=0.8)
plt.scatter(X[:, 0], X[:, 1], c='black', s=50, edgecolor='white')
plt.xlabel(iris.feature_names[0])
plt.ylabel(iris.feature_names[1])
plt.title('Probability Density Estimation with Parzen Window on Iris Data')
plt.colorbar(label='Density')
plt.show()
阅读全文