异常值又称离群点。

异常值的鉴别

1.描述分析

pandas: data.describe() 可以得到连续型数据的均值、最大值、最小值、中位数、四分位、总数、标准差等。通过描述分析查看出数据中有无极端值,并将极端值剔除。一般可以初步筛查时使用。

2.散点图

通过展示两组数据的位置关系,可以清晰直观地看出哪些值是离群值。异常值会改变数据间的关系,通常在研究数据关系,如进行回归分析前,都会先做散点图观察数据中是否存在异常值。

3.箱型图

利用箱型图的四分位距(IQR interquartile range)对异常值进行检测,也叫Tukey's test。四分位距(IQR)就是上四分位与下四分位的差值。而我们通过IQR的1.5倍为标准,规定:超过(上四分位+1.5倍IQR距离,或者下四分位-1.5倍IQR距离)的点为异常值。

4.3∂原则

这个原则有个条件:数据需要服从正态分布。在3∂原则下,异常值如超过3倍标准差,那么可以将其视为异常值。正负3∂的概率是99.7%,那么距离平均值3∂之外的值出现的概率为P(|x-u| > 3∂) <= 0.003,属于极个别的小概率事件。如果数据不服从正态分布,也可以用远离平均值的多少倍标准差来描述。

5.专门的离群点检测方法

One Class SVM

Isolation Forest

异常值的处理

1.删除含有异常值的记录。如果观测值太少,会造成样本量的不足。可能会对原有变量的分布造成影响,从而导致统计模型不稳定。

2.视为缺失值,利用缺失值方法处理

3.平均值修正:利用前后两个观测值的平均值进行修正。适用于样本量小的情况。优点是克服了丢失样本的缺失,缺点是丢失了样本的特色。

4.不处理:直接在具有异常值的数据集上进行数据挖掘。

5.盖帽法:整行替换数据框里99%以上和1%以下的点,将99%以上的点值=99%的点值;小于1%的点值=1%的点值。