欢迎访问察北家纺网

标准差符号(标准差符号手写图片)

频道:生活百科 日期: 浏览:1248

       在开展数据科学项目时,您在寻找什么? EDA阶段最重要的部分是什么?如果在EDA阶段没有完成某些事情,可能会影响进一步的统计、机器学习建模。其中之一是找到“异常值”。在这篇文章中,我们将尝试了解什么是异常值?为什么识别异常值很重要?方法是什么?不要担心,我们不会仅仅只讲理论部分,我们也会对数据进行一些编码和绘图。

       异常值

       百度百科定义:

       是指一组测定值中与平均值的偏差超过两倍标准差的测定值,与平均值的偏差超过三倍标准差的测定值,称为高度异常的异常值。

      

       上述定义表明异常值与人群是分开的、不同的。许多动机视频表明与众不同,特别是Malcolm Gladwell。在统计方面,这是否也是好事?我们将通过这篇文章来发现其中的秘密。

       你看到上面的图像有什么不同吗?只有3是和别的数字不同的,这就是我们的异常值,因为它不接近其他号码的位置。

       我们现在知道什么是异常值,但是,你是否也想知道异常值应该如何向人们介绍?

       数据科学项目从收集数据开始,这是异常值首次引入人群的时间。尽管如此,在收集阶段你根本不知道它,异常值可能是数据收集过程中出现错误的结果,也可能只是数据中的方差的一个表示。

       我们来看一些例子。假设你被要求观察印度板球队的表现,由每个球员跑动并收集数据。

      

采集数据

       从上面采集的数据可以看出,除了球员3得分为10外,其他所有玩家都获得了300+。这个数字可能只是一个输入错误,或者它显示了数据的差异,并表明球员3的表现非常糟糕,因此需要改进。

       既然我们知道异常值可能是一个错误或者只是一个方差,你会如何决定它们是否重要。那么,如果它们是错误的结果,那么它非常简单,我们就可以忽略它们,但如果它只是数据的变化,我们需要进一步思考。在我们尝试了解是否忽略异常值之前,我们需要知道如何识别它们。

       大多数人可能会想,就像我们在前面提到的板球例子中所做的那样,我可以在数据的高峰期找到异常值。让我们考虑一个包含500列和10k +行的文件,您是否仍然认为可以手动找到异常值?为了减轻异常值的发现,我们有很多统计方法,但我们只会讨论其中的一些。大多数情况下,我们会尝试查看可视化方法(最简单的方法)而非数学方法。

       所以,我们开始吧。我们将使用包含在sklearn数据集API中的波士顿房屋定价数据集。我们将加载数据集并分离出特征和目标。

      

      

波士顿楼市数据

       特征/自变量将用于查找异常值,看看上面的数据,看起来,我们只有数值,我们也不需要做任何数据格式化。

       我们将根据两种类型的分析找出异常值,单变量(一个变量异常值分析)和多变量(两个或多个变量异常值分析)。不要感到困惑,当你开始编码和绘制数据时,你会发现自己检测异常值有多容易。为了简单起见,我们将从检测异常值的基本方法开始,并慢慢地继续前进方法。

       箱形图-

       维基百科定义,

       箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。在各种领域也经常被使用,常见于品质管理。

       上面的定义表明,如果存在异常值,它将绘制为箱形图中的点,但其他人群将被组合在一起并显示为框。让我们尝试自己看看。

      

      

箱型图

       上面的图表显示了10到12点之间的三个点,这些是异常值,因为没有包括在其他观测值的框中,即没有位于四分位点附近。

       这里我们分析了Uni-variate异常值,即我们只使用DIS列来检查异常值。但我们也可以进行多元异常分析。我们可以用箱型图进行多元分析吗?那么它取决于,如果你有一个分类值,那么你可以使用任何连续变量,并进行多元异常值分析。由于我们在波士顿房屋数据集中没有明确的价值,因此我们可能需要忘记使用箱形图进行多变量异常值分析。

       散点图-

       百度百科定义

       散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对数据点进行拟合。如定义所示,散点图是显示两个变量值的点的集合。我们可以尝试从我们的住房数据集中绘制两个变量的散点图。

      

      

散点图 - 每个城镇的非零售业务亩比例v / s全价值物业税

       看上面的情节,我们可以将大部分数据点放在左下方,但是有些点远离右上角的人口。

       用数学函数发现异常值

       Z-Score-

       百度百科定义

       Z-Score是观测值或数据点的值高于被观测或测量的平均值的标准偏差的有符号数。

       Z-score背后的直觉是通过查找它们与数据点组的标准差和均值的关系来描述任何数据点。它是找到数据的分布,其中平均值为0,标准偏差为1,即正态分布。

       你一定想知道,这对识别异常值有什么帮助?那么,在计算Z-Score的同时,我们对数据进行重新缩放和居中,并查找距离零太远的数据点。这些距离零太远的数据点将被视为异常值。在大多数情况下,使用3或-3的阈值,即,如果Z-Score分别大于或小于3或-3,则该数据点将被识别为异常值。

       我们将使用在scipy库中定义的Z-score函数来检测离群值。

      

      

波士顿房屋数据的Z-Score

       看上面的代码和输出,很难说哪个数据点是异常值。让我们试着定义一个阈值来识别异常值。

      

       将给出如下结果:

Z-Score大于3的数据点

       不要被结果所迷惑。第一个数组包含行号列表和第二个数组各自的列号,这意味着z [55] [1]的Z-Score高于3。

      

       箱型图使用IQR方法显示数据和异常值(数据的形状),但为了获得已识别的异常值列表,我们需要使用数学公式并检索异常值数据。

       IQR

       维基百科定义

       四分位距(IQR)也称为四分差,是衡量统计偏差的指标,等于第75和第25百分位之间的差值,或者等于上和下四分位数之间的差值,IQR = Q3 - Q1。

       换句话说,IQR是从第三个四分位数中减去的第一个四分位数;这些四分位数可以在数据上的盒子图上清楚地看到。

       它是类似于标准偏差或方差的分散度的度量,但对于异常值来说更加稳健。

       就查找数据分布而言,IQR与Z-score有些相似,然后保留一些阈值以确定异常值。

       让我们来看看我们可以使用IQR对盒子图进行绘图,以及我们如何使用它来找到异常值列表,就像我们使用Z分数计算一样。首先我们将计算IQR,

      

       在这里,我们将获得每列的IQR。

      

IQR为每列

       因为我们现在有IQR分数,现在是时候控制异常值了。下面的代码将给出具有一些真值和假值的输出。我们有False的数据点表示这些值是有效的,而True表示存在异常值。

      

      

用IQR检测异常值

       现在我们知道如何检测异常值,了解它们是否需要删除或更正很重要。在下一节中,我们将考虑一些删除异常值的方法,并且如果需要的话可以输入新的值。

       使用异常值:更正、删除

       在数据分析过程中,当您发现异常值时,最难的决定之一可能是应该如何处理异常值。他们应该删除它们还是纠正它们?在我们讨论这个之前,我们将看看几种去除异常值的方法。

       Z-Score

       在前一节中,我们看到了如何使用Z-score来检测异常值,但现在我们想要移除或过滤异常值并获取干净的数据。这可以用一行代码完成,因为我们已经计算了Z分数。

      

      

有和没有异常值数据集的大小

       因此,上面的代码从数据集中移除了大约90多行,即异常值已被删除。

       IQR评分 -

       就像Z-score一样,我们可以使用以前计算的IQR分数来通过仅保留有效值来过滤掉异常值。

      

       上面的代码将从数据集中移除异常值。

       有多种方法可以检测和删除异常值,但我们用于此练习的方法被广泛使用并且易于理解。

       是否应该删除异常值。每一位数据分析师、数据科学家可能会在他们正在处理的每一个问题中都得到这些想法。我找到了一些很好的解释。

       总结他们的解释,包括错误的数据、错误的计算,这些可以被识别为离群值,并应该在他们改变数据的水平时被丢弃,也就是说,当您建模数据时会引起问题的平均值。对于前5人获得10K,20K,30K,40K和50K的薪水,突然其中一人开始获得100K的薪水。考虑到这种情况,因为你是一名雇主,新的薪资更新可能被视为有偏见,或者你可能还需要增加其他员工的薪水,以保持平衡。因此,您可能有多种理由想要了解并纠正异常值。

       总结

       在整个练习中,我们看到了数据分析阶段如何能够遇到一些不寻常的数据,即异常值。我们了解了可用于检测和删除这些异常值的技术。但是有人提出了一个关于确定是否可以移除异常值的问题。为了回答这些问题,我们发现了更多的读物(这些链接在前一节中提到)。希望这篇文章有助于读者了解异常值。

       注:对于本练习,使用了下面的工具和库。

       框架- Jupyter笔记本、语言- Python、库- sklearn库、Numpy,、Panda和Scipy,、Plot Lib- Seaborn和Matplot。