0
点赞
收藏
分享

微信扫一扫

ES实战-高级聚合

数据清洗之识别异常点


在这里插入图片描述

引言:

一 认识异常值

1.1 概念

在机器学习数据预处理中,异常点(Outliers)是指与大多数数据明显不同的观测值。

1.2 危害

因此,在数据清洗的过程中,识别和处理异常值是十分重要的。这可以包括删除异常值、用合适的替代值替换异常值,或者采用一些专门设计用于处理异常值的方法,如截断、转换等。处理异常值有助于提高数据质量,确保在后续分析和建模过程中得到更可靠的结果。

1.3 和缺失值的比较

缺失值(Missing values):

主要区别:

在数据预处理阶段,处理异常点和缺失值是确保数据质量和模型性能的重要步骤。

二 基于统计方法的异常值检测

基于统计方法的异常值检测是一种常用的数据清洗技术,它基于数据的统计特性来判断某个数据点是否为异常点。

下面我将介绍几种常见的基于统计方法的异常值检测方法:

2.1 标准差方法:

标准差方法是一种简单而直观的异常值检测方法,它通过测量数据点与均值偏离程度来识别异常点,超出某个阈值范围的数据点被视为异常。

具体来说,异常点通常被定义为距离均值一定数量的标准差之外的数据点。常见的做法是,将均值加上或减去多少个标准差的倍数作为阈值,超出这个阈值的数据点被认为是异常点。

在这里插入图片描述

具体步骤如下:

2.2 Z-Score 方法:

Z-Score 方法是另一种基于统计的异常值检测方法。它通过计算数据点与均值之间的偏差,并将偏差转化为标准偏差的倍数,以识别数据集中的异常值。

在了解这个方法之前我们需要先了解Z-Score 值。

Z-Score 的计算公式如下:

具体步骤如下:

与标准差方法相比,Z-Score 方法能够更好地处理不服从正态分布的数据,因为它考虑了数据点与均值的偏差。

2.3 两种方法的优缺点

Z-Score 方法和标准差方法都是常用于检测异常值的统计方法,它们各自具有一些优点和缺点:

1 Z-Score 方法:

优点:

缺点:

2 标准差方法:

优点:

缺点:

综上所述,Z-Score 方法和标准差方法都有各自的优点和局限性,选择合适的方法取决于数据的特点、分布情况以及分析目的。在实际应用中,通常需要综合考虑多种方法,以提高异常值检测的准确性和可靠性。

这些基于统计方法的异常值检测方法都是基于数据的分布情况来识别异常点。它们具有简单直观、易于实现的优点,可以在快速进行数据清洗时提供有用的指导。

但需要注意的是,它们假设数据服从某种分布,对于不符合该分布的数据可能不够准确。因此,在使用这些方法时,需要了解数据的分布情况,并根据具体问题进行调整和适应。

三 箱线图(Box Plot):

3.1 箱线图概念

箱线图(Boxplot),也称为盒须图或盒式图,是一种用于显示数据分布情况的可视化工具。它可以展示数据的中位数、上下四分位数、极值以及异常值的存在情况,帮助人们更直观地理解数据的分布和离散程度。

箱线图通常由以下几个部分组成:

1 箱子(Box):

2 触须(Whiskers):

3 异常值(Outliers):

箱线图的绘制步骤如下:

示例:
在这里插入图片描述

箱线图能够帮助人们快速了解数据的分布情况,识别异常值和离群点,并与其他数据集进行比较。它是数据探索和分析中常用的工具之一,有助于发现数据集中的特征和规律。

3.2 箱线图检测异常值

箱线图(Boxplot)是一种常用的可视化工具,它通过显示数据的分布情况,以及数据的中位数、上下四分位数和异常值的存在情况,帮助我们直观地发现异常值。

以下是使用箱线图检测异常值的方法:

1 绘制箱线图:

2 识别异常值:

3 标记异常值:

4 重新绘制箱线图:

箱线图检测异常值的优点包括直观易懂、不受数据分布影响、能够发现单个和多个变量中的异常值。但同时,箱线图也存在一些局限性,例如无法确定异常值的类型和原因,对于高维数据的可视化较为困难等。

四 密度估计方法:

4.1 数据的密度与密度分布

数据点的密度是指在数据集中某个特定位置附近的数据点数量或概率分布。

密度通常用来描述数据的局部分布情况,可以在不同位置上提供有关数据集的详细信息。

在一维情况下,密度可以通过直方图来表示,其中每个柱子的高度表示该区间内数据点的数量。在多维情况下,特别是在高维数据集中,密度的计算变得更为复杂。

数据点的密度分布则是指描述数据集中每个数据点在其周围的分布密度情况。

密度分布可以用来了解数据集的聚集程度和分散程度,从而帮助理解数据的结构和特征。

在异常值检测中,较低的密度通常被认为是异常值的迹象,因为它可能表示该点在特征空间中相对孤立,与其他数据点的距离较远。

类比:

假设你是一家零售商,经营着一家超市。你想要了解超市内各个区域的顾客流量密度,以更好地安排商品陈列、提高服务效率。

在这个例子中,超市的不同区域可以看作是特征空间中的不同位置,而购物顾客则是数据点。那么,每个区域的顾客密度就对应于该区域附近的顾客数量或购物顾客的概率分布。

通过分析超市中各个区域的顾客密度,你可以更好地了解超市的运营情况,做出合理的决策,例如优化货架摆放、改进促销策略,以提高整体销售效果。这个例子可以类比为在数据集中不同位置的数据点密度分布,从而指导业务决策和改进。

总体来说,数据点的密度是描述数据在不同位置上的分布情况,对于理解数据集的结构和特征具有重要的意义。密度估计方法可以帮助量化这种分布,进而支持各种数据分析任务。

4.2 使用密度估计方法检测异常值

在机器学习数据预处理中,使用密度估计方法检测异常值是一种常见的技术,它基于数据点的密度分布来识别异常值。

以下是使用密度估计方法检测异常值的详细步骤:

1 选择密度估计方法:

2 计算数据点的密度:

3 设定阈值:

4 识别异常点:

密度估计方法检测异常值的优点包括不依赖于数据的分布假设、适用于各种类型的数据、能够发现局部异常点等。但同时,密度估计方法也存在一些局限性,例如计算复杂度较高、对参数的选择较为敏感等。

五 聚类方法:

5.1 聚类的概念

聚类是一种无监督学习的机器学习技术,旨在将数据点分组成具有相似特征的簇(cluster)。

它的目标是实现簇内相似性最大化和簇间相似性最小化。

它的基本思想是基于数据点之间的相似度或距离来划分数据。

以下是聚类的一些重要概念:

聚类的应用非常广泛,包括但不限于市场细分、异常检测、模式识别、推荐系统、图像分割等领域。通过聚类,可以发现数据之间的潜在关系和结构,帮助人们更好地理解和利用数据。

类比:

假设你是一家餐厅的经理,你想要了解你的顾客群体并提供更好的服务。你可以将聚类的概念应用于餐厅的顾客数据。

通过对顾客数据进行聚类分析,你可以更好地理解不同类型的顾客群体,了解他们的偏好和习惯。这可以帮助你优化菜单、提供更个性化的服务、制定针对性的促销活动,从而提高餐厅的盈利能力和顾客满意度。

5.2 使用聚类方法检测异常值

聚类方法通过将数据点分组成簇(clusters),并识别与其他簇差异显著的数据点作为异常值。

以下是使用聚类方法检测异常值的详细步骤:

1 选择聚类算法:

首先选择合适的聚类算法,常见的算法包括K均值(K-means)、层次聚类(Hierarchical Clustering)、DBSCAN等。

2 设置聚类参数:

根据数据的特点和需求,设置聚类算法的参数,如簇的数量、距离度量方法等。

3 进行聚类分析:

使用选择的聚类算法对数据进行聚类分析,将数据点划分为多个簇。

4 设定阈值:

可以根据实际需求和数据特点,设定异常值的阈值。

5 识别异常值:

识别与其他簇差异显著的数据点作为异常值。这些异常值可能出现在不属于任何簇或属于稀疏簇的数据点中。

类比:

假设你是一家电子商务公司的数据分析师,你负责处理网站用户的点击数据,以改进用户体验和提高转化率。你决定使用聚类方法来检测异常的用户行为,例如点击异常高的用户或者表现异常的购买行为。

1 选择聚类算法:

2 设置聚类参数:

3 进行聚类分析:

4 设定阈值:

5 识别异常值:

通过使用聚类方法检测异常值,你可以及时发现并处理异常的用户行为,从而提高网站的安全性和用户体验,进而改善转化率和用户满意度。

聚类方法检测异常值的优点包括不依赖于数据的分布假设、能够发现局部异常点、适用于各种类型的数据等。

但同时,聚类方法也存在一些局限性,例如对参数的选择敏感、需要事先确定簇的数量等。

六 孤立森林(Isolation Forest):

6.1 孤立森林的概念

孤立森林(Isolation Forest)是一种用于异常检测的无监督机器学习算法,由Fei Tony Liu、Kai Ming Ting和Zhou Zhi-Hua于2008年提出。

以下是孤立森林的基本概念:

类比:

想象一下你是一位园丁,负责管理一个庞大的公园。

现在,假设你使用孤立森林算法来帮助你检测可能存在的异常情况,比如植物生长异常、有害入侵物、或者树木受到疾病或损伤的影响。

以下是如何将孤立森林算法应用于你的园艺工作中的一个类比:

综上所述,你可以将孤立森林算法类比为在园艺工作中的使用,帮助你快速、有效地检测和处理公园中的异常情况,从而保持公园的健康和美观。

孤立森林在异常检测中具有一些优点,如对高维数据集的高效处理、对大型数据集的较好扩展性以及对多维数据的关联性的处理。然而,对于低维数据集的表现可能不如高维数据集,而且在某些情况下,对于密集簇的检测可能不够精确。

6.2 孤立森林检测异常值

孤立森林(Isolation Forest)是一种用于检测异常值的无监督机器学习算法,特别适用于高维数据集中的异常值检测。

以下是孤立森林检测异常值的详细方法:

1 随机选择特征和阈值:

孤立森林首先随机选择数据集中的一个特征,然后在该特征的最小值和最大值之间随机选择一个分割阈值。

2 构建孤立树:

通过递归地切分数据空间,构建孤立树。每次切分将数据集分为两个子集,一个包含小于阈值的样本,另一个包含大于阈值的样本。

3 重复构建多棵孤立树:

重复步骤2,构建多棵孤立树。每棵树都是独立构建的,没有共享信息。

4 计算异常度:

对于每个数据点,计算其在每棵孤立树中的路径长度(即从根节点到达该数据点的路径长度)。

5 识别异常值:

基于计算出的异常度,可以设定阈值来识别异常值。

孤立森林检测异常值的优点包括对高维数据集效果良好、对大型数据集有较高的计算效率、能够处理多维数据的关联性等。然而,孤立森林也有一些局限性,例如对于低维数据集的表现可能不如高维数据集、对于密集的簇可能不够精确等。

七 DBSCAN(密度聚类):

7.1 DBSCAN 概念

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种常用的基于密度的聚类算法,用于将数据点根据它们的密度分布划分到不同的簇中,并能有效地识别出噪声点。

以下是DBSCAN算法的基本步骤:

1 定义核心点(Core Point):

2 定义边界点(Border Point):

3 定义噪声点(Noise Point):

4 构建簇:

5 识别噪声点:

7.2 DBSCAN 检测异常值

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,但它也可以用于识别异常点。

在机器学习数据预处理中,数据清洗的过程中,使用DBSCAN来检测异常值的方法如下:

1 参数设置:
DBSCAN有两个主要参数需要设置:eps(邻域半径)和min_samples(邻域内最小数据点数)。

2 标记聚类结果:

DBSCAN将数据点分为核心点、边界点和噪声点。

3 检测异常值:

在DBSCAN中,噪声点通常被认为是异常点。一旦聚类完成,所有被标记为噪声点的数据点都可以被视为异常值。

4 调整参数和检查结果:

进行异常点检测时,需要仔细调整eps和min_samples参数,以确保对异常点有良好的检测能力。

总体而言,DBSCAN是一种强大的方法,特别适用于检测基于密度的异常值,能够有效处理具有复杂形状和不均匀密度的数据。然而,合适的参数选择对于其性能至关重要,需要在实际应用中进行调试和验证。

八 使用可视化工具:

机器学习数据预处理中,使用可视化工具来检测异常值是一种直观而有效的方法。可视化可以帮助你观察数据的分布、趋势和异常模式,从而更容易发现潜在的异常点。

以下是一些常用的可视化方法和工具来识别异常点:

1 散点图(Scatter Plots):

通过绘制数据的散点图,你可以直观地观察数据点的分布和相互关系。异常点通常会在图中表现为与其他数据点明显不同的点。

2 箱线图(Boxplots):

箱线图展示了数据的分布情况,包括中位数、上下四分位数和异常值。异常值通常被定义为在1.5倍四分位距之外的点。

3 直方图(Histograms):

直方图可以显示数据的分布情况,帮助你观察数据是否符合正态分布。异常点可能表现为分布中的尾部或峰值。

4 3D 散点图和平行坐标图:

对于多维数据,可以使用3D 散点图或平行坐标图来可视化数据的分布。

5 交互式可视化工具:

使用交互式可视化工具如Plotly、Tableau或matplotlib中的交互式图表,可以允许你以更灵活的方式探索数据。通

6 地理信息系统(GIS)可视化:

如果数据涉及地理位置信息,使用地图可视化工具如GeoPandas、Leaflet等可以帮助你观察地理上的异常点,例如位置偏移较大或异常的集群。

7 时间序列图:

如果数据是时间序列数据,绘制时间序列图可以帮助你观察是否存在突然的异常波动或趋势变化。

在使用可视化工具时,需要注意以下几点:

综合使用这些可视化方法,可以更容易地发现和理解数据中的异常点,有助于进一步的数据清洗和预处理工作。

九 各种方法的优缺点及使用场景

9.1 基于统计方法的异常值检测:

1 标准差方法 (Standard Deviation Method):

优点:

缺点:

使用场景:

2 Z-Score:

优点:

缺点:

对于非正态分布的数据,可能产生误判。

使用场景:

9.2 箱线图(Box Plot):

优点:

缺点:

使用场景:

适用于单一变量或少量变量的异常值检测。

9.3 密度估计方法(Density Estimation Methods):

1 LOF(局部离群因子):

优点:

缺点:

使用场景:

2 One-Class SVM:

优点:

缺点:

在处理大规模数据时可能效果较差。

使用场景:

9.4 聚类方法(Clustering Methods):

优点:

缺点:

使用场景:

9.5 孤立森林(Isolation Forest):

优点:

缺点:

使用场景:

9.6 DBSCAN(密度聚类):

优点:

缺点:

对于高维数据和具有变化密度的数据可能不太适用。

使用场景:

9.7 使用可视化工具:

优点:

缺点:

使用场景:

9.8 综合使用方法的建议:

综上所述,不同的异常值检测方法各有优缺点,其选择应根据具体问题和数据特点来决定。

鲁棒性

鲁棒性是指系统在面对异常或变化时能够保持稳定性和可靠性的能力。在不同领域,鲁棒性都有着不同的含义,但核心概念都是相似的。

总的来说,鲁棒性是指系统或方法在面对各种不确定性、异常情况或变化时能够保持稳定性和可靠性的能力。在设计和开发系统或算法时,考虑和提高鲁棒性是非常重要的,因为它能够提高系统的可靠性、安全性和性能。

十 总结

在数据清洗过程中,识别和处理异常值是至关重要的,因为它们可能影响到数据分析和建模的结果。

本文首先介绍了异常值的概念及其可能带来的危害,然后详细讨论了基于统计方法、箱线图、密度估计方法、聚类方法、孤立森林和DBSCAN等多种识别异常值的方法,并分析了它们的优缺点及适用场景。

通过综合运用这些方法,我们可以更有效地识别和处理数据中的异常值,提高数据的质量和可靠性,为后续的数据分析和建模工作奠定良好的基础。

希望本文能够帮助读者更好地理解异常值的检测方法,并在实际工作中取得更好的效果。

在这里插入图片描述

在这里插入图片描述

举报

相关推荐

0 条评论