生成式模型 VS 判别式模型
1 定义
1.1 生成式模型
生成式模型(Generative Model)会对x和y的联合分布p(x,y)建模,然后通过贝叶斯公式来求得 p(yi|x),然后选取使得p(yi|x) 最大的 yi,即:
简单说生成式模型就是生成数据分布的模型。将求联合分布的问题转为了求类别先验概率和类别条件概率的问题。
1.2 判别式模型
对条件概率 p(y|x;) 直接建模。
简单说就是判别数据输出量的模型,解决问题的思路为:
条件分布>模型参数后延概率最大>似然函数*参数先验最大>最大似然
生成式模型可以转为判别式模型,反之不行。
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
《统计学习方法》
生成式模型 VS 判别式模型的更多相关文章
- 判别式模型 vs. 生成式模型
1. 简介 生成式模型(generative model)会对\(x\)和\(y\)的联合分布\(p(x,y)\)进行建模,然后通过贝叶斯公式来求得\(p(y|x)\), 最后选取使得\(p(y|x) ...
- 产生式模型(生成式模型)与判别式模型<转载>
转自http://dongzipnf.blog.sohu.com/189983746.html 产生式模型与判别式模型 产生式模型(Generative Model)与判别式模型(Discrimiti ...
- 生成式模型(generative) vs 判别式模型(discriminative)
Andrew Ng, On Discriminative vs. Generative classifiers: A comparison of logistic regression and nai ...
- AI 判别式模型和生成式模型
判别式模型(discriminative model) 生成式模型(generative model) 对于输入x,类别标签y:产生式模型估计它们的联合概率分布P(x,y)判别式模型估计条件概率分布P ...
- Machine Learning系列--判别式模型与生成式模型
监督学习的任务就是学习一个模型,应用这一模型,对给定的输入预测相应的输出.这个模型的一般形式为决策函数:$$ Y=f(X) $$或者条件概率分布:$$ P(Y|X) $$监督学习方法又可以分为生成方法 ...
- Asp.net管道模型(管线模型)
Asp.net管道模型(管线模型) 前言 为什么我会起这样的一个标题,其实我原本只想了解asp.net的管道模型而已,但在查看资料的时候遇到不明白的地方又横向地查阅了其他相关的资料,而收获比当初预 ...
- linux下多路复用模型之Select模型
Linux关于并发网络分为Apache模型(Process per Connection (进程连接) ) 和TPC , 还有select模型,以及poll模型(一般是Epoll模型) Select模 ...
- Paip.Php Java 异步编程。推模型与拉模型。响应式(Reactive)”编程FutureData总结... 1
Paip.Php Java 异步编程.推模型与拉模型.响应式(Reactive)"编程FutureData总结... 1.1.1 异步调用的实现以及角色(:调用者 提货单) F ...
- DDD:谈谈数据模型、领域模型、视图模型和命令模型
背景 一个类型可以充当多个角色,这个角色可以是显式的(实现了某个接口或基类),也可以是隐式的(承担的具体职责和上下文决定),本文就讨论四个角色:数据模型.领域模型.视图模型和命令模型. 四个角色 数据 ...
随机推荐
- MongoDB\BSON\UTCDateTime::toDateTime
示例# 1 MongoDB \ BSON \ UTCDatetime:toDateTime()例子 <?php $utcdatetime = new MongoDB\BSON\UTCDateTi ...
- Git:从远程库克隆到本地库及更新本地库
1.例如我们克隆远程库gitskills 2.克隆 2.1选择合适的地方(文件目录),点击Git Bash Here. 2.2如果是github远程库,进行以下操作: 点击gitskills,再点击红 ...
- spring-boot 全面认知
https://blog.csdn.net/ityouknow/article/details/80490926,这个链接非常全面的讲解了spring-boot的内容,从初级到中级,到最后的提升,觉得 ...
- Mybatis中,当插入数据后,返回最新主键id的几种方法,及具体用法
insert元素 属性详解 其属性如下: parameterType ,入参的全限定类名或类型别名 keyColumn ,设置数据表自动生成的主键名.对特定数据库(如PostgreSQL),若自动生成 ...
- 线程池 execute 和 submit 的区别
代码示例: public class ThreadPool_Test { public static void main(String[] args) throws InterruptedExcept ...
- possible error
1● regedit 2● path [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Windows Error Reporting] 3● 步 ...
- java⑿
1.插入: 插入算法: 前提是数组中的数据必须是有序的 public static void main(String[] args) { // 先定义一个int类型的数组 int[] nums = n ...
- jenkins使用jacoco插件检测代码覆盖率(八)
代码覆盖率:类覆盖,方法覆盖,行覆盖,指令覆盖……(简而言之,就是判断有没有被执行) 覆盖率 = 已经执行的代码 / 总代码 (1)创建maven项目,配置pom.xml如下 pom.xml < ...
- mysql 内置函数和sql server 内置函数的区别
以下函数均没有对参数做说明,使用的使用需要了解其参数内容 数据库 sql server mysql oracle 举例 获得当前系统时间 getdate() now() sysdate 注意不是函数 ...
- S2 深入.NET和C#编程 机试测试错题积累
机试第一题: //创建文件流(路径 模式) FileStream fa = new FileStream(@"D:\\S2第一次全文 ...