(hamner的答案很好,因此只需将我的答案从MetaOptimize交叉发布以确保完整性。)
我认为生成算法为实际生成数据提供了一个模型(我认为它们为您提供了和,而不是,尽管我猜想这是等效的),但判别算法只是提供分类分裂(不一定以概率方式)。P(X|Y)P(Y)P(X,Y)
比较例如高斯混合模型和k均值聚类。在前者中,我们有一个很好的概率模型来说明如何生成点(以某种概率拾取一个组件,然后通过从该组件的高斯分布中采样来发出一个点),但是关于后者,我们真的无话可说。
请注意,生成算法具有判别属性,因为一旦拥有和(根据贝叶斯定理),您就可以获得),尽管判别算法实际上并没有生成属性。P(Y|X)P(X|Y)P(Y)
1:区分算法允许您对点进行分类,而无需提供实际生成点的模型。所以这些可能是:
- 概率算法尝试学习(例如,逻辑回归);P(Y|X)
- 或尝试直接从点到类的映射的非概率算法(例如,感知器和SVM仅为您提供一个单独的超平面,但没有生成新点的模型)。
因此,是的,区分性分类器是任何非生成性的分类器。
对此的另一种思考方式是,生成算法对模型进行某种结构假设,而判别算法则进行较少的假设。例如,朴素贝叶斯假定条件是您的要素具有条件独立性,而逻辑回归(朴素贝叶斯的区别“对等”)则不然。
2:是的,朴素贝叶斯具有生成性,因为它捕获和。例如,如果我们知道和以及英语和法语单词的概率,那么我们现在可以通过首先选择文档的语言来生成新文档(英语的概率为0.7,法语的概率为0.3),然后根据所选语言的单词概率生成单词。P(X|Y)P(Y)P(Y=English)=0.7P(Y=French)=0.3
是的,我想您可以通过这种方式使逻辑回归生成,但这只是因为您要向逻辑回归添加一些尚不存在的东西。也就是说,当您执行朴素贝叶斯分类时,您是在直接计算(右侧的项和,是允许您生成新文档的内容);但是,当您在逻辑回归中计算时,您没有在计算这两件事,您只是将逻辑函数应用于点积。P(Y|X)∝P(X|Y)P(Y)P(X|Y)P(Y)P(Y|X)
3:在较小的数据集上,生成模型通常胜过区分模型,因为生成假设会在您的模型上放置一些结构,以防止过度拟合。例如,让我们考虑朴素贝叶斯与逻辑回归。朴素贝叶斯假设当然很少满足,因此随着数据集的增长,逻辑回归往往会优于朴素贝叶斯(因为它可以捕获朴素贝叶斯无法做到的依赖性)。但是,当您只有一个很小的数据集时,逻辑回归可能会发现实际上并不存在的虚假模式,因此,朴素贝叶斯充当模型上的一种正则化函数,可以防止过拟合。吴安德(Andrew Ng)和迈克尔·乔丹(Michael Jordan)发表了一篇关于判别式与生成式分类器的论文,详细讨论了这一点。
4:我认为这意味着,如果正确指定模型且模型实际成立,则生成模型实际上可以学习数据的底层结构,但是如果不满足生成假设,则区别模型可能会胜过(因为区别算法是减少与特定结构的联系,而现实世界则是混乱的,而且无论如何都很难完全满足假设。(如果它们引起混淆,我可能会忽略它们。)