zoukankan      html  css  js  c++  java
  • NLP之统计机器学习中的生成式和判别式

    机器学习的方法主要分为生成式和判别式两种。

    生成式模型:假定输入是X,类别标签是Y。产生式模型估计联合概率P(X,Y),因为可以根据联合概率来生成样本。

    判别式模型:假定输入是X,类别标签是Y。判别式模型估计条件概率P(X|Y),该模型只能用来判断分类,因为其不包含有关X的知识。

    举个例子来说明这两个概念:

    假如我现在给出了一组样本:(1,0),(1,1),(2,0),(2,1)。假定这就是能观察到的全部

    生成模型估计P(Y,X)如:P(1,0)=1/2;P(1,1)=0;P(2,0)=1/4;P(2,1)=1/4;

    判别模型估计P(X|Y)如:P(0|1)=1,P(1|1)=0,P(0|2)=1/2,P(1|2)=1/2

    假设X代表的是类别标签(那么就有两类:0和1类),Y是样本属性(那么就有两个属性值:1和2);那么通过判别模型我们可以对给出的样本属性进行分类了,例如:如果样本属性是1时那它一定就是0类了。但是通过判别模型却不可能生成新的样本,因为我们通过给出的判别估计无法知道P(Y)的信息。但是生成模式却可以做到,因为通过给出的生成估计我们可以推出P(Y)的信息。如:P(Y=1)=1/2,P(Y=2)=1/2。同时生成式模型可以根据贝叶斯公式得到判别式模型,但反过来就不可以了。

    当然这两种模型各有优缺点:

    判别式的主要特点:寻找不同类别之间的最优分类面,反映的是异类数据之间的差异。自己在Linear discriminant analysis,支持向量机和clustering中用到

    判别式的优点:

    1)分类边界更灵活,比使用纯概率方法或生产模型得到的更高级。
    2)能清晰的分辨出多类或某一类与其他类之间的差异特征
    3)在聚类、viewpoint changes, partial occlusion and scale variations中的效果较好
    4)适用于较多类别的识别
    5)判别模型的性能比生成模型要简单,比较容易学习

    缺点:

    1)不能反映训练数据本身的特性。能力有限,可以告诉你的是0类还是1类,但没有办法把整个场景描述出来。

    2)黑盒操作: 变量间的关系不清楚,不可视。实际上也是第一种缺点的体现

    生成式的主要特征:一般主要是对后验概率建模,从统计的角度表示数据的分布情况,能够反映同类数据本身的相似度。自己在朴素贝叶斯和隐马尔科夫模型中用到

    生成式的优点:

    1)实际上带的信息要比判别模型丰富
    2)研究单类问题比判别模型灵活性强
    3)模型可以通过增量学习得到
    4)能用于数据不完整(missing data)情况

    缺点:

    1)学习和计算过程比较复杂

    由此可知,判别模型与生成模型的最重要的不同是,训练时的目标不同,判别模型主要优化条件概率分布,使得x,y更加对应,在分类中就是更可分。而生成模型主要是优化训练数据的联合分布概率。

  • 相关阅读:
    Python 3.4 .py文件打包成exe可执行文件方法
    windows找不到证书来让您登陆到网络,启用IEEE 802.1X验证为灰色
    重装系统之后电脑配置步骤
    win7(x64)matlab2010a 编译器安装
    用Interface Builder自定义UITableViewCell
    ASIHTTPRequest类库简介和使用说明
    IOS NSURL基本操作
    arc下asihttprequest等应用实现
    WampServer的配置
    javascript带范围的随机整数生成22
  • 原文地址:https://www.cnblogs.com/zcftech/p/2744986.html
Copyright © 2011-2022 走看看