异常点检测算法

异常点算法检测

(请再次刷新使公式显示正常!)

应用
  • 图像:图像去噪
  • 金融:反作弊
  • 医疗:身体异常检测
大方向
  • 基于统计
  • 基于距离
  • 基于分类
    • 输出0/1,是否是异常点
    • p, 属于异常点的概率
基于统计
  • 假设属于正态分布(中心极限定理)
  • 计算均值和方差

$$
\mu = \frac{\sum_{i=1}^n x_i}{n}
$$

$$
\sigma^2 = \frac{\sum_{i=1}^n (x_i-\mu)^2}{n}
$$

  • 选择值超出某个置信区间的数据,如99.7%的范围

$$
\mu \pm 3\mu
$$

多元变量
  • 假设属于多元独立正态分布
  • 计算每一个维度(m 维)的均值和方差

$$
\mu_j = \frac{\sum_{i=1}^n x_{i,j}}{n}
$$

$$
\sigma_j^2 = \frac{\sum_{i=1}^n (x_{i,j}-\mu)^2}{n}
$$

  • 选择某个概率密度之内的数据
    $$
    p(\vec x)= \prod_{j=1}^mp(x_j;\mu_j,\sigma_j^2) = \prod_{j=1}^m\frac{1}{\sqrt{2\pi}\sigma_j}exp(-\frac{(x_j-\mu_j)^2}{2\sigma_j^2})
    $$
变量相关
  • 假设属于多元正态分布(中心极限定理)
  • 计算每个维度(m维)的均值和协方差矩阵
    $$
    \mu=(E(x_1),E(x_2),…,E(x_m))
    $$
    $$
    \sum = [Cov(x_i,x_j)], i,j\in{1,2,…,m}
    $$
  • 选择某个概率密度之内的数据
    $$
    p(\vec x)=\frac{1}{(2\pi)^{\frac{n}{2}}|\sum|^\frac{1}{2}}exp(-\frac{1}{2}(\vec x - \vec \mu)^T \sum_{}^{-1}(\vec x - \vec \mu))
    $$
其他分布

如泊松分布,暂不讨论。

不知道分布

用其他方案,如基于距离/密度的离群点检测

DBSCAN
  • 使用dbscan中的噪声点概念
  • 噪声点:半径r内不够minPts,又没有核心点

Reference

https://www.52ml.net/19790.html
数据挖掘概念和技术 –Jiawei Han
Outlier Analysis –Charu C. Aggarwal