zoukankan      html  css  js  c++  java
  • 1(2).生成模型和判别模型

    生成式模型

    • 朴素贝叶斯
    • K近邻(KNN)
    • 混合高斯模型
    • 隐马尔科夫模型(HMM)
    • 贝叶斯网络
    • Sigmoid Belief Networks
    • 马尔科夫随机场(Markov Random Fields)
    • 深度信念网络(DBN)

     判别式模型

    • 线性回归(Linear Regression)
    • 逻辑斯蒂回归(Logistic Regression)
    • 最大熵模型
    • 神经网络(NN)
    • 支持向量机(SVM)
    • 高斯过程(Gaussian Process)
    • 条件随机场(CRF)
    • CART(Classification and Regression Tree)

     判别模型和生成模型都是指监督学习下的模型,监督学习模型本质上就是求决策函数:Y=F(X)  或者条件概率分布P(Y|X)  ,而求解过程又可以分为判别方法和生成方法

    生成模型 (discriminative)

    生成方法必须要学得其联合概率分布P(X,Y),然后根据联合概率分布和贝叶斯公式求得P(Y|X)

    P(Y|X) = P(X,Y)/P(X)

    生成模型以概率的方式描述了数据的产生方式,通过对模型采样就可以产生数据。 

    举例:利用生成模型是根据山羊的特征首先学习出一个山羊的模型,然后根据绵羊的特征学习出一个绵羊的模型,然后从这只羊中提取特征,放到山羊模型中看概率是多少,在放到绵羊模型中看概率是多少,哪个大就是哪个。


     判别模型(generative)

    判别模型是由数据直接学习决策函数F(x)或者条件概率分布P(Y|X)作为预测的模型,判别方法关心的是对于给定的输入X,应该预测什么样的Y

    举例:要确定一个羊是山羊还是绵羊,用判别模型的方法是从历史数据中学习到模型,然后通过提取这只羊的特征来预测出这只羊是山羊的概率,是绵羊的概率。

     生成模型和判别模型的区别和联系

    1. 由生成模型可以得到判别模型,但是由判别模型得不到生成模型
    2. 生成模型可以产生数据,判别模型只能根据数据做判断。生成模型为了得到数据的整体分布。判别模型为了用「线」把数据划开
    3. 判别模型优点: 
      1. 判别模型对数据的分布的假设要求不高,鲁棒性较好,即便是在模型不符合数据假设的情况下,效果通常也会比较好
      2. 直接面对预测,往往在学习的准确率上会更高
      3. 由于直接学习P(Y|X)或者F(x),可以对数据进行各种程度上的抽象,定义特征并且使用特征,因此可以简化学习的问题。
    4. 生成模型的优点: 
      1. 生成方法的学习收敛的速度会更快。即当样本容量增加的时候,学习到的数据可以更快的收敛于真实的模型
      2. 当存在隐变量时,仍然可以用生成方法,这个时候判别方法实际上是不能用的。
    5. 判别模型的缺点:如果数据分布符合生成模型假设的情况下,判别模型效果并没有生成模型好。 存在隐变量时不能用。
    6. 生成模型的缺点:生成模型会对于数据的分布的假设的要求会更高,如果数据的分布不符合假设,那么就会导致效果比较差【鲁棒性差】
  • 相关阅读:
    汇编语言--栈
    汇编语言--debug
    汇编语言--指令
    汇编语言--寄存器
    汇编语言--基本概念(来自王爽老师课程)
    python--IO模块(系统整理)(持续更新)
    python--python在传递参数时实际做了什么?(持续更)
    python--函数之python执行def和import时做了什么
    sql--常用命令(学习笔记,持续更新)
    sql-什么是sql脚本
  • 原文地址:https://www.cnblogs.com/nxf-rabbit75/p/9298974.html
Copyright © 2011-2022 走看看