zoukankan      html  css  js  c++  java
  • 机器学习中 生成式模型 VS 判别式模型

    1. 前言

    判别式模型:只有一个模型,把测试数据往里一丢,结果就出来了。如 SVM

    生成式模型:有多个模型(一般有多少类就有多少个),把测试数据丢到各个模型里面,最后比较结果,选择最优的最为结果。如 朴素贝叶斯。

    2.基本概念

    判别模型,就是判别(数据输出量)的模型。

    生成模型,就是生成(数据的分布)的模型。

    2. 适用环境

    从结果角度看,两种模型都能给出输出量(labley 等)

    但生成模型的处理过程会告你关于数据的一些统计信息(p(x|y) 分布等),更接近统计学。

    判别模型是通过一系列处理得到结果,这个结果可能是概率或者不是,这个并不改变他是不是判别的。

    3.具体模型

    生成式模型:

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

    判别模型:

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

    4.模型范例

    假设现在一个分类问题,X是特征,y是标记。用生成模型学习一个联合概率分布P(X, y),而用判别模型学习一个条件概率分布P(y|X)

    用一个简单例子,假设X就是两个(1或2),y有两类(0或1),有如下样本(1,0)、(1,0)、(1,1)、(1,2)

    则联合概率分布(生成模型):

      0 1
    1 1/2 1/4
    2 0 1/4

    而条件概率分布(判别模型):

      0 1
    1 2/3 1/3
    2 0 1

    在实际分类问题中,判别模型可以直接用来判断特征的类别情况,而生成模型,需要加上贝耶斯法则,然后应用到分类中。但是,生成模型的概率分布可以还有其他应用,就是说生成模型更一般更普适。不过判别模型更直接,更简单。两种方法目前交叉较多。由生成式模型可以得到判别式模型,但由判别式模型得不到生成式模型。

    来自:忘了 

  • 相关阅读:
    nginx安装http2.0协议
    nginx内置变量 大全
    nginx全局查看进程
    Nginx1.14.2新增tcp/udp代理stream
    Nginx Location指令配置及常用全局变量
    Nginx配置udp/tcp代理
    ps -ef|grep详解
    centos7安装nginx(基础篇)
    js转义字符
    redis win连接以及配置连接密码
  • 原文地址:https://www.cnblogs.com/keye/p/14671285.html
Copyright © 2011-2022 走看看