我是 EDA 新手,我只是想出了一种方法来查找我的数值数据的
boxplot
,但是,我很难获取它的信息:
箱线图图像:
谁能告诉我:
boxplot
顺便说一句,这是我使用的箱线图代码:
def plot_boxplots_grid(dataframe, n_cols=3, subplot_size=(5, 3)):
numerical_cols = [col for col in dataframe.columns if dataframe[col].dtype != 'object' and dataframe[col].nunique() > 2]
n_rows = (len(numerical_cols) + n_cols - 1) // n_cols
plt.figure(figsize=(subplot_size[0] * n_cols, subplot_size[1] * n_rows))
for i, col in enumerate(numerical_cols):
plt.subplot(n_rows, n_cols, i + 1)
sns.boxplot(y=dataframe[col])
plt.title(col)
plt.tight_layout()
plt.show()
这篇文章很好地解释了箱线图并引导您完成计算。简而言之:
箱须图(也称为箱线图)显示一组数据的五数摘要。五数汇总是最小值、第一四分位数、中位数、第三四分位数和最大值。
箱线图还将显示异常值,具体取决于您如何定义这些值。异常值通常是大于/小于 1.5 x IQR 的数据点,其中 IQR 代表四分位数范围 (Q3 - Q1)。然而,这只是一个标准。
这是因为其他变量的数据集中有很多异常值 - 异常值由菱形标记表示。 Seaborn 正在显示所有数据,因此大量异常值将框区域“挤压”到非常小的高度。尝试在定义箱线图的行中设置
showfliers=False
,这应该删除异常值。执行此操作后,您应该会看到更标准的箱线图。
但是,对于您拥有的所有异常值,箱线图似乎“不是”显示数据的正确选择,并且通过删除异常值,您隐藏了重要的数据点并扭曲了结果。我建议使用小提琴图,我发现它在视觉上更具吸引力,您也可以用小提琴绘制箱形图。 Seaborn 有一个 seaborn.violinplot()
方法,您可以使用与
seaborn.boxplot()
非常相似的输入。3.如何判断是否异常?
其中
whis
是
sns.boxplot()
方法的可选参数:whis : float, optional
Proportion of the IQR past the low and high quartiles to extend the plot whiskers.
Points outside this range will be identified as outliers.