生成模型VS判别模型

监督学习方法可以分为生成方法和判别方法,所学习得到的模型分别为生成模型和判别模型。

生成模型定义

生成方法由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型:

                          P(Y|X)=\frac{P(X,Y)}{P(X)}

典型的生成模型有朴素贝叶斯,隐马尔可夫模型

生成模型为什么叫生成模型?

因为模型表示了给定输入X和产生输出Y的生成关系,即联合概率分布P(X,Y),拥有一组生成新数据的能力。

判别模型定义

判别方法由数据直接学习决策函数f(X)或者条件概率分布P(Y|X)作为预测的模型。

典型的判别模型有KNN,决策树,感知机,逻辑回归,最大熵,支持向量机,条件随机场

生成模型可以判别,判别模型不能生成数据。

生成模型 VS 判别模型优缺点

  1. 生成模型可以还原出联合概率分布,而判别模型不能。
  2. 生成模型收敛速度更快。
  3. 当存在隐变量时,可以使用生成模型,不能使用判别模型。
  4. 生成模型在做预测的时候准确率往往较低。

通俗理解

假设在一个大学里,有男有女,并且不同性别的人都有自己的穿衣打扮的风格。

 ■ 当有一个【长头发,穿短裙】的人过来的时候,生成模型和判别模型都可以对这个人的性别进行预测,并且大概率这两个模型都会将这个人预测为【女性】。这就说明了生成模型和判别模型都可以做判别(预测)。

但是预测方法不一样。

生成模型分别根据男性和女性特征学习男性模型和女性模型,然后通过提取这个人的特征,放到男性/女性模型中,将概率最大的模型类别作为其类别。

判别模型从历史数据中学习得到模型,然后通过提取这个人的特征,预测出这个人是男性/女性的概率。

 ■ 假设每一个人都是一个数据,如果想按照大学原本的分布增加一些学生的时候,生成模型可以做到,因为他深谙该大学里男女比例以及他们穿衣打扮的信息;而判别模型做不到。这就说明了生成模型掌握着整体数据的分布。

参考资料

机器学习面试题001:生成模型与判别模型  https://www.cnblogs.com/itmorn/p/13199148.html

机器学习“判定模型”和“生成模型”有什么区别? - politer的回答 - 知https://www.zhihu.com/question/20446337/answer/256466823

猜你喜欢

转载自blog.csdn.net/qq_36854740/article/details/108225763