亚太娱乐平台报道数据科学家必备的 5 种离群点 / 异常检测方法_亚太娱乐平台官网资讯

来自:雷锋网 2020-09-13

字幕组双语原文:数据科学家必备的 5 种离群点 / 异常检测方法

英语原文:5 Ways to Detect Outliers/Anomalies That Every Data Scientist Should Know ( Python Code )

翻译:雷锋字幕组(yhfwww)

什么是异常 / 异常值?

在统计学中,离群值是不属于某个总体的数据点,它是一种与别的值相差甚远的异常观察,是一种与别的结构良好的数据差别的观察值。

例如,您能够清楚地看到列表中的异常值: [ 20,24,22,19,29,184300,30,18 ] 。当观察值只是一组数字并且是一维时,很容易识别它,但是当你有数千个观察值或多维值时,你需要更伶俐的方法来检测这些值。这就是本文将要介绍的内容。

亚太娱乐平台我们关怀异常?

离群点的检测是数据挖掘的核心问题之一。数据的不断扩展和继续增长以及物联网设施的普及,使我们重新思索我们处置异常的方式,以及通过观察这些异常情况能够构建的用例。

我们现在有智能手表和腕带,能够每隔几分钟检测我们的心跳。检测心跳数据中的异常有助于预测心脏病。交通模式的异常有助于预测事故。它还能够用来识别网络基础设施和服务器之间的通信瓶颈。因此,树立在检测异常之上的用例和解决方案是无限的。

我们需要检测异常的另一个原因是,在为机器学习模型准备数据集时,检测一切异常值非常重要,要么去掉它们,要么分析它们,以了解亚太娱乐平台会有异常。

现在,让我们从最简单的方法开头探究 5 种常见的异常检测方法。

方法 1 - 标准差:

在统计学中,如果一个数据分布近似正态分布,那么大约 68% 的数据值在平均值的一个标准差内,约 95% 在两个标准差内,约 99.7% 在三个标准差内。

因此,如果有任何数据点超越标准偏差的 3 倍,那么这些点很可能是异常或异常值。

让我们看看代码。

此代码的输出是一个值大于 80 小于 -40 的值的列表。请注意,我传递的数据集是一维数据集。现在,让我们探究多维数据集的更高级方法。

方法 2 - 箱体图

箱体图是通太过位数对数值数据的图形化描述。这是一种非常简单但有效的方法来可视化异常值。把上下胡须 ( whisker ) 看作是数据分布的边界。任何显示在胡须上方或下方的数据点都能够被视为异常值或异常值。下面是绘制箱体图的代码:

import seaborn as sns

import matplotlib.pyplot as plt

sns.boxplot ( data=random_data )

上面的代码显示下面的图。如您所见,它认为高于 75 或低于 -35 的一切数据都是异常值。结果与上述方法 1 非常接近。

箱体图剖析:

四分位间距(IQR)的概念用于构建箱线图。IQR 是统计学中的一个概念,通过将数据集分成四分位数来衡量统计离散度和数据可变性。

简单地说,依据数据的值以及它们与整个数据集的比较,任何数据集或任何一组观察值被划分为四个定义的区间。四分位数将数据分为三个点和四个区间。

四分位间距(IQR)很重要,因为它用于定义异常值。它是第三个四分位数和第一个四分位数之间的差值(IQR=Q3-Q1)。这种情况下的异常值定义为低于(Q1 1.5x IQR)或 boxplot 下须或以上(Q3+1.5x IQR)或 boxplot 上须的观察值。

方法 3-DBScan 聚类:

DBScan 是一种将数据分组的聚类算法。它也能够作为一种基于密度的异常检测方法,无论是单维数据还是多维数据。别的的聚类算法,如 k-means 和 hierarchal 聚类也能够用来检测异常值。在本例中,我将向您展示一个使用 DBScan 的示例,但是在开头之前,让我们先介绍一些重要的概念。DBScan 有三个重要概念:

核心点:为了了解核心点的概念,我们需要关切一些用于定义 DBScan 作业的超参数。第一个超参数(HP)是 min_samples。这只是组成集群所需的最小核心点数量。第二重要的超参数 HP 是 eps。eps 是两个样本被视为在同一个聚类之间的最大距离。

边界点与核心点在同一个集群中,但距离集群中心远得多。

Source://stackoverflow.com/questions/34394641/dbscan-clustering-what-happens-when-border-point-of-one-cluster-is-considered

别的的一切都被称为噪声点,那些是不属于任何簇的数据点。它们能够是异常的或非异常的,需要进一步的研究。现在,让我们看看代码。

以上代码的输出是 94。这是噪声点的总数。SKLearn 将噪波点标志为(-1)。这种方法的缺点是维数越高,精度就越低。你还需要做一些假设,比如估量 eps 的确切值,这可能很有挑战性。

方法 4- 孤立森林:

孤立森林是一种无监督学习算法,属于集成决策树家族。这种方法差别于以往的一切方法。之前一切的方法都是试图找到数据的正常地区,然后识别出这个定义地区之外的任何异常值或异常值。

这种方法的效果差别。它显式地隔离异常值,而不是通过为每个数据点分配分数来分析和构造正常点和地区。它使用了一个事实,即异常是少数数据点,并且它们的属性值与正常实例的属性值大不相同。该算法适用于高维数据集,是一种非常有效的异常检测方法。由于本文关切的是实现,而不是技术诀窍,因此我将不再进一步讨论算法的工作原理。此文将详细介绍它的工作原理。

现在,让我们探究一下代码:

此代码将输出数组中每个数据点的预测。如果结果为 -1,则表示此特定数据点为异常值。如果结果为 1,则表示数据点不是异常值。

方法 5- 随机森林:

随机森林(RCF)算法是亚马逊用于检测异常的无监督算法。它也通过关联异常分数来工作。低分值表示数据点被视为 " 正常 "。高值表示数据中存在异常。" 低 " 和 " 高 " 的定义取决于应用,但通常的做法是,分数超越平均分的三个标准差被视为异常。详细的算法能够在此文中找到。

这个算法的优点在于它能够处置非常高维的数据。它还能够处置实时流数据(内置于 AWS Kinesis 分析)以及离线数据。

我将在下面的视频中更详细地解释这个概念:

这篇论文中给出了一些与孤立森林比较的性能指标。本文的结果表明,RCF 比孤立森林更精确、更快速。

完整的示例代码能够在这里找到:

awslabs/amazon-sagemaker-examplesExample notebooks that show how to apply machine learning and deep learning in Amazon SageMaker … github.com

结论:

我们生活在一个数据以秒为单位变大的世界。如果使用不妥,数据的价值会随着时间的推移而减少。在流中在线或离线在数据集中发现异常应付识别业务中的问题或构建一个在问题发生之前就潜在地发现问题的主动解决方案,或者甚至在为 ML 准备数据集的探究性数据分析(EDA)阶段,都是至关重要的。我希望您能发现本文有用,请告诉我您的想法在下面的议论局部思索。

雷锋字幕组是一个由 AI 喜好者组成的翻译团队,汇聚五百多位志愿者的力气,分享最新的海外 AI 资讯,交流关于人工智能技术领域的行业变革与技术创新的见解。

团队成员有大数据专家、算法工程师、图像处置工程师、产品经理、产品运营、IT 咨询人、在校师生;志愿者们来自 IBM、AVL、Adobe、阿里、百度等知名企业,北大、清华、港大、中科院、南卡罗莱纳大学、早稻田大学等海内外高校研究所。

如果,你也是位酷爱分享的 AI 喜好者。欢迎与雷锋字幕组一起,学习新知,分享成长。

雷锋网雷锋网

var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?fc03c8be482cb50421070dc544ea100c"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); (function(){ var src = document.location.protocol +'//js.passport.qihucdn.com/11.0.1.js?0cafbe109ab248eb7be06d7f99c4009f'; document.write('