近期,工作需要试了很多异常检测的方法,统计学和算法相关的都有,所以来总结一下。
在本篇文章主要从原理、python实现、局限的方式讲述以下几种统计学的异常检测的方法:
1、3Sigma
2、Numeric Outlier
3、格拉布斯准则(Grubbs算法)
4、多维度异常检测:马氏距离
1、3igma
原理:
3Sigma又称为拉依达准则,这种判别处理原理及方法仅局限于对正态或近似正态分布的
样本数据处理,原则:
数值分布在(μ-σ,μ+σ)中的概率为0.6827
数值分布在(μ-2σ,μ+2σ)中的概率为0.9545
数值分布在(μ-3σ,μ+3σ)中的概率为0.9973
所以,数据在(μ-3σ,μ+3σ)的概率低于0.01,我们可以称这些数据为异常值。
Python实现:
1、依据历史数据计算出正常区间(μ-3σ,μ+3σ)
2、判断目标数据是否有异常值
#输出正常区间
def ThreeSigmod(value):