如果数据不是正态分布,能用3sigma原则剔除异常值吗?

  统计/机器学习 概率分布 无监督学习 数据预处理    浏览次数:9507        分享
0

如果数据不是正态分布,能用3sigma原则剔除异常值吗?

 

ysz_2020   2020-02-29 14:57



   3个回答 
6

如果不是正态分布,3$\sigma$原则不一定适用,但是如果是近似正态分布,应该问题不大。

如果不知道数据分布,可以用中位数+3IQR的方法。也可以用box-cox把数据转成近似正态分布,然后再用3$\sigma$的方法。

SofaSofa数据科学社区DS面试题库 DS面经

黑泽先生   2020-03-01 17:58

谢谢 - ysz_2020   2020-03-04 00:43
2

具体分析。3sigma的原理是正态分布时,3sigma能覆盖超过99%的数据。对于别的分布,3sigma的覆盖率会变化。比如log-normal这类的长尾分布,3sigma方法会把太多数据分类为异常。

你可以做实验,比如对N个数据算3sigma,再看异常个数是否能接受。

SofaSofa数据科学社区DS面试题库 DS面经

Zealing   2020-02-29 17:46

谢谢 - ysz_2020   2020-03-04 00:43
1

如果数据不是正态分布,直接用3sigma,后果可能是你删除了太多数据,也可能你什么数据都删不掉。

我觉得最重要的是要结合业务逻辑,如果符合业务逻辑,即使是超出这个范围的数值也不一定非要剔除。

SofaSofa数据科学社区DS面试题库 DS面经

AlphaCat   2020-04-06 14:46



  相关讨论

离群点、孤立点、异常点有什么区别吗?

单一变量下的异常检测该怎么做?

在训练前数据处理的时候,怎么剔除异常值?

kNN用来做异常点检测?

如果不去掉异常值(outlier),会对线性回归模型有什么影响?

学习曲线异常分析

对于异常数据的判断?

如何用K Means做异常检测(outlier anomaly detection)?

auto-encoder异常检测的问题,无标签情况下怎么进行预测?

关于高斯混合模型的分布的疑问

  随便看看

去掉pandas DataFrame的index的名字

dataframe每行或者每列中缺失值(na, nan, null)的个数

怎么添加pandas的dataframe到已有的csv文件,并且不覆盖原内容

向量梯度下降优化的最佳步长?

两个凸函数相加,还是凸函数吗?