数据分析中对缺失值和异常值的处理
2020-01-15 本文已影响0人
清梦载星河
在数据分析、数据挖掘中,每一个分析师几乎都遇见过数据缺失或异常的问题。
1. 缺失值的常见处理方法
1.1 知其然:什么导致了数据缺失?
很多数据分析书在谈到处理缺失值时,给出的方法就是:删除、替换、填充。这个是没什么大问题的,但新手分析师刚上手,大概率就是生搬硬套。毕竟就这三个方法,时间充足的话,直接三个方法都用,总有一个方法的处理是对的。但其实应当先知道数据缺失的原因,知根知底才能更从容地处理缺失值。比如填写问卷时,用户可能会漏掉一个选项;还有信用卡激活日期缺失,这种情况可能是因为日期丢失,也可能是因为信用卡还没激活;还有一些缺失值问题可能是由于错误的数学运算导致。
上述例子有不同的缺失原因,在处理时就需要不同的处理方法。
1.2 判断缺失值是否需要特殊处理
有些缺失值具有特定的商业意义。比如上一条中信用卡的例子,激活日期的缺失可能就是因为用户没有激活,对于这部分用户的数据就要特殊处理。
1.3 直接删除缺失值
直接删除是处理缺失值时常用方法,尤其是数据规模比较大而缺失数据相对较少的时候,可以直接删除包含缺失值的数据对象或变量,省时省力
1.4 替换缺失值
替换缺失值的数值一般用全集中的代表性属性,比如众数、均值,最值、中位数等。直接替换缺失值的好处在于简单直观,并且有相当的依据。缺点就是不能完全代表缺失数据本身真实的含义。
1.5 对缺失值进行赋值
使用各种机器学习方法来预测缺失值的最近替代值,也就是把缺失数据对应的变量当作目标变量,其他输入变量当自变量。理论上,这种方法最严谨,但时间和分析资源的成本上较高。
2. 异常值的常见处理技巧
2.1 异常值的判断
- 对于类别型变量来说,如果某个类别值出现的频率太小,就可能是异常值,具体拿经验值来参考。一般某个类别值的分布占比不到1%就可能是异常值。
- 对于区间型变量,对于区间型变量来说,最简单有效的方法就是把所有的观察对象按照变量的取值从小到大进行排列,然后从最大的数值开始倒推0.1%甚至更多的观察值,这些最大的数值就很可能是异常值。
- 也可以将标准差作为衡量标准,把超过均值n个标准差以上的取值定义为异常值,这里的n的取值范围取决于具体的业务场景和不同变量的合理分布。
2.2 异常值的常见处理
- 异常值的常见处理就是直接删除。
- 在某些特定业务场景下,异常值的应用是另一个业务方向。比如信用卡体系的恶意欺诈事件判断。
本文大部分内容摘自《数据挖掘与数据化运营实战》(卢辉著)一书