异常检测之正态分布

简介: 打开微信扫一扫,关注微信公众号【数据与算法联盟】 转载请注明出处: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/

相关文章
|
1月前
|
机器学习/深度学习 数据可视化
FredNormer: 非平稳时间序列预测的频域正则化方法
FredNormer是一种创新的频域正则化方法,旨在提高时间序列预测模型处理非平稳数据的能力。现有正则化技术虽在分布偏移上有所成效,但在频域动态模式捕捉方面存在不足。FredNormer通过自适应增强关键频率分量的权重,解决了这一问题,并设计了即插即用模块,便于集成到各类预测模型中。实验表明,FredNormer在多个公共数据集上显著提升了预测精度,特别是在复杂频率特征的数据集上效果显著。此外,其计算效率也优于现有方法。该方法为非平稳时间序列预测提供了有力工具。
59 3
FredNormer: 非平稳时间序列预测的频域正则化方法
|
1月前
|
机器学习/深度学习 数据可视化
混淆矩阵与 ROC 曲线:何时使用哪个进行模型评估
混淆矩阵与 ROC 曲线:何时使用哪个进行模型评估
42 11
|
3月前
|
机器学习/深度学习 运维 算法
基于距离度量学习的异常检测:一种通过相关距离度量的异常检测方法
异常是数据集中显著偏离多数观察值的记录。例如,在由多个紧密簇构成的数据集中,远离这些簇的孤立点常被视为异常。检测这类异常的传统方法依赖于距离度量,如欧几里得距离或Gower距离,但这些方法可能无法妥善处理特征间的复杂关系或权重问题。为此,本文介绍了一种基于距离度量学习的方法,特别是利用随机森林来评估记录间的相似性。此方法通过构建能够区分真实数据与合成数据的随机森林模型,进而依据记录在树结构中的路径一致性来衡量其相似度。异常记录往往会在多数树中到达较少记录所在的叶节点。
55 1
基于距离度量学习的异常检测:一种通过相关距离度量的异常检测方法
|
5月前
|
算法 数据挖掘 Python
k均值聚类算法
【6月更文挑战第6天】k均值聚类算法。
52 1
|
6月前
|
机器学习/深度学习 数据可视化 数据挖掘
R语言用逻辑回归预测BRFSS中风数据、方差分析anova、ROC曲线AUC、可视化探索
R语言用逻辑回归预测BRFSS中风数据、方差分析anova、ROC曲线AUC、可视化探索
|
6月前
|
数据采集
R语言用线性模型进行臭氧预测: 加权泊松回归,普通最小二乘,加权负二项式模型,多重插补缺失值
R语言用线性模型进行臭氧预测: 加权泊松回归,普通最小二乘,加权负二项式模型,多重插补缺失值
|
6月前
|
存储 数据库
R语言用多项式回归和ARIMA模型预测电力负荷时间序列数据
R语言用多项式回归和ARIMA模型预测电力负荷时间序列数据
|
6月前
|
机器学习/深度学习 算法 数据可视化
R语言逻辑回归和泊松回归模型对发生交通事故概率建模
R语言逻辑回归和泊松回归模型对发生交通事故概率建模
|
6月前
R语言异方差回归模型建模:用误差方差解释异方差
R语言异方差回归模型建模:用误差方差解释异方差
|
11月前
|
存储 机器学习/深度学习 算法
6个常用的聚类评价指标
评估聚类结果的有效性,即聚类评估或验证,对于聚类应用程序的成功至关重要。
234 0