上图表示的分布均值均为 ,对应的协方差矩阵为:
左边的图就是标准正态分布,而可以看到随着非对角线上数值的增大,分布在45度方向上压缩的幅度越大,通过下面的轮廓图可以更清楚地展现这个特点:
下面是另一组例子:
上图对应的协方差为:
用图形来表示,该算法可以表示为下图:
这与逻辑回归的形式完全相同。但一般来说,对于相同的数据集两种算法会给出不同的边界,究竟哪一个更好呢?
一个有趣的结论是:
❝如果 属于多元高斯分布(共享 ),那么 一定是逻辑函数,反之不成立。 ❞
总结一下,GDA 进行了更强的模型假设并且数据有效性更高(需要更少的数据来学习),但其前提条件是模型假设正确或近似正确;逻辑回归进行较弱的假设,对于模型假设偏离的鲁棒性更好。如果数据集实际上不是高斯分布,那么在数据有限的情况下,逻辑回归一般会表现得比 GDA 更好。因此,实际中使用逻辑回归的情况比 GDA 多得多。
在高斯判别分析中,输入是连续变量。现在我们要谈谈一个不同的生成学习算法,其中 是「离散变量」。
现在我们有(以50000维度为例):
第一个等式来自于概率的基本性质;第二个等式则使用了朴素贝叶斯假设。即使这个假设在现实中不一定成立,但其实际的效果还是不错的。
在之前的例子中,输入的每一维特征都是是二元的,其对应的分布是伯努利分布。而当特征是多元时,其对应的分布应该用「多项式分布」建模。
实际上,即便一些原始的输入数据是连续值,我们可以通过一个映射表将连续值映射为离散值,然后运用朴素贝叶斯方法进行建模:
当原始连续值的数据不能很好的用多元正态分布进行建模时,将其离散化再使用朴素贝叶斯建模往往会取得更好的效果。