登录
首页大数据时代教你使用3σ原则来进行异常值处理
教你使用3σ原则来进行异常值处理
2020-07-31
收藏

python数据清洗过程中,我们经常会遇到一些偏离正常范围的数据,例如人的体重为56吨,这些数据叫做异常值,如果不做异常值处理,会对我们最终的数据分析造成影响。小编今天给大家带来了一种很实用的异常值处理方法—3σ原则,希望对大家有所帮助。

一、哪些数据是异常值

异常值,指的是数据集中存在不合理的值,又叫做离群点。异常值处理就是要将这些离群点找出来,然后进行分析,并确定如何处理,采用何种方式处理。

二、异常值出现原因

1.传感器故障

2.数据录入错误

3.异常事件

三、3σ原则异常值处理

1.正态分布

数据服从正态分布正态分布,又叫做高斯分布。特征为中间高两边低左右对称。

正态分布特性:

1)集中性:曲线的最高峰位于正中央,并且位置为均数所在的位置。

2)对称性:以均数所在的位置为中心呈左右对称,并且曲线两段无限趋近于横轴。

3)均匀变动性:正态分布曲线以均数所在的位置为中心均匀向左右两侧下降。

正态分布函数公式如下:

2.3σ原则

3σ原则是建立在正态分布的等精度重复测量基础上而造成奇异数据的干扰或噪声难以满足正态分布。如果一组测量数据中的某个测量值的残余误差的绝对值 νi>3σ,则该测量值为坏值,应剔除.通常把等于 ±3σ的误差作为极限误差,对于正态分布的随机误差,落在 ±3σ以外的概率只有 0.27%,它在有限次测量中发生的可能性很小,故存在3σ准则.3σ准则是最常用也是最简单的粗大误差判别准则,它一般应用于测量次数充分多( n ≥30)或当 n>10做粗略判别时的情况.

σ代表标准差,μ代表均值

样本数据服从正态分布的情况下

数值分布在(μ-σ,μ+σ)中的概率为0.6826

数值分布在(μ-2σ,μ+2σ)中的概率为0.9544

数值分布在(μ-3σ,μ+3σ)中的概率为0.9974

可以认为,Y 的取值几乎全部集中在(μ-3σ,μ+3σ)区间内,超出这个范围的可能性仅占不到0.3%。

3.python实现


#用numpy随机生成100个服从正态分布的随机数
num=np.random.randn(100)
#随机插入两个异常值进去,此时num.shape[0]==102
np.apend(num,[10,20])

#设定法则的左右边界
left=num.mean()-3*num.std()
right=num.mean()+3*num.std()

#获取在范围内的数据
new_num=num[(left<num)&(num<right)]
new_num.shape
#结果为100,已经剔除了刚开始插入的两个异常值


数据分析咨询请扫描二维码

客服在线
立即咨询