高斯判别分析(GDA)和朴素贝叶斯(NB)
本文先介绍生成模型(generative model)和判别模型(discriminative model)的区别,然后重点介绍生成模型中的两个例子:高斯判别分析(Gaussian discriminant analysis)和朴素贝叶斯方法(Naive Bayes)
生成模型和判别模型
监督学习一般学习的是一个决策函数:
或者是条件概率分布:
判别模型直接用数据学习这个函数或分布,例如Linear Regression和Logistic Regression。
生成模型是用数据先学习联合概率分布,然后根据贝叶斯公式求:
预测数据x的时候,当最大时,此时的y即预测结果:
这里用了期望风险最小化准则(Empirical Minimization Principle),具体可以查看《统计学习方法》的chapter4.1.2。
1.Gaussian Discriminant Analysis
在生成模型中,我们需要知道的就是和的分布()。
如果我们观察到样本的X大致服从多维正态分布,那么这时候我们可以使用GDA模型来预测数据。
1、首先在GDA中假设:
这里的x是所有特征组成的向量;n为x的维数;是正态分布的均值向量;是协方差矩阵,考虑到x特征的协方差不会受到y的种类的很大影响,还为了计算方便性,所以我们可以使用同个。
2.极大似然估计4个参数:
对数化似然函数
(1)对于:
令,得
(2)对于:
令,得
(3)同理得的估计值为
(4)对于:
令,得
至此我们得到了参数的估计。于是,我们可以通过来预测新数据。最终GDA模型可见下图
2.GDA and Logistic Regression
高斯判别和LR属于两种不同的模型,但却有着很大的关系。我们可以将GDA的化为x的函数得到
因为在GDA我们假设X是服从高斯分布,Y服从伯努利分布,而在LR中我们只假设了Y是伯努利分布,所以强假设必然是可以推出弱假设的。事实上只要X服从指数分布族,我们都可以推导出LR;相反,LR没法推导出GDA,因为LR本身是不知道X的真实分布的。(回忆LR的推导,我们是通过指数分布族来找到X到Y的映射函数,然后再进行学习参数;也就是说,其实不管x是什么分布,我们都可以通过指数分布族变换得到logistic function来进行映射)。
那么什么时候用GDA,什么时候用LR呢?当我们知道X的分布时,GDA明显是更好的选择,因为它做了更强的假设,实际中,即使数据很少,GDA也会有很好的效果;然而,大部分时候我们都是不知道X的分布的,所以LR会有更好的健壮性。
3.Naive Bayes
朴素贝叶斯模型也是生成模型中的一种。
在GDA中,我们假设X是连续的,服从高斯分布;NB中我们假设X是离散的,服从多项分布(包括伯努利)。GDA的X可以用多维高斯分布表示,但是在NB中我们却不能直接使用多项分布。我们用垃圾邮件分类器来阐述NB的思想。
在这个分类器中我们可以用单词向量作为输入特征,具体的,我们的单词书中如果一共有50000个词,那么一封邮件的x向量可以是
x是一个50000维的向量,在这封邮件中如果存在字典中的词,那该词所在的位置设置为1;否则为0。
如果要直接用多项分布对建模,共有个不同的值,那么我们至少需要个参数使参数和为1,对如此多的参数进行估计是不现实的,所以我们做一个强假设来简化概率模型。
3.1 建模
1.假设
在NB中,我们假设x的每一维特征(也就是每一个词)都是条件独立的:即每个词在邮件中都独立出现,互不影响。而现实中有些词是很可能同时出现的,比如nike和sport,所以这就是naive bayes中naive的由来。尽管如此,NB对于大部分问题还是有很好的效果。根据这个假设可以得到
第一个等式使用了条件概率链式法则,第二个等式利用了条件独立假设。这时候模型就可以用参数来建模了,其中。
注意是输入x中的第j个特征(第j个单词)。
2.极大似然估计
对数化似然函数
(1)对于,
这个估计的直观解释就是所有y=0的样本中有单词的邮件数量除以y=0样本个数
(2)同理得
这个估计的直观解释就是所有y=1的样本中有单词的邮件数量除以y=1样本个数
3.预测
利用training_set,我们可以估计出,得到。根据贝叶斯公式
3.2 Laplace smoothing
不过这样建模是有问题的,假设NIPS这个单词是字典中的第23333个词,那它对应的参数是,可是我们的训练集中如果没有一份邮件有这个单词,那么我们估计出来的;这时新来的一份邮件有一个单词是NIPS,那么,这时极大似然估计明显是不合理的一种估计。所以我们用贝叶斯估计来解决这个问题。
条件概率的贝叶斯估计是
后验概率的贝叶斯估计是
当时,我们叫这种估参处理方法为laplace smoothing,邮件分类器中的参数估计自然就变成
这样就不会出现0的情况了,事实上这也是贝叶斯估计和极大似然估计的差别。
3.3 应用
邮件分类器中我们的输入x仅仅是一个伯努利分布,。根据不同应用的特点,我们完全可以让,然后用多项分布来建模。
在有些情况下,我们的x不能很好被GDA,我们就可以尝试离散化数据,比如在房价预测问题中,离散化处理房子面积数据,然后就可以使用NB来预测了。
4.文本分类事件模型
在前面叙述的邮件分类模型中,我们假设x是二项分布的,显然这种模型没有考虑到单词出现次数对邮件分类的影响程度。所以我们有了multinomial event model。还是和原来模型一样,有一份字典含有50000个单词,一份邮件以“The NIPS is ……”开头,在multinomial event model中,这封邮件的x可以表示为
x的维数由邮件中的单词数量决定。
这种事件模型的对数似然函数为
这里的对于每个样本都是不一样的。
所以参数估计就是