Skip to content

Stanford机器学习笔记——异常检测

1. 正态分布(高斯分布) ​

假设对于一组数据 x∈R,如果它们满足正态分布,且平均数为 μ,方差为 σ2,则记作:

x∼N(μ,σ2)

概率密度函数为:

p(x;μ,σ2)=12πσe−(x−μ)22σ2

图像如下:

如果 μ=0,σ=1,则为标准正态分布。

2. 异常检测 ​

假设有 m 个样本,每个样本有 n 个特征。在每个特征符合独立的正态分布的情况下,首先计算:

μj=1m∑i=1mxj(i)σj2=1m∑i=1m(xj(i)−μj)2

则:

p(x)=∏j=1np(xj;μj,σj2)=∏j=1n12πσje−(xj−μj)22σj2

若 p(x)<ε(其中 ε 是一个给定的较小的值),则认为该样本属于异常点。

如果一个特征不符合正态分布的话,需要做一些处理,使其基本符合正态分布。比如:

xj←log(xj+c)xj←xjc...

3. 多元高斯分布 ​

上面的方法是假设所有的特征都符合相对独立的正态分布。如图所示:

然而事实上,许多情况下,不同特征之间是有着一定的关系的,并不是完全独立,因此上面的方法不再适用。如下图所示:

如果按照特征相对独立的方式来检测异常,将会是红色的圈,那么检测不到红色的点为异常。然而实际上应该是绿色的圈,这样才能检测到红色的点为异常。

此时需要计算协方差。即:

μ=1m∑i=1mx(i)Σ=1m∑i=1m(x(i)−μ)(x(i)−μ)T

然后:

p(x)=1(2π)n2|Σ|12e−12(x−μ)TΣ−1(x−μ)