机器学习 之 生成式模型 VS 判别式模型

来源:互联网 发布:java接口关键字 编辑:程序博客网 时间:2024/06/06 15:10

【摘要】
判别式模型,就是只有一个模型,你把测试用例往里面一丢,label就出来了,如SVM。生成式模型,有多个模型(一般有多少类就有多少个),你得把测试用例分别丢到各个模型里面,最后比较其结果,选择最优的作为label,如朴素贝叶斯。本文将从生成式模型与判别式模型的概念,适用环境以及具体模型三个方面分析比较这两个模型,并在最后对列出模型范例,进行范例比较。
【基本概念】

  • 生成模型,就是生成(数据的分布)的模型;
  • 判别模型,就是判别(数据输出量)的模型。
【适用环境】
更进一步,从结果角度,两种模型都能给你 输出量(label 或 y etc.)。
  • 但,生成模型的处理过程会告诉你关于数据的一些统计信息(p(x|y) 分布 etc.),更接近于统计学;
  • 而 判别模型则是通过一系列处理得到结果,这个结果可能是概率的或不是,这个并不改变他是不是判别的。
  • 如,决策树的 if then 说不是这个就是那个(而很多属性都是有分布的),明显是一种 判别嘛;
  • 而朴素贝叶斯说,p( cancer , fat ) = x% etc.,模型 生成 了一个分布给你了,即使你没意识到/没用到,只用到 p( cancer | fat ) = y% 这个最终的判别。
【具体模型】
更进一步,可以再理解一下:
生成式模型
  • 朴素贝叶斯
  • K近邻(KNN)
  • 混合高斯模型
  • 隐马尔科夫模型(HMM)
  • 贝叶斯网络
  • Sigmoid Belief Networks
  • 马尔科夫随机场(Markov Random Fields)
  • 深度信念网络(DBN)
判别式模型
  • 线性回归(Linear Regression)
  • 逻辑斯蒂回归(Logistic Regression)
  • 神经网络(NN)
  • 支持向量机(SVM)
  • 高斯过程(Gaussian Process)
  • 条件随机场(CRF)
  • CART(Classification and Regression Tree)
【模型范例】
假设你现在有一个分类问题,x是特征,y是类标记。用生成模型学习一个联合概率分布P(x,y),而用判别模型学习一个条件概率分布P(y|x)。用一个简单的例子来说明这个这个问题。假设x就是两个(1或2),y有两类(0或1),有如下如下样本(1,0)、(1,0)、(1,1)、(2,1)
则 学习到的联合概率分布(生成模型)如下:


0111/21/4201/4

而学习到的条件概率分布(判别模型)如下:

0112/31/3201
在实际分类问题中,判别模型可以直接用来判断特征的类别情况,而生成模型,需要加上贝耶斯法则,然后应用到分类中。但是,生成模型的概率分布可以还有其他应用,就是说生成模型更一般更普适。不过判别模型更直接,更简单。两种方法目前交叉较多。由生成式模型可以得到判别式模型,但由判别式模型得不到生成式模型。

关于生成式模型和判别式模型的优缺点的具体分析

详见:判别式模型 vs. 生成式模型。

详址:http://www.cnblogs.com/kemaswill/p/3427422.html

0 0
原创粉丝点击