我是这样理解的:
生成模型,就是生成(数据的分布)的模型;
判别模型,就是判别(数据输出量)的模型;
更进一步:
从结果角度,两种模型都能给你 输出量(label 或 y etc.)。
但,生成模型的处理过程会告诉你关于数据的一些统计信息(p(x|y) 分布 etc.),更接近于统计学;
而 判别模型则是通过一系列处理得到结果,这个结果可能是概率的或不是,这个并不改变他是不是判别的。
如,决策树的if then说不是这个就是那个(而很多属性都是有分布的)【即分支】,明显是一种 判别 嘛;
而朴素贝叶斯说,p( cancer , fat ) = x% etc.,模型 生成 了一个分布给你了,即使你没意识到/没用到,只用到 p( cancer | fat ) = y% 这个最终的判别。
k近邻法、感知机、逻辑斯谛回归模型、最大熵模型、支持向量机、提升方法是判别模型;
隐马尔可夫模型(重点的EM算法)是生成模型。
简单地说,对于监督学习,预测时,一般都是在求
生成模型: 从数据中学习联合概率分布
,然后利用贝叶斯公式求:
; 这类典型的模型包括:朴素贝叶斯、LDA、HMM
判别模型:直接学习
, 它直观输入什么特征X,就直接预测出最可能的
; 典型的模型包括:LR, SVM,CRF,Boosting,Decision tree....
![p(Y|X)](https://i-blog.csdnimg.cn/blog_migrate/1bc107cd270a9eceeec41005df9fac9c.png)
![p(X,Y)](https://i-blog.csdnimg.cn/blog_migrate/3d92b07ca2c280c15035b81caae2b4e1.png)
![p(Y|X)=\frac{P(X,Y)}{\Sigma P(X,Y_{i} )}](https://i-blog.csdnimg.cn/blog_migrate/1bc107cd270a9eceeec41005df9fac9c.png%3D%5Cfrac%7BP%28X%2CY%29%7D%7B%5CSigma+P%28X%2CY_%7Bi%7D+%29%7D+)
判别模型:直接学习
![P(Y|X)](https://i-blog.csdnimg.cn/blog_migrate/304df95455f96e8f62d158391cabc49b.png)
![Y](https://i-blog.csdnimg.cn/blog_migrate/ce020eb98bb704a4d4bd27920c72fe8b.png)