首页 理论教育 离群点(异常值)的处理方法

离群点(异常值)的处理方法

时间:2023-06-27 理论教育 版权反馈
【摘要】:离群点是数据分布的常态,处于特定分布区域或范围之外的数据通常被定义为异常值。异常值是指样本中的个别值,其数值明显偏离观测值的平均值。例如年龄为200岁;平均收入为10万元时,有个异常值为300万元。找到异常值后,常用处理方法是删除离群点,异常值是否剔除,要视具体情况而定。

离群点(异常值)的处理方法

离群点(Outlier)是数据分布的常态,处于特定分布区域或范围之外的数据通常被定义为异常值。异常值是指样本中的个别值,其数值明显偏离观测值的平均值。例如年龄为200岁;平均收入为10万元时,有个异常值为300万元。第一个异常值为无效异常值,需要删掉,但是第二个异常值可能属于有效异常值,可以根据经验来决定是否保留。在很多情况下,要先分析异常值出现的可能原因,常用的异常值处理方法如表3-2所示。判断异常值是否应该舍弃,如果是正确数据,可直接在具有异常值的数据集上进行挖掘建模。

表3-2 常用的异常值处理方法

异常值的检测和处理对于某些数据分析结果影响很大,如聚类分析线性回归(逻辑回归),但是对决策树神经网络、SVM支持向量机影响较小。常用的异常值分析方法有:简单的统计量分析、3σ\sigma原则、箱形图分析。

箱形图可以用来观察数据整体的分布情况,利用中位数、25%分位数、75%分位数、上边界、下边界等统计量来描述数据的整体分布情况。通过计算这些统计量,生成一个箱体图,箱体包含了大部分正常数据,而在箱体上边界和下边界之外的就是异常数据。找到异常值后,常用处理方法是删除离群点,异常值是否剔除,要视具体情况而定。

例3_5_The box diagram analyzes outliers.py

例3_5中的matplotlib是一个Python的二维绘图库,matplotlib的对象体系也是计算机图形学的一个优秀范例。受MATLAB启发构建,matplotlib.pyplot模块是使matplotlib像MATLAB一样工作的命令样式函数的集合。对应的实验处理结果如图3-2所示,count是指销售数据的总次数,均值是2 755.214 7,最大值max是9 106.44,最小值min是22。将分位数数据由小到大排序,处于中间的为中位数,即50%分位数为2 655.85,在75%位置的即75%分位数或四分之三分位数——Q3的值为3 026.125,在25%位置的即25%分位数或四分之一分位数——Q1的值为2 451.975。其中上、下边界的计算公式如下:

参数说明:Q1表示下四分位数,即25%分位数;Q3为上四分位数,即75%分位数;IQR表示上下四分位差,系数1.5是一种经过大量分析和经验积累起来的标准,一般情况下不做调整。分位数的参数可根据具体预警结果调整:25%和75%是比较灵敏的条件,在这种条件下,多达25%的数据可以变得任意远而不会很大地扰动四分位。

(www.xing528.com)

图3-2 箱形图分析检测异常值

经计算得,上边界的值为3 887.225,下边界的值为1 590.75。据箱形图分析可知,比下边界值低或比上边界值高的都属于异常值,如图3-2中,位于箱体外的9 106.44、6 607.04、4 065.2、4 060.3、865.0、60.0、51.0、22.0都属于异常值,符合计算标准。日常来说,具体业务中可结合拟合结果自行调整为其他分位。

除此,还有一种更为优雅的集处理缺失值、重复值、异常值于一体的方法——pandas pipe()函数。

例3_6_pandas pipe().py

pandas pipe()实现数据清洗。首先从数据创建数据帧开始,然后使用fill_missing_values()函数处理缺失值,drop_duplicates()函数去除重复值,remove_outliers()函数消除异常值。最后集pandas pipe()于一体实现数据的多个预处理操作于单个操作管理。处理结果如下,对缺失数据进行了均值填充,消除了出现异常值112编号为5的行数据,同时解决了ID重复(编号0和1的ID值同时为100)的问题,避免了冗余数据重复。此外,针对ID重复这一问题,可以通过生成唯一的随机ID方法来解决,即调用monotonically_increasing_ID()函数。此方法生成的数据会放到大约10亿个分区中,每个分区不重复数据8亿条,一般情况下,数据是不会重复的。

总的来讲,数据清洗是一项繁重的任务,特别是脏数据能使挖掘过程陷入混乱,导致不可靠的输出。需要根据数据的准确性、完整性、一致性、时效性、可信性和解释性来考察数据,从而得到标准的、干净的、连续的、有效的数据。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈