参考:生成模型 VS 判别模型 (含义、区别、对应经典算法)

            机器学习“判定模型”和“生成模型”有什么区别?

判别模型和生成模型的区别,主要在于概率分布。对于一堆样本数据,第i个样本的特征为Xi(特征维度可以是j),对应的分类标记为Yi,则:

  • 判别模型:学习到条件概率分布P(Y|X),即在特征X出现的情况下标记Y出现的概率,是后验概率

判别式模型求得P(Y|X),对于一个样本的特征X,根据P(Y|X)可以求得标记Y,即可以直接判别出来样本的类别,如下图的左边所示,实际是就是直接得到了判别边界

所以传统的、耳熟能详的机器学习算法如:线性回归模型逻辑回归支持向量机、感知机、K近邻、决策树等都是判别式模型,这些模型的特点都是输入属性(特征)X可以直接得到Y(对于二分类任务来说,实际得到一个score,当score大于threshold时则为正类,否则为反类)

  • 生成模型:学习到联合概率分布P(X,Y),即特征x和标记y共同出现的概率,然后求条件概率分布。能够学习到数据生成的机制。

生成式模型求得P(Y,X),对于一个样本的特征X,要求出X与不同标记之间的联合概率分布,然后大的获胜,如下图右边所示,并没有什么边界存在。对于未见示例(红三角),求两个联合概率分布(有两个类),比较一下,取那个大的作为最终类别。

机器学习中朴素贝叶斯模型隐马尔可夫模型HMM、混合高斯模型等都是生成式模型,熟悉Naive Bayes的都知道,对于输入X,需要求出好几个联合概率,然后较大的那个就是预测结果~(根本原因个人认为是对于某示例X_1,对正例和反例的标记的联合概率不等于1,即P(Y_1,X_1)+P(Y_2,X_1)<1,要遍历所有的X和Y的联合概率求和,即sum(P(X,Y))=1,

  • 数据要求:生成模型需要的数据量比较大,能够较好地估计概率密度;而判别模型对数据样本量的要求没有那么多。

【机器学习】判别模型和生成模型

在机器学习中任务是从属性X预测标记Y,判别模型求的是P(Y|X),即后验概率;而生成模型最后求的是P(X,Y),即联合概率。从本质上来说:

判别模型之所以称为“判别”模型,是因为其根据X“判别”Y;

生成模型之所以称为“生成”模型,是因为其预测的根据是联合概率P(X,Y),而联合概率可以理解为“生成”(X,Y)样本的概率分布(或称为 依据);具体来说,机器学习已知X,从Y的候选集合中选出一个来,可能的样本有(X,Y_1), (X,Y_2), (X,Y_3),……,(X,Y_n),实际数据是如何“生成”的依赖于P(X,Y),那么最后的预测结果选哪一个Y呢?那就选“生成”概率最大的那个吧~

 

相关文章: