简单来讲,就是当使用GDA模型时,p(x|y)属于高斯分布,计算p(y}x)时,几乎能得到和logistic回归中使用的sigmiod函数一样的函数,但实际上还是存在本质区别。
实际上,可以证明,不仅仅当先验概率分布服从多变量正态分布时可以推导出逻辑回归模型,当先验概率分布属于指数分布族中的任何一个分布(比如泊松分布)时都可以推导出逻辑回归模型;而反之则不成立,逻辑回归模型的先验概率分布不一定必须得是指数分布族中的成员;因而也说明了逻辑回归模型在建模上的鲁棒性。
由此,我们得到了推导逻辑回归模型的两种方法。第一种是前面的视频中讲到的通过指数分布族来推导;第二种则是刚才提到的通过生成学习假设先验概率分布的方式进行推导。
那么如何选择GDA与逻辑回归模型呢?由上面的分析可以知道,GDA与逻辑回归是泛化与特化的关系,GDA比逻辑回归有更多的前置假设。当数据服从或大致服从正态分布时,使用GDA会达到更好的效果,因为GDA利用了更多的信息构建模型。但是当数据不服从正态分布时,那么逻辑回归更有效,因为它做出更少的假设,构建的模型更加强壮,更加具有鲁棒性。生成学习还有另外的一个好处,就是可以使用比判别学习模型更少的数据构建出强壮的模型。
(三)朴素贝叶斯
GDA针对的是特征向量x为连续值时的问题。而朴素贝叶斯(Navie
Bayes,NB)则针对的是特征向量x为离散值时的问题。
NB算法的标准应用,也是最常见的应用是文本分类问题,例如邮件是否为垃圾邮件的分类。
同其它分类算法一样,NB算法也需要有相应的标准好的数据集。对于文本分类问题来说,使用向量空间模型(vector
space
model,VSM)来表示文本。何为VSM?首先,我们需要有一个词典,词典的来源可以是现有的词典,也可以是从数据中统计出来的词典,对于每个文本,我们用长度等于词典大小的向量表示,如果文本包含某个词,该词在词典中的索引为index,则表示文本的向量的index出设为1,否则为0。
如果按直接对p(x|y)进行建模,那么会遇到参数过多的问题,我们假设词典里拥有50000个词,即向量长度为50000,向量中每个分量的取值为{0,1},那么可能有250000个可能的结果,对其建模则需要250000-1个参数。因而,NB模型做了另外的假设,成为朴素贝叶斯假设,由朴素贝叶斯假设推导出的分类器称为朴素贝叶斯分类器。
朴素贝叶斯假设即是在给定分类y后,假设特征向量中的各个分量是相互独立的。如下式所示:
朴素贝叶斯假设在文本分类问题上的解释是文本中出现某词语时不会影响其它词语在文本中的概率。
以VSM与NB假设为基础,我们就得到了NB方法的参数:
于是,我们就得到了NB方法的极大似然估计的对数函数:
其中,n为词典的大小。最大化该函数,我们得到参数的极大似然估计:
对于新样本,按照如下公式计算其概率值:
以上就是最基本的NB方法。注意到特征向量的每个分量都智能取值{0,1},我们可以将其扩展为{0,1,2,...k},而概率分布由伯努利分布变为多项式分布。对于一些连续的变量,我们可以将其离散化使其可以使用NB方法解决,离散化的方法为将连续变量按值分段。
(四)拉普拉斯平滑
拉普拉斯平滑(Laplace
Smoothing)又被称为加1平滑,是比较常用的平滑方法。平滑方法的存在是为了解决零概率问题。
所谓的零概率问题,就是在计算新实例的概率时,如果某个分量在训练集中从没出现过,会导致整个实例的概率计算结果为0。针对文本分类问题就是当一个词语在训练集中没有出现过,那么该词语的概率为0,使用连乘计算文本出现的概率时,整个文本出现的概率也为0。这显然是不合理的,因为不能因为一个事件没有观测到就判断该事件的概率为0。
对于一个随机变量z,它的取值范围是{1,2,3...,k},对于m次试验的观测结果{z(1),z(2),...z(m))},极大似然估计按照下式计算:
使用Laplace平滑后,计算公式变为:
即在分母上加上取值范围的大小,在分子加1。
回到NB算法,我们可以修正各分量的计算公式: