一尘不染

生成算法和判别算法有什么区别?

algorithm

请帮助我理解 生成 算法和 判别 算法之间的 区别 ,请记住我只是一个初学者。


阅读 186

收藏
2020-07-28

共1个答案

一尘不染

假设您有输入数据,x并且想要将数据分类为label y。生成模型学习 联合 概率分布,p(x,y)而判别模型学习 条件
概率分布p(y|x)-您应将其理解为 y给定概率x

这是一个非常简单的示例。假设您具有以下数据形式(x,y)

(1,0), (1,0), (2,0), (2, 1)

p(x,y)

      y=0   y=1
     -----------
x=1 | 1/2   0
x=2 | 1/4   1/4

p(y|x)

      y=0   y=1
     -----------
x=1 | 1     0
x=2 | 1/2   1/2

如果花几分钟盯着这两个矩阵,您将了解两个概率分布之间的差异。

分布p(y|x)是用于将给定示例分类x到类中的自然分布y,这就是为什么将对此直接建模的算法称为判别算法的原因。生成算法模型p(x,y),可以p(y|x)通过应用贝叶斯规则将其转换为模型,然后用于分类。但是,该分发p(x,y)也可以用于其他目的。例如,您可以p(x,y)用来
生成 可能的(x,y)对。

从上面的描述中,您可能会认为生成模型更通用,因此更好,但它并非如此简单。本文是关于区分性分类器与生成性分类器的非常受欢迎的参考,但它的工作量很大。总体要点是,在分类任务中,区分模型通常要优于生成模型。

2020-07-28