Python 探索数据分布
在处理任何数据科学或机器学习用例时,数据的分布为我们提供了有关数据的有用信息。数据分布是指数据的可用性和当前状态,特定部分的信息,数据中的异常值以及与数据相关的中心趋势。
为了探索数据分布,有一些常用的图形方法可以在处理数据时发挥积极的作用。在本文中,让我们来探索这些方法。
了解数据更多信息:图形方式
直方图和KDE密度图
直方图是最常用和常见的用于数据探索的图形方法之一。在直方图中,使用矩形条表示特定变量或类别的频率,或者是区间。当数据可以存在不同的桶中时,支持分组(bin)。
让我们通过以下房价数据集的代码示例来了解直方图。
数据集链接 – https://drive.google.com/file/d/1XbyBcw6OfE_w3ZeqPM1s_6jT8XeTCeOT/view?usp=sharing
以下代码有助于我们更有效地理解直方图。在这个代码示例中,我们使用房价数据集来绘制SalePrice vs Frequency的频率或直方图图表。右侧的图表是SalePrice vs Frequency Distribution的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轴上表示计数或频率。
# Using bins on penguins' dataset – 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)
输出
结论
箱线图、密度图和小提琴图是探索数据分布最流行和常用的方法。它们被机器学习工程师和数据科学家广泛使用,并且具有可靠性和高度可信性。这些图表让我们对数据和数据分布有所了解。此外,还可以从图表中确定偏斜度、稀疏性等基本信息。像箱线图和小提琴图这样的图表也可以指示异常值点。