• 判别模型与生成模型


    从贝叶斯的角度

      判别模型估计的是条件概率分布(后验概率),p(y | x)

      生成模型估计的是联合概率分布 p(y, x) = p(y | x) * p(x)

    从模型建立的角度

      判别模型是直接用决策模型做类别区分/计算概率。

      生成模型是首先学习出一个模型,即首先建立样本的联合概率概率密度模型P(X,Y),再得到后验概率P(Y|X),再利用它进行分类。

    从数据inter-class和intra-class的角度

      判别模型关注数据类别间(inter-class)的特点,寻找不同类别之间的分类面(decision boundary),反映的是异类数据之间的差异。

      生成模型关注数据类别内(intra-class)的特点,从统计的角度表示数据的分布情况,能够反映同类数据本身的相似度。

    一个形象的例子

      例如对面一个人走过来,和你说了一句话,你需要识别出她说的到底是汉语、英语还是法语等。那么你可以有两种方法达到这个目的:用生成模型的方法是学习每一种语言,你花了大量精力把汉语、英语和法语等都学会了,我指的学会是你知道什么样的语音对应什么样的语言。然后再有人过来对你说话,你就可以知道他的语言对应什么语言;用判别模型的方法是不去学习每一种语言,你只学习这些语言模型之间的差别,然后再分类。意思是指我学会了汉语和英语等语言的发音是有差别的,我学会这种差别就好了。

    两者的关系

      由生成模型可以得到判别模型,但由判别模型得不到生成模型。(生成模型带的信息一般要比判别模型丰富)

    常见算法举例

      判别模型:K 近邻、感知机(神经网络)、决策树、逻辑斯蒂回归、最大熵模型、SVM、提升方法、条件随机场

      生成模型:朴素贝叶斯、隐马尔可夫模型、混合高斯模型、贝叶斯网络、马尔可夫随机场

    优缺点比较

      见参考

    参考:

    https://blog.csdn.net/u012101561/article/details/52814571

  • 相关阅读:
    数据量你造吗-JAVA分页
    编写高质量代码改善java程序的151个建议——[1-3]基础?亦是基础
    概率论快速学习03:概率公理补充
    概率论快速学习02:概率公理
    项目ITP(六) spring4.0 整合 Quartz 实现动态任务调度
    项目ITP(五) spring4.0 整合 Quartz 实现任务调度
    编写高质量代码改善java程序的151个建议——导航开篇
    概率论快速学习01:计数
    改善JAVA代码01:考虑静态工厂方法代替构造器
    Python快速学习10: 循环的对象及设计 (生活的规律)
  • 原文地址:https://www.cnblogs.com/sbj123456789/p/10562147.html
Copyright © 2020-2023  润新知