python大数据之异常值处理

Posted addict_jun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python大数据之异常值处理相关的知识,希望对你有一定的参考价值。

文章目录


对于数据异常值处理,我的理解是,这里的异常值不是代表数据出现的异常,而是对于你需要建立的模型来说,处于异常值。

比如你需要正太分布的数据,那么一些不符合正太分布,或者离群太远的值,可以更具你的需要去进行删除,这样你的模型效果就会更好。

简单统计分析

首先是简单的统计分析,比如通过最大最小值判断,什么意思呢?之前比赛遇到过一个二手车价格的问题,别的二手车都是几万到10几万不等,有一个要1000万的二手车。

1000万???,没错就是1000万的二手车,这样的数据,就算他是改装过后的玛莎拉蒂,是真实数据,但是这样的数据会影响模型的判断,所以在数据量大的时候,还是需要删除的。

df_train.max()  #最大值
df_train.min()  #最小值

3σ原则

在正态分布中,σ代表标准差,μ代表均值,x=μ即为图像的对称轴。3σ原则为

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

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

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

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

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

#获取在范围内的数据
new_num=num[(left<num)&(num<right)]

这里数据是numpy的数组。

这些删除数据的方式,都有一定的依据,但是也不能完全按照这些依据,具体情况要看数据。

箱线图

箱线图是一种强大的,数据可视化工具,用于了解数据的分布。它将数据分成四分位数,并根据从这些四分位数得出的五个数字对其进行汇总:

  • 中位数:数据的中间值。标记为 Q2,描绘了第 50 个百分点。

  • 第一个四分位数:“最小非异常值”和中位数之间的中间值。标记为 Q1,描绘了第 25 个百分点。

  • 第三四分位数:“最大非异常值”和中位数之间的中间值。标记为 Q3,描绘了第 75 个百分点。

  • “最大非异常值”:按 (Q3 + 1.5*IQR) 计算。高于此值的所有值都被视为异常值。

  • “最小非异常值”:按 (Q1 – 1.5*IQR) 计算。低于此值的所有值都被视为异常值。

它还可以表示数据的对称性、偏度和分布。

sns.boxplot(x='diagnosis', y='area_mean', data=df)

上述三种是异常值的分析方法,而当找到异常值之后,我们因该如何处理这些异常值呢?

异常值方法处理

1.直接删除

如果数据量多的话,可以直接删除。参考上方3σ原则,或者根据实际情况,删除大于某个值的部分。

2.缺失值

当多缺省值进行处理。

3.修改为平均值

其实也是缺省值中的一种方法。

4.盖帽法

这种方法比较“轻柔”,不容易用力过猛。

5.分箱法

通过分箱,分桶这样的方式,在进行数据填充,会比较合理。

6不处理

这可能是异常值的特点,但是需要使用更加稳健的模型来修饰。

以上是关于python大数据之异常值处理的主要内容,如果未能解决你的问题,请参考以下文章

python大数据挖掘系列之淘宝商城数据预处理实战

使用Python处理非对称加密-测试大佬常用的处理方式

使用 Python 处理非对称加密,竟然如此简单

对称加密之---AES加密

Python,pandas:如何从对称的多索引数据框中提取值

密码学之对称加密算法