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

  统计/机器学习 无监督学习    浏览次数:976        分享
1

单一变量的数据集里大部分都是正常数据,很少有异常点,不过还是需要把它们挑出来的,有没有什么好的异常检测的方法呢?

 

正在学习中   2022-04-22 15:56



   1个回答 
3

基于模型的异常检测基本就是isolation forest或者 one class svm,也可以考虑autoencoder,kmeans。

单一变量的也可以直接对变量分布做拟合,看数据点在样本中的百分位,百分位很低,或者很高就可以认为是以上点。比如远离中位数3倍IQR以上,或者正态分布的3sigma原则,就是这个道理。

也可以考虑KL-divergence,JS-divergence这些复杂一点的统计指标。

如果是时间维度的单变量,那么就是时间序列的异常检测了,那可以做的就更多了,可以用预测的方法来判断拟合值和实际值的差,差值大的就是异常值了。时间序列的话,也就可以同时考虑周期之类的。


如果是数据是非数值类的,是文本类的,那也是看出现的概率了;如果是时间序列里的分类变量,就可以参考马尔可夫之类的。

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

黑泽先生   2022-05-01 22:13



  相关讨论

kNN用来做异常点检测?

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

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

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

学习曲线异常分析

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

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

对于异常数据的判断?

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

聚类问题可以用stacking model的方法吗?

  随便看看

如果样本不是正态分布,还能用t-test或者z-test吗?

为什么机器学习中的优化问题很少用到牛顿法?

如何清空pandas dataframe里的全部数据但是保留列名?

推荐系统中的召回(recall)是什么意思?

huber loss是什么?什么时候用?