为啥朴素贝叶斯是生成式的?

Posted

技术标签:

【中文标题】为啥朴素贝叶斯是生成式的?【英文标题】:Why is naïve Bayes generative?为什么朴素贝叶斯是生成式的? 【发布时间】:2018-06-08 08:50:18 【问题描述】:

我正在编写一份文档,该文档应包含使用朴素贝叶斯(生成)和逻辑回归(判别)模型进行文本分类之间的主要区别。

在研究过程中,我遇到了朴素贝叶斯模型的定义:https://nlp.stanford.edu/IR-book/html/htmledition/naive-bayes-text-classification-1.html

文档d 在类c 中的概率计算为... 其中p(tk|c) 是术语tk条件概率发生在 c 类的文档中...

当我开始比较生成模型和判别模型时,我发现 *** 上的这个解释被接受:What is the difference between a Generative and Discriminative Algorithm?

生成模型学习联合概率分布p(x,y)判别模型 学习 条件概率 分布p(y|x) - 您应该将其理解为“给定 x 的 y 概率”。

此时我感到困惑:朴素贝叶斯是一个生成模型并使用条件概率,但同时判别模型被描述为好像它们学习的是条件概率,而不是生成模型的联合概率。

有人能解释一下吗?

谢谢!

【问题讨论】:

接受答案的第一段直接回答了你的问题:stats.stackexchange.com/questions/4689/… 感谢您回答@HFBrowning!根据我在那里阅读的内容,生成模型对联合概率分布p(x,y) 进行建模以计算p(y|x),但我仍然没有看到在我共享的朴素贝叶斯链接中使用p(x,y) 的位置;我只看到条件概率。 我也没有在该文本中看到它;我的意思是这本教科书的作者并不认为这种区别很重要,或者有点草率。我找到的所有其他答案都非常一致,其中很多都指出了似乎是关于该主题的规范论文(我相信你已经看过:papers.nips.cc/paper/…) 在我刚刚链接到您的论文上,查看2. Preliminaries 下的前几段。我认为那里的解释很清楚。还有这个页面 (machinelearningmastery.com/…),其中的算法在 Python 中逐步显示。即使您不了解 Python,它也足够接近英语,我认为它可能会有所帮助。 @HFBrowning 在你的帮助和这个answer 之间我理解。 p(x,y)p(y|x) p(y) 澄清了很多关于关节是如何隐含在那里的。非常感谢! 【参考方案1】:

从某种意义上说,它是生成式的,因为您不直接对后验 p(y|x) 建模,而是学习联合概率模型 p(x,y),它也可以表示为 p(x|y) * p(y) (似然时间先验) 然后通过Bayes rule 寻找最可能的y

在这种情况下,我可以推荐一本好书:“论判别式与生成式分类器:逻辑回归和朴素贝叶斯的比较” (Ng & Jordan 2004)

【讨论】:

以上是关于为啥朴素贝叶斯是生成式的?的主要内容,如果未能解决你的问题,请参考以下文章

算法朴素贝叶斯分类算法原理与实践

机器学习-朴素贝叶斯

逻辑回归 vs 朴素贝叶斯

面试题:逻辑回归与朴素贝叶斯有什么区别

面试题:逻辑回归与朴素贝叶斯有什么区别

机器学习 | Sklearn中的朴素贝叶斯全解