我是这样理解的:
生成模型,就是生成(数据的分布)的模型;
判别模型,就是判别(数据输出量)的模型;
更进一步:
从结果角度,两种模型都能给你 输出量(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....
判别模型:直接学习 , 它直观输入什么特征X,就直接预测出最可能的 ; 典型的模型包括:LR, SVM,CRF,Boosting,Decision tree....