判别式模型:只有一个模型,把测试数据往里一丢,结果就出来了。如 SVM。
生成式模型:有多个模型(一般有多少类就有多少个),把测试数据丢到各个模型里面,最后比较结果,选择最优的最为结果。如 朴素贝叶斯。
判别模型,就是判别(数据输出量)的模型。
生成模型,就是生成(数据的分布)的模型。
2. 适用环境
从结果角度看,两种模型都能给出输出量(lable 或 y 等)
但生成模型的处理过程会告你关于数据的一些统计信息(p(x|y) 分布等),更接近统计学。
判别模型是通过一系列处理得到结果,这个结果可能是概率或者不是,这个并不改变他是不是判别的。
生成式模型:
判别模型:
假设现在一个分类问题,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 |
在实际分类问题中,判别模型可以直接用来判断特征的类别情况,而生成模型,需要加上贝耶斯法则,然后应用到分类中。但是,生成模型的概率分布可以还有其他应用,就是说生成模型更一般更普适。不过判别模型更直接,更简单。两种方法目前交叉较多。由生成式模型可以得到判别式模型,但由判别式模型得不到生成式模型。
来自:忘了
原文:https://www.cnblogs.com/keye/p/14671285.html