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

问题描述 投票:3回答:2

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

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

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

关于朴素贝叶斯分类器的想法是,一旦我们训练数据,我们可以询问系统给定的角色是否是特定角色。例如。我们绘制一个特定数字的图像,并询问系统是否为“2”。

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

如果有人能够解释我是否可以使用朴素贝叶斯分类器做出如上所述的多个决策,我们将非常感激。

classification knn naivebayes
2个回答
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.在这种情况下,最好放弃贝叶斯方法并创建一个判别模型的参数比你在生成参数中的参数少。在下图中,垂直轴是世界状态(类)的概率,而水平轴代表数据。


1
投票

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

根据类的概率,您通常需要做出决定,这可以通过例如选择最可能的类来完成。这可能就是为什么你认为它只提供一种可能性。

© www.soinside.com 2019 - 2024. All rights reserved.