生成式模型和判别式模型区别

news2024/10/6 16:26:05

目录

1.概念

2.定义​

3.举例​

(1)例子 A​

(2)例子 B​

4.特点

5.优缺点

6.代表算法


1.概念

        首先我们需要明确,两种不同的模型都用于监督学习任务中。监督学习的任务就是从数据中学习一个模型,并用基于这个模型对给定的输入预测相应的输出。这种模型的一般形式为决策函数y=f\left ( x \right )或者条件概率分布P\left ( y|x \right ) 。

我们先用一张图来初步感受一下,等看完文章后再回来看一遍会更直观:

2.定义​

生成式模型先对数据的联合分布P\left ( x,y \right )进行建模,然后再通过贝叶斯公式计算样本属于各类别的后验概率P\left ( y|x \right )=\frac{P\left ( x,y \right )}{P\left ( x \right )} 。

判别式模型直接进行条件概率建模,由数据直接学习决策函数y=f\left ( x \right ) 或条件概率分布P\left ( y|x \right )作为预测的模型。判别方法不关心背后的数据分布,关心的是对于给定的输入,应该预测什么样的输出。

用一句话总结就是生成模型估计的是联合概率分布判别式模型估计的是条件概率分布

3.举例​

可能经过上面的表述仍然不能够直观的理解两个模型的差异,我这里举两个例子:

(1)例子 A​

两种模型来如何确定一只羊是山羊还是绵羊?

生成式模型:首先根据山羊的数据和绵羊的数据分别学习出山羊的特征P\left ( x,y1 \right )  和绵羊的特征P\left ( x,y2 \right ) ,然后从待识别的羊中提取特征 x,将这些特征分别放到山羊模型和绵羊模型中并得到条件概率P\left ( y1|x \right )=\frac{P\left ( x,y1 \right )}{P\left ( x \right )}  和P\left ( y2|x \right )=\frac{P\left ( x,y2 \right )}{P\left ( x \right )}  ,如果P\left ( y1|x \right ) > P\left ( y2|x \right )  ,那么我就认为这只羊属于山羊,否则为绵羊。

判别式模型:直接从山羊和绵羊的数据中提取特征 x 并学习得到模型y=f\left ( x \right ),然后从待识别的羊中提取特征 x,然后带入到模型中以判断这只羊是绵羊和山羊概率(比如 LR 中,结果大于 0.5 为正例,小于 0.5 为反例)。

我们可以看到,生成式模型强调数据本身特点,判别式模型强调数据边界。在分类的过程中,生成式模型对每个结果都要亲自试一试,遍历完一遍后取概率最大的结果;而判别式模型直接通过模型得到结果。

(2)例子 B​

维基百科中有这样的一个例子:

对于给定数据集 。

生成式模型 P\left ( x,y \right ) :

y=0y=1

x=1

1/6

2/6

x=2

2/6

1/6

如果现在有一个x=2 ,那我们可以得到:

所以我们把 x=2 判别为类别 0。

判别式模型 P\left ( y|x \right )

y=0y=1

x=1

1/3

2/3

x=2

2/3

1/3

对于给定的 x=2,我们直接可以得到 P\left ( y=1|x=2 \right ) 和 P\left ( y=0|x=2 \right ) 的值。

4.特点

生成式模型的特点在于,其可以从统计的角度表示数据的分布情况,能反映同类数据本身的相似度,不关心各类的边界在哪;

判别式模型直接学习的是条件概率分布,所以其不能反映训练数据本身的特性,其目的在于寻找不同类别之间的最优分界面,反映异类数据之间的差异。

由生成模型可以得到判别模型,但由判别模型得不到生成模型。

当存在隐变量(当我们找不到引起某一现象的原因的时候,我们就把这个在起作用但是无法确定的因素,叫“隐变量”) 时,仍可以利用生成方法学习,此时判别方法不能用。因为生成式模型同时对 x 和 y 建立概率模型,所以如果 x 中有出现没有观察到的量或者只有部分 y 的时候,就可以很自然地使用 EM 算法 来进行处理。极端情况下,在完全没有 y 信息的情况下,GM 仍然是可以工作的——无监督学习可以看成是 GM 的一种。

5.优缺点

生成式模型 

优点​

由于统计了数据的分布情况,所以其实际带的信息要比判别模型丰富,对于研究单类问题来说也比判别模型灵活性强;
模型可以通过增量学习得到(增量学习是指一个学习系统能不断地从新样本中学习新的知识,并能保存大部分以前已经学习到的知识。);
收敛速度更快,当样本容量增加的时,生成模型可以更快的收敛于真实模型;
隐变量存在时,也可以使用。
缺点​

学习和计算过程比较复杂,由于学习了更多的样本信息,所以计算量大,如果我们只是做分类,就浪费了这部分的计算量;
准确率较差;
往往需要对特征进行假设,比如朴素贝叶斯中需要假设特征间独立同分布,所以如果所选特征不满足这个条件,将极大影响生成式模型的性能。


判别式模型 

优点​

由于关注的是数据的边界,所以能清晰的分辨出多类或某一类与其他类之间的差异,所以准确率相对较高;
计算量较小,需要的样本数量也较小;
缺点​

不能反映训练数据本身的特性;
收敛速度较慢。


6.代表算法

生成式模型:朴素贝叶斯、贝叶斯网络、隐马尔可夫模型、隐马尔可夫模型;

判别式模型:k 近邻法、决策树、逻辑斯谛回归模型、最大熵模型、支持向量机、条件随机场。

参考​

​ ​https://www.zhihu.com/question/20446337​​

生成式模型 vs 判别式模型
 ​http://freemind.pluskid.org/machine-learning/discriminative-modeling-vs-generative-modeling/​
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1032483.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python教程(14)——Python函数的入门学习

函数是什么?在编程中,函数是一段可重用的代码块,用于完成特定任务或执行特定操作。它可以接输入参数并返回一个值或执行一系列操作。函数可以帮助程序员将代码模块化,提高代码的可读性和可维护性。 函数通常包括以下组成部分&…

SLAM从入门到精通(消息传递)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面我们只是编写了一个publisher节点,以及一个subscribe节点。有了这两个节点,它们之间就可以通信了。在实际生产中&#…

CNN(九):Inception v3算法实战

🍨 本文为🔗365天深度学习训练营 中的学习记录博客 🍖 原作者:K同学啊|接辅导、项目定制 1 理论基础 Inception v3论文 Inception v3由谷歌研究员Christian Szegedy等人在2015年的论文《Rethinking the Inception Architecture f…

cmd运行jar包,txt文件中文乱码问题

首先,查看我们自己新建的txt文件的编码 我们可以看到:当前编码为UTF-8 然后,我们在cmd中输入命令: chcp 936对应的是默认的GBK编码,如果直接运行jar包,读取txt文件里的中文字符时,就会乱码 …

最新推荐的直链网盘榜单

随着数字化时代的到来,人们对于文件存储和共享的需求越来越大。直链网盘作为一种便捷的云存储解决方案,受到了许多用户的喜爱。本文结合了不同产品测评网站的意见,为您推荐以下几款优秀的直链网盘产品。 1、Zoho Workdrive;2、Goo…

康耐德机器视觉系统在锂电池封装外观缺陷检测发挥什么作用?

随着新能源大力发展,电池的需求越来越多,锂电池生产过程中需要保证质量,通过人工检测会出现错误,而且容易把电池包二次损坏。随着机器视觉技术的发展,很多锂电池生产厂家引入机器视觉来替代人工质检,实现产…

Swiper的使用流程

1.官网查看演示 Swiper演示 - Swiper中文网 2.找到想使用的 比如想使用 卡片切换(255) 记住这个名字 3.去下载示例 下载Swiper - Swiper中文网 4.找到对应文件 5.根据里面引入的东西加到自己的页面 一定要引入swiper的 js 和 css html结构要按示例对应的三层结构 需要 …

深入了解队列数据结构:定义、特性和实际应用

文章目录 🍋引言🍋队列的定义🍋队列的实现🍋队列的应用🍋练习题🍋结语 🍋引言 队列(Queue)是计算机科学中一种重要的数据结构,它常用于各种应用程序中&#x…

typescript 交叉类型

交叉类型简介 TypeScript中的交叉类型是指将多个类型合并为一个类型。这使得我们可以将现有的多种类型叠加到一起成为一种类型,它包含了所需的所有类型的特性。 写这篇文章先问大家一个问题,如何让一个对象既有a类型约束,又有b类型约束? 如果你看了我这篇文章types…

【vue2第十九章】手动修改ESlint错误 和 配置自动化修改ESlint错误

目标:认识代码规范 代码规范:一套写代码的约定规则。例如:“赋值符号的左右是否需要空格”,"一句结束是否是要加;”等 为什么要使用代码规范? 在团队开发时,提高代码的可读性。 在创建项目时,我们选择的就是一套完整的代码…

移动机器人运动规划 --- 基于图搜索的Dijkstra算法

移动机器人运动规划 --- 基于图搜索的Dijkstra算法 Dijkstra 算法Dijkstra 算法 伪代码流程Dijkstra 算法步骤示例Dijkstra算法的优劣分析 Dijkstra 算法 Dijkstra 算法与BFS算法的区别就是 : 从容器中弹出接下来要访问的节点的规则不同 BFS 弹出: 层级最浅的原则&#xff0c…

【教学类】公开课学号挂牌(15*15CM手工纸)

作品展示: 15*15CM手工纸 文本框12磅加粗。学号数字是段落写入,黑体270磅 背景需求 最近都在小班、中班、大班里做“Python学具测试”,由于都是陌生的孩子,上课时,我通常只能喊“白衣服的女孩”“花格子衣服的男孩”…

八大排序(三)--------简单选择排序

本专栏内容为:八大排序汇总 通过本专栏的深入学习,你可以了解并掌握八大排序以及相关的排序算法。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:八大排序汇总 🚚代码仓库:小小unicorn的代码仓库…

我写的最蠢的代码

链接 就问你怎么样吧。。。。。。

云计算(Docker)

Docker简介 Docker 是一个开源的应用容器引擎,基于 Go 语言,并遵从 Apache2.0 协议开源。它可以让开发者打包应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker 可用于开发…

Gateway学习和源码解析

文章目录 什么是网关?搭建实验项目demo-servicegateway-service尝试简单上手 路由(Route)断言(Predicate)和断言工厂(Predicate Factory)gateway自带的断言工厂After(请求必须在某个…

概率论与数理统计(第一章 概率论的基本概念)

文章目录 第一章 概率论的基本概念一、随机试验二、事件的概率 第一章 概率论的基本概念 一、随机试验 随机试验特点: ①可以在相同的条件下重复进行 ②每次试验的可能结果不止一个,并且能提前预测所有的可能结果 ③在未进行试验前不知道哪一个结果会出…

抖音SEO源码

抖音短视频seo矩阵系统源码是一种用于优化抖音视频内容的工具,可以帮助用户提高抖音视频的搜索排名和流量,从而增加视频曝光和转化率。该系统包括两部分,即数据收集和分析模块以及SEO策略和实施模块。 数据收集和分析模块主要负责从抖音平台…

MySQL进阶 —— 超详细操作演示!!!(中)

MySQL进阶 —— 超详细操作演示!!!(中) 三、SQL 优化3.1 插入数据3.2 主键优化3.3 order by 优化3.4 group by 优化3.5 limit 优化3.6 count 优化3.7 update 优化 四、视图/存储过程/触发器4.1 视图4.2 存储过程4.3 存…

爬虫实践-豆瓣读书Top250

爬虫学习与实践 一、爬虫介绍二、爬虫原理TCP3次握手,4次挥手过程 三、页面解析之数据提取四、正则表达式五、实践1. 抓取百度贴吧2. 拉钩招聘网 六、 进阶版 一、爬虫介绍 网络爬虫,其实叫作网络数据采集更容易理解。就是通过编程向网络服务器请求数据…