zoukankan      html  css  js  c++  java
  • 异常点检测算法

    基于统计学的方法

    一、基于正态分布的一元离群点检测方法

    假设有 n 个点$(x_1, ...,x_n)$, 那么可以计算出这n个点的均值$mu$和方差$sigma$.均值和方差分别被定义为:

     

    在正态分布的假设下,区域$mu +- 3 sigma$包含了99.7% 的数据,如果某个值距离分布的均值$mu$超过了$3 sigma$,那么这个值就可以被简单的标记为一个异常点(outlier)。

    二、多元离群点的检测方法

    涉及两个或者两个以上变量的数据称为多元数据,很多一元离群点的检测方法都可以扩展到高维空间中,从而处理多元数据。

     1)基于一元正态分布的离群点检测方法

    假设n维的数据集合形如,那么可以计算每个维度的均值和方差,具体来说,对于 ,可以计算

    在正态分布的假设下,如果有一个新的数据,可以计算概率如下:

    根据概率值的大小就可以判断 x 是否是异常值,显然概率值越小,异常值的可能性越大

     2)多元高斯分布的异常点检测

    假设 n 维的数据集合 vec{x}=(x_{1},...,x_{n}), ,可以计算 n 维的均值向量

    vec{mu}=(E(x_{1}),...,E(x_{n}))

    和 n	imes n 的协方差矩阵

    Sigma=[Cov(x_{i},x_{j})], i,j in {1,...,n}

    如果有一个新的数据 vec{x},可以计算

    p(vec{x})=frac{1}{(2pi)^{frac{n}{2}}|Sigma|^{frac{1}{2}}} exp(-frac{1}{2}(vec{x}-vec{mu})^{T}Sigma^{-1}(vec{x}-vec{mu}))

    根据概率值的大小就可以判断 vec{x} 是否属于异常值

     3)使用Mahalanobis距离(马氏距离)检测多元离群点

    对于一个多维的数据集合 D,假设 overline{a} 是均值向量,那么对于数据集 D 中的其他对象 a,从 a 到 overline{a} 的 Mahalanobis 距离是

    MDist(a,overline{a})=sqrt{(a-overline{a})^{T}S^{-1}(a-overline{a})},

    其中 S 是协方差矩阵。

    在这里,MDist(a,overline{a}) 是数值,可以对这个数值进行排序,如果数值过大,那么就可以认为点 a 是离群点。或者对一元实数集合 {MDist(a,overline{a})|ain D} 进行离群点检测,如果 MDist(a,overline{a}) 被检测为异常点,那么就认为 a 在多维的数据集合 D 中就是离群点。

     4)使用统计量检测多元离群点

    在正态分布的假设下,chi^{2} 统计量可以用来检测多元离群点。对于某个对象 old{a}chi^{2} 统计量是

    chi^{2}=sum_{i=1}^{n}(a_{i}-E_{i})^{2}/E_{i}.

    其中,a_{i} 是 old{a} 在第 i 维上的取值,E_{i} 是所有对象在第 i 维的均值,n 是维度。如果对象 old{a} 的 chi^{2} 统计量很大,那么该对象就可以认为是离群点。

    基于矩阵分解的异常点检测方法

    基于主成分分析(PCA)的算法会把原始数据从原始的空间投影到主成分空间,然后再把投影拉回到原始的空间。如果只使用第一主成分来进行投影和重构,对于大多数的数据而言,重构之后的误差是小的;但是对于异常点而言,重构之后的误差依然相对大。这是因为第一主成分反映了正常值的方差,最后一个主成分反映了异常点的方差。

    https://zr9558.com/2016/06/23/outlierdetectiontwo/

    https://zr9558.com/2016/06/13/outlierdetectionone/

  • 相关阅读:
    前端开发和网页设计的过去和未来
    Web开发人员vs网页设计师
    Linux最终将会领先于Windows、Mac OS!
    Linux 大爆炸:一个内核,无数发行版
    因PHP漏洞,超过4.5万个中国网站被攻击
    在 Linux 中自动配置 IPv6 地址
    echart-折线图,数据太多想变成鼠标拖动和滚动的效果?以及数据的默认圈圈如何自定义圆圈的样式
    用TweenMax.js动画让数字动起来
    zrender笔记----(数字Number组件)出现的问题和解决办法
    面试题常考&必考之--js中的数组去重和字符串去重
  • 原文地址:https://www.cnblogs.com/ljygoodgoodstudydaydayup/p/7413121.html
Copyright © 2011-2022 走看看