8

我想知道贝叶斯分类器是否适用于应用程序,其中相同的短语“冷盘”(例如)在关联某些事物(啤酒、苏打水)时是“好”,但在与其他事物相关时是“坏”(牛排、比萨饼,汉堡)?

我想知道的是,如果训练一个贝叶斯分类器(“啤酒冷”和“苏打冷”是“好”)会取消训练它“牛排冷”和“汉堡冷”是“坏”)。

或者,是否可以(正确地)训练贝叶斯“冷食”可能是“好”或“坏”,这取决于它与什么相关联?

我在这里和其他地方发现了很多关于贝叶斯的好信息,但无法确定它是否适合这种类型的应用程序,其中一个短语的好坏答案是“取决于”?

4

2 回答 2

6

朴素贝叶斯分类器假定属性之间是独立的。例如,假设您有以下数据:

苹果果红色 BAD
苹果果绿色 BAD
香蕉果黄色 GOOD
番茄蔬菜红色 GOOD

独立是指属性(名称、水果、颜色)是独立的;例如,“apple”可以是“fruit”或“vegetable”。在这种情况下,属性“名称”和“水果”是相关的,因此朴素贝叶斯分类器过于天真(它可能会将“苹果水果黄色”分类为坏,因为它是一个苹果而且它是一个水果——但并非所有的苹果水果?)。

为了回答您最初的问题,朴素贝叶斯分类器假定类(好或坏)独立地取决于每个属性,但事实并非如此——我喜欢我的披萨热和苏打水冷。

编辑:如果您正在寻找一个具有一定实用性但理论上可能有大量 I 型和 II 型错误的分类器,那么朴素贝叶斯就是这样一个分类器。朴素贝叶斯总比没有好,但使用不那么朴素的分类器具有可衡量的价值。

于 2011-02-04T08:29:17.313 回答
2

我不会像丹尼尔建议的那样快速地驳回贝叶斯。贝叶斯的质量(数学表现)首先取决于训练数据的数量和质量,以及您在开发算法时所做的假设。

给你一个简短的例子,如果你只喂它 {'beer cold' => :good, 'pizza cold' => :bad} 'cold' 这个词实际上不会影响分类。它只会决定所有的啤酒都是好的,所有的比萨饼都是坏的(看看它有多聪明?:))

无论如何,答案太短了,无法详细解释,我建议阅读 Paul Graham 关于他如何开发垃圾邮件过滤器的文章 - 请注意,他基于贝叶斯而不只是现成的分类器制作了自己的算法。根据我(到目前为止)的经验,您最好跟随他为手头的特定问题开发特定版本的算法,这样您就可以控制各种特定领域的假设。

如果您有兴趣,可以在此处关注我的尝试(在 ruby​​ 中):http: //arubyguy.com/2011/03/03/bayes-classification-update/

于 2011-03-04T08:32:21.780 回答