异常检测之正态分布

简介: 打开微信扫一扫,关注微信公众号【数据与算法联盟】 转载请注明出处:http://blog.csdn.net/gamer_gyt 博主微博:http://weibo.com/234654758 Github:https://github.com/thinkgamer一:异常检测概述1)引用维基百科在数据挖掘中,异常检测(英语:anomaly detection)对不匹配预期模式或数据集中其他项目的项目、事件或观测值的识别。


这里写图片描述
打开微信扫一扫,关注微信公众号【数据与算法联盟】

转载请注明出处: http://blog.csdn.net/gamer_gyt
博主微博: http://weibo.com/234654758
Github: https://github.com/thinkgamer


一:异常检测概述

1)引用维基百科

在数据挖掘中,异常检测(英语:anomaly detection)对不匹配预期模式或数据集中其他项目的项目、事件或观测值的识别。通常异常项目会转变成银行欺诈、结构缺陷、医疗问题、文本错误等类型的问题。异常也被称为离群值、新奇、噪声、偏差和例外。

特别是在检测滥用与网络入侵时,有趣性对象往往不是罕见对象,但却是超出预料的突发活动。这种模式不遵循通常统计定义中把异常点看作是罕见对象,于是许多异常检测方法(特别是无监督的方法)将对此类数据失效,除非进行了合适的聚集。相反,聚类分析算法可能可以检测出这些模式形成的微聚类。

2)有三大类异常检测算法

在假设数据集中大多数实例都是正常的前提下
- 无监督异常检测方法能通过寻找与其他数据最不匹配的实例来检测出未标记测试数据的异常。
- 监督式异常检测方法需要一个已经被标记“正常”与“异常”的数据集,并涉及到训练分类器(与许多其他的统计分类问题的关键区别是异常检测的内在不均衡性)。
- 半监督式异常检测方法根据一个给定的正常训练数据集创建一个表示正常行为的模型,然后检测由学习模型生成的测试实例的可能性。

3)应用领域

异常检测技术用于各种领域,如入侵检测、欺诈检测、故障检测、系统健康监测、传感器网络事件检测和生态系统干扰检测等。它通常用于在预处理中删除从数据集的异常数据。在监督式学习中,去除异常数据的数据集往往会在统计上显著提升准确性。


二:正态分布

1)正态分布介绍

正态分布又名高斯分布,是一个在数学,物理以及工程等领域都非常重要的概率分布。由于这个分布函数有很多漂亮的性质,使得其在诸多设计统计科学离散科学等许多领域都有着重大的影响力。

若随机变量X服从一个位置参数为 μ 尺度参数为 σ 的概率分布,记为:

XN(μ,σ2)

则其概率密度函数为

f(x)=1σ2πe(xμ)22σ2

正态分布的数学期望值或期望值 μ 等于位置参数,决定了分布的位置;其方差 σ2 的开平方或标准差 σ 等于尺度参数,决定了分布的幅度。

2) 标准正态分布

μ = 0, σ=1 ,这个分布被称为标准正态分布,这个分布可以简化为:

f(x)=12πexp(x22)

不同参数的正态分布图:

这里写图片描述

3)正态分布中一些值得注意的量:

  • 密度函数关于平均值对称
  • 平均值与它的众数(statistical mode)以及中位数(median)同一数值。
  • 函数曲线下68.268949%的面积在平均数左右的一个标准差范围内。
  • 95.449974%的面积在平均数左右两个标准差 2σ 的范围内。
  • 99.730020%的面积在平均数左右三个标准差 3σ 的范围内。
  • 99.993666%的面积在平均数左右四个标准差 4σ 的范围内。
  • 函数曲线的反曲点(inflection point)为离平均数一个标准差距离的位置。

更多基础资料参考WIKI :点击查看

三:异常点检测介绍

异常点检测(又称为离群点检测)是找出其行为很不同于预期对象的一个检测过程。这些对象被称为异常点或者离群点。异常点检测在很多实际的生产生活中都有着具体的应用,比如信用卡欺诈,工业损毁检测,图像检测等。

异常点(outlier)是一个数据对象,它明显不同于其他的数据对象,就好像它是被不同的机制产生的一样。例如下图红色的点,就明显区别于蓝色的点。相对于蓝色的点而言,红色的点就是异常点。

这里写图片描述

一般来说,进行异常点检测的方法有很多,最常见的就是基于统计学的方法。

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

假设有 n 个点 (x1,...,xn),那么可以计算出这 n 个点的均值μ 和方差 σ。均值和方差分别被定义为:

μ=i=1nxi/n

σ2=i=1n(xiμ)2/n.

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

2)多元离群点的检测方法

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

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

假设 n 维的数据集合形如x⃗ i=(xi,1,...,xi,n),i{1,...,m},那么可以计算每个维度的均值和方差μj,σj,j{1,...,n}. 具体来说,对于j{1,...,n},可以计算

μj=i=1mxi,j/m

σ2j=i=1m(xi,jμj)2/m

在正态分布的假设下,如果有一个新的数据 x⃗ ,可以计算概率 p(x⃗ ) 如下:
p(x⃗ )=j=1np(xj;μj,σ2j)=j=1n12πσjexp((xjμj)22σ2j)

根据概率值的大小就可以判断 x 是否属于异常值。运用该方法检测到的异常点如图,红色标记为异常点,蓝色表示原始的数据点.

这里写图片描述

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

假设 n 维的数据集合x⃗ =(x1,...,xn) , 可以计算 n 维的均值向量

μ⃗ =(E(x1),...,E(xn))

n×n 的协方差矩阵:
Σ=[Cov(xi,xj)],i,j{1,...,n}

如果有一个新的数据 x⃗ ,可以计算
p(x⃗ )=1(2π)n2|Σ|12exp(12(x⃗ μ⃗ )TΣ1(x⃗ μ⃗ ))

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

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

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

MDist(a,a)=(aa)TS1(aa),

其中 S 是协方差矩阵。

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

运用 Mahalanobis 距离方法检测到的异常点如图,红色标记为异常点,蓝色表示原始的数据点。

这里写图片描述

(4)使用卡方(χ2) 统计量检测多元离群点

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

χ2=i=1n(aiEi)2/Ei.

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

运用χ2统计量检测到的异常点如图,红色标记为异常点,蓝色表示原始的数据点。

这里写图片描述


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

相关文章
|
9天前
ARIMA、ARIMAX、 动态回归和OLS 回归预测多元时间序列
ARIMA、ARIMAX、 动态回归和OLS 回归预测多元时间序列
34 0
ARIMA、ARIMAX、 动态回归和OLS 回归预测多元时间序列
|
9天前
|
存储 数据库
R语言用多项式回归和ARIMA模型预测电力负荷时间序列数据
R语言用多项式回归和ARIMA模型预测电力负荷时间序列数据
|
9天前
|
数据采集
R语言用线性模型进行臭氧预测: 加权泊松回归,普通最小二乘,加权负二项式模型,多重插补缺失值
R语言用线性模型进行臭氧预测: 加权泊松回归,普通最小二乘,加权负二项式模型,多重插补缺失值
|
9天前
|
机器学习/深度学习
R语言用局部加权回归(Lowess)对logistic逻辑回归诊断和残差分析
R语言用局部加权回归(Lowess)对logistic逻辑回归诊断和残差分析
12 2
|
8天前
|
数据可视化 计算机视觉
用回归和主成分分析PCA 回归交叉验证分析预测城市犯罪率数据
用回归和主成分分析PCA 回归交叉验证分析预测城市犯罪率数据
|
10天前
R语言Poisson回归的拟合优度检验
R语言Poisson回归的拟合优度检验
17 4
|
10天前
R语言异方差回归模型建模:用误差方差解释异方差
R语言异方差回归模型建模:用误差方差解释异方差
|
1月前
|
机器学习/深度学习 数据采集 算法
乳腺癌预测:特征交叉+随机森林=成功公式?
乳腺癌预测:特征交叉+随机森林=成功公式?
17 0
乳腺癌预测:特征交叉+随机森林=成功公式?
|
2月前
|
运维 数据挖掘 Python
探索LightGBM:监督式聚类与异常检测
探索LightGBM:监督式聚类与异常检测【2月更文挑战第3天】
27 1
|
4月前
|
存储 机器学习/深度学习 算法
6个常用的聚类评价指标
评估聚类结果的有效性,即聚类评估或验证,对于聚类应用程序的成功至关重要。
109 0

相关实验场景

更多