您的位置:首页 > 其它

生成模型和判别模型

2018-03-01 15:01 127 查看
我的理解:生成模型相当统计全国男女比例,判别模型相当于抽样分析一个省的男女比例作为全国男女比例
假设你现在有一个分类问题,x是特征,y是类标记。用生成模型学习一个联合概率分布P(x,y),而用判别模型学习一个条件概率分布P(y|x)。
用一个简单的例子来说明这个这个问题。假设x就是两个(1或2),y有两类(0或1),有如下如下样本(1,0)、(1,0)、(1,1)、(2,1)
则学习到的联合概率分布(生成模型)如下:
-------0------1----
--1-- 1/2---- 1/4
--2-- 0 ------1/4
而学习到的条件概率分布(判别模型)如下:
-------0------1----
--1-- 2/3--- 1/3
--2-- 0--- 1
在实际分类问题中,判别模型可以直接用来判断特征的类别情况,而生成模型,需要加上贝耶斯法则,然后应用到分类中。但是,生成模型的概率分布可以还有其他应用,就是说生成模型更一般更普适。不过判别模型更直接,更简单。
生成模型,就是生成(数据的分布)的模型;
判别模型,就是判别(数据输出量)的模型;
k近邻法、感知机、逻辑斯谛回归模型、最大熵模型、支持向量机、提升方法是判别模型;
隐马尔可夫模型(重点的EM算法)是生成模型。
生成模型使用联合概率建模,判别模型直接使用条件概率建模







生成式模型的世界是这个样子:





而判定式模型的世界是这个样子:





作者:知乎用户
链接:https://www.zhihu.com/question/20446337/answer/74468226
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

最后说一说两种模型的优缺点:
生成模型:
优点:
1)生成给出的是联合分布

,不仅能够由联合分布计算条件分布

(反之则不行),还可以给出其他信息,比如可以使用



来计算边缘分布

。如果一个输入样本的边缘分布

很小的话,那么可以认为学习出的这个模型可能不太适合对这个样本进行分类,分类效果可能会不好,这也是所谓的outlier detection。
2)生成模型收敛速度比较快,即当样本数量较多时,生成模型能更快地收敛于真实模型。
3)生成模型能够应付存在隐变量的情况,比如混合高斯模型就是含有隐变量的生成方法。
缺点:
1)天下没有免费午餐,联合分布是能提供更多的信息,但也需要更多的样本和更多计算,尤其是为了更准确估计类别条件分布,需要增加样本的数目,而且类别条件概率的许多信息是我们做分类用不到,因而如果我们只需要做分类任务,就浪费了计算资源。
2)另外,实践中多数情况下判别模型效果更好。

判别模型:
优点:
1)与生成模型缺点对应,首先是节省计算资源,另外,需要的样本数量也少于生成模型。
2)准确率往往较生成模型高。
3)由于直接学习

,而不需要求解类别条件概率,所以允许我们对输入进行抽象(比如降维、构造等),从而能够简化学习问题。
缺点:
1)是没有生成模型的上述优点。

作者:Ronald Wang
链接:https://www.zhihu.com/question/20446337/answer/27171629
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: