zoukankan      html  css  js  c++  java
  • 生成式模型 VS 判别式模型

    1 定义

    1.1 生成式模型    

            生成式模型(Generative Model)会对x和y的联合分布p(x,y)建模,然后通过贝叶斯公式来求得 p(yi|x),然后选取使得p(yi|x) 最大的 yi,即:


            简单说生成式模型就是生成数据分布的模型。将求联合分布的问题转为了求类别先验概率和类别条件概率的问题。

    1.2 判别式模型

            对条件概率 p(y|x;	heta) 直接建模。

            简单说就是判别数据输出量的模型,解决问题的思路为:

            条件分布>模型参数后延概率最大>似然函数*参数先验最大>最大似然


    生成式模型可以转为判别式模型,反之不行。

    AndrewNg在NIPS2001年有一篇专门比较判别模型和产生式模型的文章:

    On Discrimitive vs. Generative classifiers: A comparision of logistic regression and naive Bayes


    2 模型优劣比较

    2.1 生成式模型

            常见的生成式模型有:

    • 线性判别式分析 (Linear Discriminant Analysis)
    • 朴素贝叶斯 (Native Bayesian)
    • K近邻 (KNN)
    • 混合高斯模型 (GaussianMixture Model)
    • 隐马尔科夫模型 (HiddenMarkov Model)
    • 贝叶斯网络 (Bayesian Networks)
    • 马尔科夫随机场 (Markov Random Fields)
    • 深度信念网络 (Deep Belief Networks)

            其特点在于(相比于判别式模型):

    • 通常收敛速度较快,少量样本就可以收敛
    • 能应付隐变量
    • 需要对数据分布做出假设(比方朴素贝叶斯假设特征分布符合条件独立的假设)
    • 计算量大
    • 实践效果(比如分类)稍差
    • 容易过拟合
    • 更好利用无标签数据(DBN)
    • 添加新的类别时,计算新的联合分布即可,不需要全部数据重新训练
    • 能检测异常值

    2.2 判别式模型

            常见的判别式模型有:

    • 线性回归 (LinearRegression)
    • 逻辑斯蒂回归 (LogisticRegression)
    • 神经网络 (NN)
    • 支持向量机 (SVM)
    • 高斯过程 (GaussianProcess)
    • 条件随机场 (CRF)
    • CART(Classificationand Regression Tree)

            其特点在于(相比于生成式模型):

    • 节省计算资源
    • 节省样本
    • 效果好一些
    • 输入数据可以预处理(降维、构造等),简化学习的问题
    • 解决凸优化问题
    • 添加新的数据时,所有数据要重新训练
    • 不能检测异常值






    参考:

    知乎:机器学习“判定模型”和“生成模型”有什么区别?

    https://www.cnblogs.com/kemaswill/p/3427422.html

    《统计学习方法》



  • 相关阅读:
    [转] 微服务架构
    vue拦截器实现统一token,并兼容IE9验证
    一句话 道出设计模式
    老话闲说,关于身份证号码的验证
    值得珍藏的HTTP协议详解
    微信内嵌H5网页 解决js倒计时失效
    使用JavaScript重定向URL参数
    Nodejs --我自己的学习笔记
    ONLY三行脚本 SQL数据恢复到指定时间点
    [转] 数据库加锁 sql加锁的
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9411596.html
Copyright © 2011-2022 走看看