前面已经提到了高斯分布与在异常检测中的运用。现在再来谈谈多元高斯分布。
一、为什么用到了多元高斯分布?
假设我们有两个相关的特征,而且这两个特征的值域范围比较宽,这种情况下,一般的高斯分布模型可能不能很好的识别异常数据。其原因在于,一般的高斯分布模型尝试的是去同时抓住两个特征的偏差(从p(x) = p(x1) * p(x2) 就可以看出),因此创造出一个比较大的判定边界。
下图中是两个相关特征,洋红色的线(根据 ε 的不同其范围可大可小, ε 越小,包含的范围越大)是一般的的高斯分布模型获得的判定边界,很明显绿色的 X 所代表的数据点很可能是异常值,但是其 p(x) 值却仍然在正常范围内。多元高斯分布将创建图中蓝色曲线所示的判定边界。
二、多元高斯分布的相关公式
在一般的高斯分布模型中,我们计算p(x)的方法是:通过分别计算每个特征对应的几率然后将其累乘起来。如下所示:
而在多元高斯分布模型中,我们将构建特征的协方差矩阵,用所有的特征仪器来计算p(x)。如下所示:
注:其中 μ 是一个向量,其每个单元都是原特征中一行数据的均值。如下所示:
最后,我们计算多元高斯分布的p(x):
其中,是协方差矩阵Σ的行列式;是其逆矩阵。
下面再来看看协方差矩阵是如何影响模型的:
上图是5个不同的模型,我们从左往右依次分析:
1.是一个一般的高斯分布模型
2.通过协方差矩阵,令特征1拥有较小的偏差,同时保持特征2的偏差
3.通过协方差矩阵,令特征2拥有较大的偏差,同时保持特征1的偏差
4.通过协方差矩阵,在不改变两个特征的原有偏差的基础上,增加两者之间的正相关性
5.通过协方差矩阵,在不改变两个特征的原有偏差的基础上,增加两者之间的负相关性
三、多元高斯分布模型与原高斯分布模型的关系
可以证明的是,原本的高斯分布模型是多元高斯分布模型的一个子集,即像上图中的第1、2、3,3个例子所示,如果协方差矩阵只在对角线的单位上有非零的值时,即为原本的高斯分布模型。
原高斯分布模型和多元高斯分布模型的比较:
原高斯分布模型被广泛使用者,如果特征之间在某种程度上存在相互关联的情况,我们可以通过构造新特征的方法来捕捉这些相关性。
如果训练集不是太大,并且没有太多的特征,我们可以使用多元高斯分布模型。
四、在异常检测中的应用
前面已经谈到了原高斯分布模型在AD中的应用,现在再来看看多元高斯分布在AD中的应用。如下所示: