李宏毅机器学习笔记03(Classification: Probabilistic Generative Model)

分类问题:概率生成模型

概念:(从概率生成模型到判别模型)

概率生成模型:由数据学习联合概率密度分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型。例如:朴素贝叶斯、隐马尔可夫(em算法) 

判别模型:由数据直接学习决策函数Y=f(X)或者条件概率分布P(Y|X)作为预测的模型。例如:k近邻法、感知机、决策树、逻辑回归、线性回归、最大熵模型、支持向量机(SVM)、提升方法、条件随机场(CRF)

 

思路:

1、分类问题及其解决方法的讨论

  1)首先,什么是分类问题

  2)接着,分类问题该如何解决呢

2、建立概率生成模型的步骤(以朴素贝叶斯分类器为例)

  step1:求先验概率

  step2:确定数据属于哪一个分布,用最大似然估计出分布函数的参数

  step3:求出后验概率

3、生成模型解决分类问题的总结以及逻辑回归方法(判别模型)的引出

 

1、分类问题及其解决方法的讨论

  1)首先,什么是分类问题

 

  2)接着,分类问题该如何解决呢

  举个栗子:输入一个带有属性的精灵(如比卡丘),输出:他是属于雷系还是水系还是。。

 

  对于二分类问题,定义一个function,当函数值大于0就划分为类别1,否则就为类别2.

损失函数定义为在测试数据上误分类的次数。

  关键是,这个function是怎么样的呢?实际上,它可以是一个概率模型 P(C1| X),当 P(C1| X)>0.5,就说明x 是class 1的。

那么,这个概率模型是如何生成的呢?

 

2、建立概率生成模型的步骤(以朴素贝叶斯分类器为例)

  首先,举个栗子引出贝叶斯,有两个盒子,每个盒子里面各有一定数量的蓝球和绿球,现在我取到一个蓝球,

问这个蓝球是来自于第一个盒子的概率。这就要用到贝叶斯公式(由果求因)

  

  然后,把这个公式应用于我们的分类问题:假设有两个类别(水系和普通系),每个类别有不同的精灵,

现在我抓到一个精灵,那么它是属于水系和普通系的概率分别是多少。

    进一步,在开始做生成模型之前,掌握以下概念

  先验概率:统计历史上的经验和数据得到的概率,比如我们出门的时候,堵车的概率就是先验概率 。

       这里是P(c1)——样本中的精灵是水系的概率

  P(x|c1):有因求果的条件概率 ,也就是P(堵车|交通事故)。

       这里是指水系中是比卡丘的概率

  似然估计:好像(交通事故会引起堵车)是正确的。

       这里要估计P(x|c1)

  后验概率:有果求因,也就是P(交通事故|堵车)。

          这里指抓到的比卡丘是水系的概率

 

  step1:求先验概率

 

  step2:选择概率分布函数,用最大似然估计出分布函数的参数

 

  1、首先,我们目标是求水系样本中的79个精灵中,抓到其中一种精灵的概率(P(x|c1)),那么这个概率应该是跟精灵的属性有关的。

这里我们选择两种属性讨论,此时数据中(x,水系)中的x应该是一个向量(【x1,x2】,水系)

 

 

                             

 

  2、然后,这里选择高斯分布(二维):也就是说在水系样本中的79个精灵中,抓到其中一种精灵的概率(P(x|c1))呈高斯分布

 

 

 

  3、接着,用最大似然估计法算出分布函数的参数

  似然函数:x1,x2...x79同时出现的概率函数。

  最大似然估计:使似然函数最大时的参数估计。

 

 

   4、同理,我们估计出了水系和普通系的概率分布函数的参数(也就是求出了P(x|c1)、P(x|c2))

 

  step3:求出后验概率

 

   结果分析

  

  改进一下

      

 

3、生成模型解决分类问题的总结以及逻辑回归方法(判别模型)的引出

  1、总结

  回到如何用机器学习的三大步骤解决分类问题:

 

  2、逻辑回归方法(判别模型)的引出

 

 

 

  

posted @ 2019-07-20 16:42  zr-zhang2019  阅读(1573)  评论(0编辑  收藏  举报