朴素贝叶斯分类器 - 多个决策

Posted

技术标签:

【中文标题】朴素贝叶斯分类器 - 多个决策【英文标题】:Naive bayesian classifier - multiple decisions 【发布时间】:2011-10-20 15:50:15 【问题描述】:

我需要知道朴素贝叶斯分类器是否 可用于生成多个决策。我不能 找到任何有证据支持的例子 多项决定。我是这个地区的新手。所以,我有点 困惑。

其实我需要开发字符识别软件。 在那里我需要确定给定的字符是什么。 看来贝叶斯分类器可以用来识别 给定的字符是否为特定字符, 但它不能给出任何其他建议。

例如,如果给定一个'3'的图像(我们认为它是'3'), 如果系统无法将其识别为“3”。如果看起来像 '2' 代表系统,系统应该返回 '2'。

我对朴素贝叶斯分类器的看法 是,一旦我们训练数据,我们就可以问 系统给定字符是否为特定字符 或不。例如。我们画一个特定数字的图像并询问 系统是否为'2'。

我进一步注意到 KNN(k 最近邻) 给出了多个决策。 一个给定的字符,它决定一个最近的兼容 训练数据中给出的字符。

如果有人能解释我是否 朴素贝叶斯分类器可用于制作多个 类似上述的决定。

【问题讨论】:

【参考方案1】:

贝叶斯分类器应该给出一个项目属于几个类别中的每一个的概率。绝对可以有两个以上的类。

使用类的概率,您通常会想要做出决定,这可以通过例如选择最有可能的类来完成。这可能就是您认为它只提供一种可能性的原因。

【讨论】:

谢谢@Michael。这有助于我了解如何使用它。我将不得不进一步研究细节才能使用它。【参考方案2】:

朴素贝叶斯分类器的假设是数据维度是独立的(朴素部分)并且模型是生成的(贝叶斯部分)。换句话说,您对如何从世界状态生成数据进行建模 - P(data|world_state),其中 world_state 可以是连续变量或分类变量(具有多个类-类别)。这与忽略数据生成并通过直接“破解”数据来描述世界状态的后验概率的判别模型形成对比:P(world_state|data)

以下是实现朴素贝叶斯分类器必须遵循的步骤: 1. 使用生成模型对数据进行建模,例如高斯分布。每个类都有自己的高斯。在幼稚模型中,您为每个数据维度采用高斯乘积。在更完整的模型中,高斯的维数等于数据的维数。 2. 找出每个类的先验(例如,为每个类分配一个概率的分类分布); 3. 通过将高斯拟合到您的数据来学习参数; 4.通过贝叶斯公式评估测试数据类:

P(class|data) = P(data|class) * P(class)/P(data);           [1]
P(data) = sum_over_classes[P(data|class) * P(class)];       [2]

公式1中的第一项称为后验,第二项是可能性,最后一项是先验。当您计算最可能负责数据生成的类的后验 (MAP) 的最大值时,通常会忽略 [2] 中显示的分母。然而,分母对于理解类模型如何协同工作非常重要。

例如,您可以为每个类创建一个非常复杂的生成模型,但您的后验看起来非常简单,因为在归一化期间,其中一个可能性降低到 0。在这种情况下,最好放弃贝叶斯方法并创建一个具有比生成模型更少参数的判别模型。在下图中,垂直轴是世界状态(类)的概率,而水平轴表示数据。

【讨论】:

以上是关于朴素贝叶斯分类器 - 多个决策的主要内容,如果未能解决你的问题,请参考以下文章

贝叶斯分类器(3)朴素贝叶斯分类器

贝叶斯分类器

数据挖掘-贝叶斯分类器

NLP经典分类模型朴素贝叶斯解读

数据挖掘实例:朴素贝叶斯分类器进行垃圾邮件过滤

朴素贝叶斯分类器仅基于先验概率做出决策