前言
机器学习中数据预处理阶段,首先要考虑的就是将数据集中的异常值找出来,然后再做额外处理。当然,异常值的处理并不存在什么银弹,只能具体情况具体分析再根据效果选择处理方法。
直方图
看看数据集直方图也许能看出点端倪,比如下面这个图,下方的是原始数据集,上面的是对应直方图,可以看到大多数都分布在11000左边,它的右边存在一些分布,这些分布极少的点很可能就是异常点。
sigma原则
一些简单的场景可能直接使用某些准则就能找出异常值,比如3 sigma或5 sigma之类的。如下图,这里用3 sigma准则找到5个异常点。该过程主要计算出平均值mu
和标准差sigma
,然后再比较[mu-3*sigma,mu+3*sigma]
二次sigma处理
如果直接使用sigma原则效果不好,也就是说可能有些没问题的点被识别成异常点,或者有些异常点没有被发现,那么这种情况下可以考虑用二次sigma处理。第一次使用n1 sigma,第二次n2 sigma。
快速傅里叶变换
如果是周期性的时序数据,假如原始信号包含了噪音,可以考虑用快速傅里叶变换找出异常点