欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > Python | 使用Seaborn绘制KDE核密度估计曲线

Python | 使用Seaborn绘制KDE核密度估计曲线

2024/10/25 16:20:41 来源:https://blog.csdn.net/qq_42034590/article/details/135586015  浏览:    关键词:Python | 使用Seaborn绘制KDE核密度估计曲线

核密度估计(KDE)图,一种可视化技术,提供连续变量概率密度的详细视图。在本文中,我们将使用Iris Dataset和KDE Plot来可视化数据集。

什么是KDE图?

KDE图,全称核密度估计图(Kernel Density Estimation),是一种用于估计数据分布的非参数方法,通常用于可视化和理解数据的分布情况。它通过平滑地估计数据的概率密度函数(PDF)来显示数据的分布特征,尤其在连续变量上非常有用。

核密度估计图通常表现为一条平滑的曲线,描述了数据在特定值附近的密度。这条曲线称为核密度估计。核密度估计是通过将每个数据点视为一个小的概率分布(通常是高斯分布或其他核函数)并将它们叠加而得到的。这样,核密度估计提供了一个对数据分布的连续估计,而不仅仅是一个直方图或散点图。

特点

核密度估计图的主要特点包括:

  1. 平滑性:KDE图是平滑的,不受特定的数据点的影响。这使得它可以更好地捕捉数据的分布特征。
  2. 面积为1:KDE图的总面积在整个范围内等于1,因为它是概率密度函数的估计。
  3. 峰值和谷值:KDE图上的峰值表示数据集中的高密度区域,而谷值表示稀疏区域。
  4. 帮助比较:使用KDE图,你可以比较不同数据集的分布,或者比较数据在不同条件下的分布。这对于发现数据之间的差异和相似性非常有用。

KDE图直观地表示数据的分布,提供对其形状、集中趋势和分布的深入了解。当处理连续数据或希望探索分布而不对特定参数形式(例如,假设数据服从正态分布)。KDE图通常用于统计软件包和数据可视化库,例如Python中的Seaborn和Matplotlib。

绘制KDE曲线案例

创建单变量Seaborn KDE图

为了开始我们的探索,我们深入研究了单变量Seaborn KDE图的创建,可视化了单个连续属性的概率分布。
我们可以可视化样本对单个连续属性的概率分布。

# importing the required libraries
from sklearn import datasets
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline# Setting up the Data Frame
iris = datasets.load_iris()iris_df = pd.DataFrame(iris.data, columns=['Sepal_Length','Sepal_Width', 'Patal_Length', 'Petal_Width'])iris_df['Target'] = iris.targetiris_df['Target'].replace([0], 'Iris_Setosa', inplace=True)
iris_df['Target'].replace([1], 'Iris_Vercicolor', inplace=True)
iris_df['Target'].replace([2], 'Iris_Virginica', inplace=True)# Plotting the KDE Plot
sns.kdeplot(iris_df.loc[(iris_df['Target']=='Iris_Virginica'),'Sepal_Length'], color='b', shade=True, label='Iris_Virginica')# Setting the X and Y Label
plt.xlabel('Sepal Length')
plt.ylabel('Probability Density')

在这里插入图片描述
我们还可以在单个图中可视化多个样本的概率分布。

# Plotting the KDE Plot
sns.kdeplot(iris_df.loc[(iris_df['Target']=='Iris_Setosa'),'Sepal_Length'], color='r', shade=True, label='Iris_Setosa')sns.kdeplot(iris_df.loc[(iris_df['Target']=='Iris_Virginica'), 'Sepal_Length'], color='b', shade=True, label='Iris_Virginica')plt.xlabel('Sepal Length')
plt.ylabel('Probability Density')

在这里插入图片描述

双变量情况

超越单变量分析,我们将我们的可视化能力扩展到双变量Seaborn KDE图。这种复杂的技术可以检查样本对多个连续属性的概率分布。

# Setting up the samples
iris_setosa = iris_df.query("Target=='Iris_Setosa'")
iris_virginica = iris_df.query("Target=='Iris_Virginica'")# Plotting the KDE Plot
sns.kdeplot(iris_setosa['Sepal_Length'], iris_setosa['Sepal_Width'],color='r', shade=True, label='Iris_Setosa',cmap="Reds", shade_lowest=False)

在这里插入图片描述

我们还可以在单个图中可视化多个样本的概率分布。

sns.kdeplot(iris_setosa['Sepal_Length'],iris_setosa['Sepal_Width'],color='r', shade=True, label='Iris_Setosa',cmap="Reds", shade_lowest=False)sns.kdeplot(iris_virginica['Sepal_Length'], iris_virginica['Sepal_Width'], color='b',shade=True, label='Iris_Virginica',cmap="Blues", shade_lowest=False)plt.xlabel('Sepal Length')
plt.ylabel('Sepal Width')
plt.title('Bivariate Seaborn KDE Plot')
plt.legend()
plt.show()

在这里插入图片描述

总结

总之,KDE图是一种非常有用的可视化工具。它能够可视化各种属性的概率密度,使数据分析师和科学家能够识别隐藏的模式并做出明智的决策。无论是用于单变量还是双变量分析,KDE图都是数据可视化工具包中通用且不可或缺的工具,可以帮助机器学习和深度学习爱好者更好地理解和分析数据。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com