机器学习第四篇(stanford大学公开课学习笔记) —生成型学习算法之高斯判别分析模型和朴素贝叶斯方法

来源:互联网 发布:知乎 朴宝剑 编辑:程序博客网 时间:2024/06/04 08:35

一、生成型学习算法(Generative Learning Algorithms) 和判别式学习算法(Discriminative Learning Algorithms)

     考虑一个区分大象(y=1)和狗(y=0)的分类问题,我们可以得到一些关于动物特征的训练样本X,回归模型或者感知器模型都试图寻找一条直线作为样本分类的边界线,从而区分大象和狗两种动物;还有另外一个思路,我们将大象和狗分开来讨论,首先观察大象具备哪些体态特征,构造大象的一个判别模型,再观察狗具备哪些体态特征,构造一个狗的判别模型,当我们拿到新的测试样本时,分别将测试数据作为大象模型和狗模型的输入,看这组数据与哪个模型拟合的更好,从而判定该动物是大象还是狗。

   这两种方法分别体现了生成型算法和判别型学习算法的思想。如果一个模型试图直接学习P(y|x)或者直接将输入向量空间映射为{0,1}这样的分类标签,这种模型被称为判别型学习算法(discriminative Learning algorithms);如果一个模型试图刻画P(x|y)和p(y),然后根据贝叶斯公式计算P(y|x),这种模型被称为生成型学习算法(generative learning algotithms)。


二、高斯判别分析模型(The Gaussian Discriminant Analysis model)

   1、多维高斯分布

                                    

        其中,求和符号表示的是协方差:Cov(Z)=   

                                          

     假设输入变量X为连续的随机变量,y服从伯努利分布;于是,我们得到假设模型为:

                                      

    将以上分布写成表达式为:

                  

   模型的对数似然估计为:

                     

  最后,实验结果如下图所示,两个不同的高斯分布圈代表正负样本的分布情况:

                                               

 2、GDA 和 logistic regression 的比较

     GDA模型和logistic regression 有着很有趣的联系,如果将p(y|x,u0,u1.....)看成是x的函数,我们可以得到:

                                   

      然而,对于同样训练数据,两种模型会给出不同的分类结果,那么这两种模型孰优孰劣呢?在GDA模型中,我们强制认为y服从高斯分布,这对训练数据做了过多的假设(其实关于做很多的分布假设,都可以得到上式,即最后可以写成logistic regression 的形式,但反过来不然),由于这种假设的存在,导致GDA模型只需要更少的训练样本,如果y精确或者较准确的服从高斯分布,那么该模型得到的结果准确度会大大高于logistic regression模型,然而,如果y完全不服从高斯分布,则这种假设会让GDA模型存在较大的误差,且结果不会优于logistic regression 模型。


三、朴素贝叶斯算法(Naive Bayce)

贝叶斯假设:假设xi关于y的条件概率是独立分布的。

我们可以得到以下公式:

                         


0 0
原创粉丝点击