15.7 多元高斯分布(可选)

参考视频: 15 - 7 - Multivariate Gaussian Distribution (Optional) (14 min).mkv

假使我们有两个相关的特征,而且这两个特征的值域范围比较宽,这种情况下,一般的 高斯分布模型可能不能很好地识别异常数据。其原因在于,一般的高斯分布模型尝试的是去 同时抓住两个特征的偏差,因此创造出一个比较大的判定边界。

下图中是两个相关特征,洋红色的线(根据 ε 的不同其范围可大可小)是一般的高斯分 布模型获得的判定边界,很明显绿色的 X 所代表的数据点很可能是异常值,但是其 p(x)值却 仍然在正常范围内。多元高斯分布将创建像图中蓝色曲线所示的判定边界。

在一般的高斯分布模型中,我们计算 p(x)的方法是: 通过分别计算每个特征对应的几 率然后将其累乘起来,在多元高斯分布模型中,我们将构建特征的协方差矩阵,用所有的特 征一起来计算 p(x)。

我们首先计算所有特征的平均值,然后再计算协方差矩阵:

注:其中 μ 是一个向量,其每一个单元都是原特征矩阵中一行数据的均值。最后我们计 算多元高斯分布的 p(x):

其中:

|Σ|是定矩阵,在 Octave 中用 det(sigma)计算

Σ1 是逆矩阵,下面我们来看看协方差矩阵是如何影响模型的:

上图是 5 个不同的模型,从左往右依次分析:

  1. 是一个一般的高斯分布模型

  2. 通过协方差矩阵,令特征 1 拥有较小的偏差,同时保持特征 2 的偏差

  3. 通过协方差矩阵,令特征 2 拥有较大的偏差,同时保持特征 1 的偏差

  4. 通过协方差矩阵,在不改变两个特征的原有偏差的基础上,增加两者之间的正相关

  1. 通过协方差矩阵,在不改变两个特征的原有偏差的基础上,增加两者之间的负相关

多元高斯分布模型与原高斯分布模型的关系: 可以证明的是,原本的高斯分布模型是多元高斯分布模型的一个子集,即像上图中的第

1、2、3,3 个例子所示,如果协方差矩阵只在对角线的单位上有非零的值时,即为原本的 高斯分布模型了。

原高斯分布模型和多元高斯分布模型的比较:

原高斯分布模型 多元高斯分布模型
不能捕捉特征之间的相关性 自动捕捉特征之间的相关性
计算代价低,能适应大规模的特征 计算代价较高 训练集较小时也同样适用
必须要有 m>n,不然的话协方差矩阵 不可逆的,通常需要 m>10n 另外特征冗余 也会导致协方差矩阵不可逆

原高斯分布模型被广泛使用着,如果特征之间在某种程度上存在相互关联的情况,我们 可以通过构造新新特征的方法来捕捉这些相关性。

如果训练集不是太大,并且没有太多的特征,我们可以使用多元高斯分布模型。