机器学习中 生成式模型 VS 判别式模型
1. 前言
判别式模型:只有一个模型,把测试数据往里一丢,结果就出来了。如 SVM。
生成式模型:有多个模型(一般有多少类就有多少个),把测试数据丢到各个模型里面,最后比较结果,选择最优的最为结果。如 朴素贝叶斯。
2.基本概念
判别模型,就是判别(数据输出量)的模型。
生成模型,就是生成(数据的分布)的模型。
2. 适用环境
从结果角度看,两种模型都能给出输出量(lable 或 y 等)
但生成模型的处理过程会告你关于数据的一些统计信息(p(x|y) 分布等),更接近统计学。
判别模型是通过一系列处理得到结果,这个结果可能是概率或者不是,这个并不改变他是不是判别的。
3.具体模型
生成式模型:
- 朴素贝叶斯
- K近邻(KNN)
- 混合高斯模型
- 隐马尔可夫模型(HMM)
- 贝叶斯网络
- Sigmoid Belief Networks
- 马尔科夫随机场(Markov Random Fields)
- 深度信念网络(DBN)
判别模型:
- 线性回归
- 逻辑回归
- 神经网络(NN)
- 支持向量机(SVM)
- 高斯过程(Gaussian Process)
- 条件随机场(CRF)
- CART(Classification and Regression Tree)
4.模型范例
假设现在一个分类问题,X是特征,y是标记。用生成模型学习一个联合概率分布P(X, y),而用判别模型学习一个条件概率分布P(y|X)。
用一个简单例子,假设X就是两个(1或2),y有两类(0或1),有如下样本(1,0)、(1,0)、(1,1)、(1,2)
则联合概率分布(生成模型):
0 | 1 | |
1 | 1/2 | 1/4 |
2 | 0 | 1/4 |
而条件概率分布(判别模型):
0 | 1 | |
1 | 2/3 | 1/3 |
2 | 0 | 1 |
在实际分类问题中,判别模型可以直接用来判断特征的类别情况,而生成模型,需要加上贝耶斯法则,然后应用到分类中。但是,生成模型的概率分布可以还有其他应用,就是说生成模型更一般更普适。不过判别模型更直接,更简单。两种方法目前交叉较多。由生成式模型可以得到判别式模型,但由判别式模型得不到生成式模型。
来自:忘了