📜  从 Matplotlib 中寻找离群点(1)

📅  最后修改于: 2023-12-03 15:36:14.288000             🧑  作者: Mango

从 Matplotlib 中寻找离群点

介绍

在数据分析中,离群点常常会导致模型的不准确或不可靠。因此,寻找并在分析过程中忽略离群点是很重要的。Matplotlib 的统计图表功能提供了许多方法来检测离群值。本文将介绍如何使用 Matplotlib 中的 boxplot 和 scatter plot 函数来寻找离群点。

Boxplot

Boxplot,也称箱线图,是可视化离群点的一种方法。它显示了数据的中位数、四分位数以及任何可能存在的离群值。箱线图通常用于比较多个数据集之间的差异。

首先,我们创建一个包含随机数的数据集:

import numpy as np

# Create random dataset
np.random.seed(10)
dataset = np.random.normal(loc=0, scale=1, size=1000)

接着,我们可以使用 Matplotlib 的 boxplot 函数来画出箱线图:

import matplotlib.pyplot as plt

# Plot boxplot
plt.boxplot(dataset, vert=False)
plt.show()

该函数的第一个参数是要绘制数据的列表。vert 参数决定了箱线图是水平还是垂直显示。如果为 True,则箱线图垂直显示,默认为 False,表示水平显示。

boxplot

图中的箱体表示数据集的中位数和四分位数,栏杆表示数据集中的最大值和最小值(除离群值外)。任何在以 1.5 倍进步距离之外的值都被视为离群值并被表示为带圆点的线。

Scatter Plot

另一种可视化离群点的方法是使用散点图。散点图使我们能够同时表示两个变量之间的关系,并可以标记离群值。

首先,我们创建两个随机数据集:

# Create random datasets
np.random.seed(1)
x = np.random.normal(loc=10, scale=2, size=100)
y = np.random.normal(loc=10, scale=2, size=100)

# Add a few outliers
x[1] = x[1] + 40
x[2] = x[2] - 30
y[3] = y[3] + 20
y[4] = y[4] - 20

在这里,我们添加了一些离群点,这些点会使数据更加解释困难。

接着,我们使用 Matplotlib 的 scatter 函数来显示数据集:

# Plot scatter plot
plt.scatter(x,y)
plt.show()

scatterplot

我们可以在图中看到,第 2 和第 3 个点在 x 轴上远离其他点,这些点可能会对我们的数据分析产生不利影响。我们可以选择是否删除这些离群点。