生成式模型 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:谈谈数据模型、领域模型、视图模型和命令模型
背景 一个类型可以充当多个角色,这个角色可以是显式的(实现了某个接口或基类),也可以是隐式的(承担的具体职责和上下文决定),本文就讨论四个角色:数据模型.领域模型.视图模型和命令模型. 四个角色 数据 ...
随机推荐
- 集成学习二: Boosting
目录 集成学习二: Boosting 引言 Adaboost Adaboost 算法 前向分步算法 前向分步算法 Boosting Tree 回归树 提升回归树 Gradient Boosting 参 ...
- vue组件通信&&v兄弟组件通信eventbus遇到的问题(多次触发、第一次不触发)
组件通讯包括:父子组件间的通信和兄弟组件间的通信.在组件化系统构建中,组件间通信必不可少的 (vuex以后再说). 父组件--> 子组件 1. 属性设置 父组件关键代码如下: <templ ...
- python3实现的rtsp客户端脚本
一.说明 此客户端使用python3编写 此客户端实现RTSP的OPTIONS, DESCRIBE, SETUP , PLAY, GET_PARAMETER,TEARDOWN方法,未实现ANNOUNC ...
- kali菜单中各工具功能
一.说明 各工具kali官方简介(竖排):https://tools.kali.org/tools-listing 安装kali虚拟机可参考:https://www.cnblogs.com/lsdb/ ...
- PyQt+Html+Js
先做记录,后面有时间在仔细研究 https://www.cnblogs.com/jiangjh5/p/7209315.html?utm_source=itdadao&utm_medium=re ...
- 查看mysql版本
方法一:show variables like 'version'; 方法二:select version();
- js如何返回两个数的商的整数和余数部分?
js中,如何返回两个数的商的整数和余数部分? 如: num1:100 ,num2:12 var num = parseFloat(100/12); //值: 8.333333333333334 那么如 ...
- 【Java算法】条件运算符
利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示. 条件运算符的表达式为: 表达式1?表达式2:表达式3 当表达式1为true ...
- 批量设置样式json版
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...
- 数据库-->表操作
一.MySQL存储引擎 # InnoDB MySql 5.6 版本默认的存储引擎.InnoDB 是一个事务安全的存储引擎,它具备提交.回滚以及崩溃恢复的功能以保护用户数据.InnoDB 的行级别锁定以 ...