探索数据分布

machine learningpythonserver side programmingprogramming

简介

在处理任何数据科学或机器学习用例时,数据分布为我们提供了对数据的有用见解。数据分布是指数据的可用方式及其当前状况、有关数据特定部分的信息、数据中的任何异常值以及与数据相关的集中趋势。

要探索数据分布,有一些流行的图形方法在处理数据时非常有用。在本文中,让我们探索这些方法。

了解有关您的数据的更多信息:图形方式

直方图和 KDE 密度图

直方图是图形方法中最流行和最常见的数据探索工具。在直方图中,矩形条用于表示特定变量或类别或箱的频率。当我们拥有不同的存储桶来存放数据时,就支持分箱。

让我们使用以下房屋定价数据集上的代码示例来理解直方图。

数据集链接 − https://drive.google.com/file/d/1XbyBcw6OfE_w3ZeqPM1s_6jT8XeTCeOT/view?usp=sharing

以下代码可帮助我们更有效地理解直方图。在此代码示例中,我们使用房价数据集在左侧绘制了 SalePrice 与 Frequency 的频率或直方图。右侧图是销售价格与频率分布的 KDE 图。密度图是直方图的概率密度函数。

import numpy as np
import pandas as pd 
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

df = pd.read_csv("/content/house_price_data.csv")

figure, ax = plt.subplots(1, 2, sharex=True, figsize=(12, 6))
ax[0]= sns.histplot(data=df, x="SalePrice",ax=ax[0])
ax[0].set_ylabel("Frequency")
ax[0].set_xlabel("SalePrice")
ax[0].set_title("Frequency(Histogram)")

ax[1]= sns.distplot(df.SalePrice, kde = True,ax=ax[1])
ax[1].set_ylabel("Density")
ax[1].set_xlabel("SalePrice")
ax[1].set_title("Frequency(Histogram)")

输出

在下面的代码示例中,我们使用了不同类别的箱。我们使用企鹅数据集绘制了喙深度与计数的关系。这里,喙深度被分成不同的括号,并在 x 轴上绘制,计数或频率在 y 轴上绘制。

# 在企鹅数据集上使用箱 – seaborn

import numpy as np
import pandas as pd 
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

data_pen = sns.load_dataset("penguins")
sns.histplot(data=data_pen, x="bill_depth_mm", bins=15)

输出

箱线图

箱线图也称为箱须图。箱线图表示数据的百分位数。整个数据被分为不同的百分位数,其中主要分位数是第 25、第 50 和第 75 百分位数。第 50 百分位数代表中位数。箱线图显示位于第 25 和第 75 百分位数(称为 IQR(四分位距))内的数据

让我们使用以下房价数据集上的代码示例来理解箱线图。

import numpy as np
import pandas as pd 
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

df = pd.read_csv("/content/house_price_data.csv")
subset = pd.concat([df['SalePrice'], df['OverallQual']])
figure = sns.boxplot(x='OverallQual', y="SalePrice", data=df)

输出

小提琴图

它看起来类似于箱线图,但是,图中还显示了变量的概率分布。它用于比较观察变量的概率分布。

让我们使用以下房价数据集上的代码示例来理解小提琴图。

import numpy as np
import pandas as pd 
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

df = pd.read_csv("/content/house_price_data.csv")
subset = pd.concat([df['SalePrice'], df['MSSubClass']])
figure = sns.violinplot(x='MSSubClass', y="SalePrice", data=df)

输出

结论

箱线图、密度图和小提琴图是探索数据分布最流行和最常见的方法。它们可靠且受到机器学习工程师和数据科学家的高度信任。这些图让我们了解数据以及数据的分布方式。此外,还可以从图中确定有关偏度、稀疏度等的基本信息。箱线图和小提琴图等图也可以指示异常点。


相关文章