目录

  • <font color=blue size=4 face="仿宋">1 垃圾邮件分类数据集
  • <font color=blue size=4 face="仿宋">2 判别模型的决策边界
  • <font color=blue size=4 face="仿宋">3 生成模型的决策边界
  • <font color=blue size=4 face="仿宋">4 判别模型 vs 生成模型

在机器学习中,模型可以分为两种:判别模型和生成模型。两者的区别在于找到决策边界的过程不同:

#mermaid-svg-4lgqkmvyFVThIOCR {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-4lgqkmvyFVThIOCR .error-icon{fill:#552222;}#mermaid-svg-4lgqkmvyFVThIOCR .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-4lgqkmvyFVThIOCR .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-4lgqkmvyFVThIOCR .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-4lgqkmvyFVThIOCR .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-4lgqkmvyFVThIOCR .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-4lgqkmvyFVThIOCR .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-4lgqkmvyFVThIOCR .marker{fill:#333333;stroke:#333333;}#mermaid-svg-4lgqkmvyFVThIOCR .marker.cross{stroke:#333333;}#mermaid-svg-4lgqkmvyFVThIOCR svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-4lgqkmvyFVThIOCR .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-4lgqkmvyFVThIOCR .cluster-label text{fill:#333;}#mermaid-svg-4lgqkmvyFVThIOCR .cluster-label span{color:#333;}#mermaid-svg-4lgqkmvyFVThIOCR .label text,#mermaid-svg-4lgqkmvyFVThIOCR span{fill:#333;color:#333;}#mermaid-svg-4lgqkmvyFVThIOCR .node rect,#mermaid-svg-4lgqkmvyFVThIOCR .node circle,#mermaid-svg-4lgqkmvyFVThIOCR .node ellipse,#mermaid-svg-4lgqkmvyFVThIOCR .node polygon,#mermaid-svg-4lgqkmvyFVThIOCR .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-4lgqkmvyFVThIOCR .node .label{text-align:center;}#mermaid-svg-4lgqkmvyFVThIOCR .node.clickable{cursor:pointer;}#mermaid-svg-4lgqkmvyFVThIOCR .arrowheadPath{fill:#333333;}#mermaid-svg-4lgqkmvyFVThIOCR .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-4lgqkmvyFVThIOCR .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-4lgqkmvyFVThIOCR .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-4lgqkmvyFVThIOCR .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-4lgqkmvyFVThIOCR .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-4lgqkmvyFVThIOCR .cluster text{fill:#333;}#mermaid-svg-4lgqkmvyFVThIOCR .cluster span{color:#333;}#mermaid-svg-4lgqkmvyFVThIOCR div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-4lgqkmvyFVThIOCR :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

经验误差最小原则
D
决策边界
D
正 负类的分布
决策边界

垃圾邮件分类是机器学习中常用的例子,本文以此为例来进行讲解:

1 垃圾邮件分类数据集

这里为了简化问题,我们用作例子的垃圾邮件分类数据集中只包含一个特征,就是邮件正文的长度。普通邮件用正类 O 来表示,垃圾邮件用负类 X 来表示:

从上图可以看出,垃圾邮件(也就是负类image.png)的正文更长,可能是因为其中有很多推销的信息吧。

2 判别模型的决策边界

先来看看判别模型如何进行垃圾邮件分类。比如感知机模型就是一种判别模型,它的算法是尽可能找到犯错最少的位置作为决策边界。在垃圾邮件分类数据集上,下面两条虚线都只犯了一个错(图中的黑色虚线表示决策边界,周围的红色和蓝色虚线指出哪侧是正类 O ,哪侧是负类 X ),也都是犯错最少的,所以可以任选其一作为决策边界:

除了感知机外,逻辑回归、支持向量机这些也是判别模型,只是对错误的定义不一样:

这三者的共同点就是都是通过数据集,尽可能找到犯错最少的位置(也就是“经验误差最小原则”)作为决策边界:

#mermaid-svg-KMPMXgs7YlW3Tj0y {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-KMPMXgs7YlW3Tj0y .error-icon{fill:#552222;}#mermaid-svg-KMPMXgs7YlW3Tj0y .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-KMPMXgs7YlW3Tj0y .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-KMPMXgs7YlW3Tj0y .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-KMPMXgs7YlW3Tj0y .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-KMPMXgs7YlW3Tj0y .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-KMPMXgs7YlW3Tj0y .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-KMPMXgs7YlW3Tj0y .marker{fill:#333333;stroke:#333333;}#mermaid-svg-KMPMXgs7YlW3Tj0y .marker.cross{stroke:#333333;}#mermaid-svg-KMPMXgs7YlW3Tj0y svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-KMPMXgs7YlW3Tj0y .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-KMPMXgs7YlW3Tj0y .cluster-label text{fill:#333;}#mermaid-svg-KMPMXgs7YlW3Tj0y .cluster-label span{color:#333;}#mermaid-svg-KMPMXgs7YlW3Tj0y .label text,#mermaid-svg-KMPMXgs7YlW3Tj0y span{fill:#333;color:#333;}#mermaid-svg-KMPMXgs7YlW3Tj0y .node rect,#mermaid-svg-KMPMXgs7YlW3Tj0y .node circle,#mermaid-svg-KMPMXgs7YlW3Tj0y .node ellipse,#mermaid-svg-KMPMXgs7YlW3Tj0y .node polygon,#mermaid-svg-KMPMXgs7YlW3Tj0y .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-KMPMXgs7YlW3Tj0y .node .label{text-align:center;}#mermaid-svg-KMPMXgs7YlW3Tj0y .node.clickable{cursor:pointer;}#mermaid-svg-KMPMXgs7YlW3Tj0y .arrowheadPath{fill:#333333;}#mermaid-svg-KMPMXgs7YlW3Tj0y .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-KMPMXgs7YlW3Tj0y .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-KMPMXgs7YlW3Tj0y .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-KMPMXgs7YlW3Tj0y .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-KMPMXgs7YlW3Tj0y .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-KMPMXgs7YlW3Tj0y .cluster text{fill:#333;}#mermaid-svg-KMPMXgs7YlW3Tj0y .cluster span{color:#333;}#mermaid-svg-KMPMXgs7YlW3Tj0y div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-KMPMXgs7YlW3Tj0y :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

经验误差最小原则
D
决策边界

因为是通过判别错误来得到决策边界的,所以都称为 判别模型(Discriminative model)

3 生成模型的决策边界

其实还有另外一种思考方向,比如我们猜测正、负类都分别符合某正态分布,那么根据数据集可以算出这两个分布的参数 μ\muμ 和 σ2\sigma^2σ2 ,从而可以得到各自分布的曲线,也就是下图中的红色、蓝色曲线:


就上图而言,可以将这两个分布的交点作为边界(这里有很多细节,我们后面再讨论),这是因为当某点出现在决策边界左侧时,根据正、负类的正态分布,该点为正类的概率更大;同理在右侧的话,为负类的概率更大。比如下图中的 就应该判定为正类 O

这种先根据数据集生成正、负类的分布,再得到决策边界的模型就称为 生成模型(Generative model)

#mermaid-svg-x337irnmlx6tgam0 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-x337irnmlx6tgam0 .error-icon{fill:#552222;}#mermaid-svg-x337irnmlx6tgam0 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-x337irnmlx6tgam0 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-x337irnmlx6tgam0 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-x337irnmlx6tgam0 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-x337irnmlx6tgam0 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-x337irnmlx6tgam0 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-x337irnmlx6tgam0 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-x337irnmlx6tgam0 .marker.cross{stroke:#333333;}#mermaid-svg-x337irnmlx6tgam0 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-x337irnmlx6tgam0 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-x337irnmlx6tgam0 .cluster-label text{fill:#333;}#mermaid-svg-x337irnmlx6tgam0 .cluster-label span{color:#333;}#mermaid-svg-x337irnmlx6tgam0 .label text,#mermaid-svg-x337irnmlx6tgam0 span{fill:#333;color:#333;}#mermaid-svg-x337irnmlx6tgam0 .node rect,#mermaid-svg-x337irnmlx6tgam0 .node circle,#mermaid-svg-x337irnmlx6tgam0 .node ellipse,#mermaid-svg-x337irnmlx6tgam0 .node polygon,#mermaid-svg-x337irnmlx6tgam0 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-x337irnmlx6tgam0 .node .label{text-align:center;}#mermaid-svg-x337irnmlx6tgam0 .node.clickable{cursor:pointer;}#mermaid-svg-x337irnmlx6tgam0 .arrowheadPath{fill:#333333;}#mermaid-svg-x337irnmlx6tgam0 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-x337irnmlx6tgam0 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-x337irnmlx6tgam0 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-x337irnmlx6tgam0 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-x337irnmlx6tgam0 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-x337irnmlx6tgam0 .cluster text{fill:#333;}#mermaid-svg-x337irnmlx6tgam0 .cluster span{color:#333;}#mermaid-svg-x337irnmlx6tgam0 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-x337irnmlx6tgam0 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

D
正 负类的分布
决策边界

4 判别模型 vs 生成模型

可见,生成模型多了生成正、负类分布的过程,而这个过程就是在尝试学习这些数据到底是怎么生成的,或者说在尝试学习真正的知识。可以这么比喻,判别模型就是不断刷题,不太去理解,这样也可以很好地应付考试(预测);而生成模型在刷题同时还会尝试理解其中的知识,只要理解得当,完全可以考出好的成绩:

从上面的比喻出发,可以进一步理解两者的优劣:

 (1)刷得题够多,考试成绩就会很好;但如果有些题型没有刷到就会束手无策。也就是说,判别模型只要数据量足够就有很好的泛化能力,但如果遇到没有出现过的情况,那么是无法解决的,这样的例子后面会看到。(2)理解如果出错,考试反而糟糕;但是如果能够正确理解,那么在刷题量不够的情况下,也可以举一反三,甚至可以解决没有遇到过的题型。也就是说,数据量少的时候,生成模型可能有奇效,甚至可以解决历史上没有出现过的问题。

生成式模型和判别式模型相关推荐

  1. 【机器学习】生成式模型和判别式模型

    在机器学习中,对于有监督学习可以将其分为两类模型:判别式模型和生成式模型.判别式模型是针对条件分布建模,而生成式模型则针对联合分布进行建模. 1.抛砖引玉 假设有训练数据(X,Y),X是属性集合,Y是 ...

  2. 机器学习 之 生成式模型 VS 判别式模型

    [摘要] 判别式模型,就是只有一个模型,你把测试用例往里面一丢,label就出来了,如SVM.生成式模型,有多个模型(一般有多少类就有多少个),你得把测试用例分别丢到各个模型里面,最后比较其结果,选择 ...

  3. 机器学习:生成式模型和判别式模型

    决策函数Y=f(X)与条件概率分布P(Y|X) 决策函数Y=f(x):输入一个x,它就输出一个y值,这个y与一个阈值比较,根据比较结果判定x属于哪个类别. 条件概率分布P(y|x):输入一个x,它通过 ...

  4. 机器学习中的生成式模型VS判别式模型,分类,特点

    机器学习中的生成式模型VS判别式模型,分类,特点 提示: 本文将从生成式模型与判别式模型的概念, 适用环境 具体模型 三个方面分析比较这两个模型, 并在最后对列出模型范例,进行范例比较. 基础知识: ...

  5. 生成式模型 vs 判别式模型

    点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 生成式模型和判别式模型的概念是机器学习领域非常重要的基础知识,但能准确区分开二者并不是 ...

  6. 生成式模型和判别式模型(通俗易懂)

    原文链接:https://blog.csdn.net/qq_14997473/article/details/85219353 决策函数Y=f(X)与条件概率分布P(Y|X) 决策函数Y=f(x):输 ...

  7. 生成式模型、判别式模型的区别?

    生成式模型.判别式模型的区别? ​ 对于机器学习模型,我们可以根据模型对数据的建模方式将模型分为两大类,生成式模型和判别式模型.如果我们要训练一个关于猫狗分类的模型, 对于判别式模型,只需要学习二者差 ...

  8. 机器学习小问题 -- 生成式模型与判别式模型

    本篇博文总结最近学习到的生成式模型与判别式模型的知识. 1. 简介 就像之前在总结分类和聚类时说的一样,机器学习基本在做的事情就是在分类.打标签,我们的模型也就像一个个分类机器(个人看法,欢迎指正). ...

  9. 生成式模型与判别式模型

    生成式模型与判别式模型的区别 生成式模型(Generative Model)与判别式模型(Discriminative Model)是分类器常遇到的问题 对于判别式模型来说求得P(Y|X),对未见示例 ...

  10. NLP --- 产生式模型VS判别式模型

    上一节我们介绍了概率图模型,这将在隐马尔可夫和条件随机场使用到,还会使用到的另外一个概念就是产生式模型和判别式模型,那么什么是产生式模型,什么是判别式模型呢?下面我们详细介绍这两种模型的区别. 他们的 ...

最新文章

  1. node.js实现国标GB28181流媒体点播(即实时预览)服务解决方案
  2. 兰大本科生发31篇论文遭质疑,本人及校方回应!
  3. DWS和各异构数据库的差异对比
  4. bzoj1875 边点互换+矩乘
  5. 从原理上理解MySQL的优化建议
  6. Android_开发片段(Part 2)
  7. linux screen -ls,Linux screen命令详解
  8. 七牛云与python交互的教程
  9. 计算机系统结构开设学校,计算机系统结构专业介绍及考研院校排名
  10. 对象的自身引用(Self-Reference) 动态绑定(Dynamic Binding)
  11. 零基础学python还是c语言-零基础学Python之前需要学c语言吗
  12. sql语句中用select语句查询值大于平均值的情况
  13. 350. Intersection of Two Arrays II
  14. 大数据时代下的人工智能医疗
  15. power supply surges detected
  16. word怎么将选中的单词全部改为大写
  17. 人工智能导论实验二 食人族传教士过河+黑白棋 prolog+Python
  18. 如何在RK3588上面使用摄像头实时实现物体识别?
  19. 国行Android手机使用google全套GMS服务小结
  20. Hive数据类型、数据库相关操作、表的相关操做、数据的导入导出

热门文章

  1. 【ansys workbench】16.对称问题、平面问题和自由度
  2. 一图了解,网络7层协议之间的关系
  3. chrome 模仿手机(iOS/Android)浏览器
  4. 英语习语集锦::recommended::
  5. sigaction 使用
  6. python字符串定界符_python字符串
  7. java 与 或 运算符_java运算符 与()、非(~)、或(|)、异或(^)
  8. 【图像分类】【深度学习】ViT算法Pytorch代码讲解
  9. linux同步手机,Calabash+Gearman实现多手机同步测试机制
  10. linux defunct 进程,Linux僵尸进程(Zombie or defunct)