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.target

iris_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图都是数据可视化工具包中通用且不可或缺的工具,可以帮助机器学习和深度学习爱好者更好地理解和分析数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值