`

朴素贝叶斯分类

阅读更多

贝叶斯定理

英国数学家贝叶斯(Thomas Bayes)曾经给出如下定理:

P(A)表示A事件发生的概率,P(B)表示B事件发生的概率;P(A|B)表示在B事件已经确定发生的情况下,发生A事件的概率;P(B|A)表示在A事件已经确定发生的情况下,发生B事件的概率;P(AB)表示AB事件同时发生的概率。所以:

P(A)P(B|A)=P(AB)=P(B)P(A|B)

也就是说,A事件发生的概率乘以A事件已发生条件下B事件发生的概率,和B事件发生的概率乘以B事件已发生条件下A事件发生的概率,这二者是相等的,都等于AB事件同时发生的概率。

(特例:如果A、B是独立事件,互不相关,那么P(A)=P(A|B),P(B)=P(B|A),于是:P(A)P(B)=P(AB)。)

变换一下得到:

P(B|A)=P(B)P(A|B)/P(A)

在很多场景下,P(A|B)是容易得出的,但是P(B|A)不容易获得,这时可以利用贝叶斯公式求得。

我们还可以把贝叶斯定理推论到三元情形:

P(A|B,C)=P(B|A)P(A)P(C|A,B) / (P(B)P(C|B))

 

朴素贝叶斯分类(Naive Bayesian Classification)

假设具备如下分类:C1, C2, C3, … Cn,

同时,待分类项x具备如下相关属性分类项:a1, a2, a3, … an,

接着我们定义x属于Ck分类,当且仅当:P(Ck|x)=max{P(C1|x), P(C2|x), … P(C3|x)}。这一步是属于对分类器的应用。

也就是说,根据x的相关属性分类项来判断,和哪一分类最匹配时,x就算属于该分类。

下面我们开始进行分类器的构建:

1、确定相关特征属性分类项。就是上述的a1, a2, … an,对于x出现在某分类Ci中的概率,等于每个特征属性出现在该分类中的概率之积:

P(x|Ci)=P(a1|Ci)P(a2|Ci)…P(an|Ci) —— 公式A

2、整理取得训练样本。这个样本的数量和准确性会大大影响到分类的准确性,很多时候需要清洗样本数据。

3、分别计算每个类别下每个相关属性的概率,即:

P(ak|Ci),其中1<=k<=m,ak表示任一相关属性,1<=i<=n,Ci表示任一分类。

根据贝叶斯定理和公式A,可以得到x事件出现在Ci分类中的概率:

P(Ci|x)P(x)=P(Ci)P(x|Ci)=P(Ci)P(a1|Ci)P(a2|Ci)…P(an|Ci) —— 公式B

通过比较对任意的i,1<=i<=n的时候,P(Ci|x)P(x)的取值,从中找到最大值,就可以找到x的分类——因为对于不同的i,P(x)在是恒定值,所以对此问题而言,比较P(Ci|x)P(x)的最大值和比较P(Ci|x)的最大值是一致的。

举一个具体的例子:

一批商品,分类C1是正品,C2是次品。现在有两个属性分类项:a1表示质量,划为<1千克和>=1千克两个分类;a2表示体积,划为<1cm³和>=1cm³两个分类。

经过100个商品的样本统计,其中正品有80个,其中有60个质量<1千克,20个质量>=1千克,有40个体积<1cm³,40个体积>=1cm³;而余下的次品20个中,有5个质量<1千克,15个质量>=1千克,4个体积<1cm³,16个体积>=1cm³。

也就是说:

P(C1)=80/100, P(a1<1|C1)=60/80, P(a1>=1|C1)=20/80, P(a2<1|C1)=40/80, P(a2>=1|C1)=40/80

P(C2)=20/100, P(a1<1|C2)=5/20, P(a1>=1|C2)=15/20, P(a2<1|C2)=4/20, P(a2>=1|C2)=16/20

下面使用已经计算完成的分类器进行分类:

有一个待分类的商品x,它的质量是0.8千克,体积是1.1cm³,那么:

根据公式B:

P(x)P(C1|x)=P(C1)P(x|C1)=P(C1)P(a1<1|C1)P(a2>=1|C1)=0.3

P(x)P(C2|x)=P(C2)P(x|C2)=P(C2)P(a1<1|C2)P(a2>=1|C2)=0.12

所以,该商品判断为C1正品。

文章系本人原创,转载请保持完整性并注明出自《四火的唠叨》

0
0
分享到:
评论

相关推荐

    朴素贝叶斯分类器算法

    朴素贝叶斯分类器是一种基于概率的机器学习算法,它基于贝叶斯定理和特征条件独立假设。在"朴素贝叶斯分类器算法"中,我们主要关注以下几个知识点: 1. **贝叶斯定理**:贝叶斯定理是统计学中的一个重要概念,用于...

    朴素贝叶斯分类Iris数据

    朴素贝叶斯分类是一种基于概率的机器学习方法,它在数据分类中有着广泛的应用。该方法基于贝叶斯定理,假设特征之间相互独立,因此被称为“朴素”。在这个实例中,我们将探讨如何使用朴素贝叶斯分类器处理Iris数据集...

    人工智能-项目实践-朴素贝叶斯分类器-朴素贝叶斯文本分类器

    人工智能_项目实践_朴素贝叶斯分类器_朴素贝叶斯文本分类器 **数据:**搜狗文本分类语料库 **分类器:**朴素贝叶斯分类器 NBC(Naive Bayesian Classifier) **编程语言:**Python+jieba分词库+nltk+sklearn

    java实现朴素贝叶斯分类算法

    朴素贝叶斯分类算法是一种基于概率的机器学习方法,它基于贝叶斯定理和特征条件独立假设。在Java中实现朴素贝叶斯分类器,我们需要理解以下几个关键知识点: 1. **贝叶斯定理**:贝叶斯定理是概率论中的一个公式,...

    朴素贝叶斯分类器,用于识别手写的数字A~J

    朴素贝叶斯分类器是一种基于概率的机器学习算法,它在数据分类中有着广泛的应用,尤其是在文本分类、垃圾邮件过滤和图像识别等领域。这个特定的案例是针对手写数字的识别,目标是从A到J这10个字符进行区分。 在手写...

    基于hadoop的朴素贝叶斯分类器

    朴素贝叶斯分类器是一种基于概率的机器学习算法,它基于贝叶斯定理和特征条件独立假设。在大数据处理领域,结合Hadoop框架可以实现大规模数据集的分类任务。Hadoop是一个开源分布式计算框架,它允许在大量廉价硬件上...

    朴素贝叶斯分类程序(C++)

    朴素贝叶斯分类是一种基于概率理论的机器学习方法,它假设各特征之间相互独立,并且在给定类标签的情况下,每个特征出现的概率是独立的。这个假设使得计算变得简单,因此朴素贝叶斯分类器在处理大量数据时具有高效性...

    朴素贝叶斯分类 源码+步骤

    该文档为朴素贝叶斯分类算法的实现步骤,包括源码注解和详细步骤

    模式识别朴素贝叶斯分类器

    朴素贝叶斯分类器是一种基于概率的机器学习算法,它在模式识别领域有着广泛的应用。该算法基于贝叶斯定理,通过计算不同特征条件下类别的先验概率和后验概率来进行分类。在这个主题中,我们将深入探讨朴素贝叶斯分类...

    Python实现的朴素贝叶斯分类器示例

    朴素贝叶斯分类器是一种基于概率的分类方法,它的核心思想是假设各个特征之间相互独立,并且利用贝叶斯定理来计算一个样本属于某一类别的概率。在Python中,我们可以使用各种库,如sklearn,来实现朴素贝叶斯分类器...

    朴素贝叶斯_朴素贝叶斯分类_

    朴素贝叶斯分类是一种基于概率理论的机器学习方法,它在文本分类、垃圾邮件过滤、情感分析等领域有着广泛的应用。这种算法的核心思想是利用贝叶斯定理来预测未知类别的数据实例的类别,同时假设特征之间相互独立,即...

    MATLAB实现朴素贝叶斯分类对手写数字数据集进行分类

    在机器学习领域,朴素贝叶斯分类是一种广泛应用的算法,尤其在文本分类和垃圾邮件过滤等领域。本项目将探讨如何使用MATLAB来实现朴素贝叶斯分类器,并将其应用于手写数字识别。手写数字数据集通常是机器学习初学者...

    基于朴素贝叶斯分类器的文本分类算法

    朴素贝叶斯分类器是一种基于概率的机器学习方法,它在文本分类领域有着广泛的应用。该模型基于贝叶斯定理,并且通过“朴素”这一假设来简化计算,即假设特征之间是相互独立的。这一假设使得朴素贝叶斯分类器能够高效...

    论文研究-朴素贝叶斯分类器的构建 .pdf

    朴素贝叶斯分类器是一种基于贝叶斯定理的概率分类方法,它简单且易于实现,广泛应用于文本分类、垃圾邮件过滤、情感分析等众多领域。朴素贝叶斯分类器的核心是基于属性条件独立的假设,即一个属性的出现不影响其他...

    朴素贝叶斯分类器(wine红酒数据集)

    机器学习领域一个非常重要理论就是贝叶斯理论,本文就是一篇关于使用朴素贝叶斯分类器来进行多维数据分类的学习使用文档,由于使用latex进行排版,所以就直接上传PDF文档了,如有问题可以在CSDN上私信我,多谢批评...

    朴素贝叶斯分类算法

    朴素贝叶斯分类算法是基于概率理论的一种有监督学习方法,尤其在文本分类、垃圾邮件过滤等领域表现出色。它的核心思想是假设各个特征之间相互独立,并且先验概率可以通过观察到的数据来估计。这种算法简单易用,计算...

    朴素贝叶斯分类器(Matlab代码)

    朴素贝叶斯分类器是一种基于概率的机器学习算法,它基于贝叶斯定理和特征条件独立假设。在本项目中,"朴素贝叶斯分类器(Matlab代码)" 提供了一个非官方的实现,由作者亲自编写,并且包含了测试模块,这使得学习者...

    朴素贝叶斯分类器(python版)

    朴素贝叶斯分类器是一种基于概率的机器学习算法,它基于贝叶斯定理和特征条件独立假设。在Python中实现朴素贝叶斯分类器,我们可以利用常见的数据分析库,如NumPy、Pandas以及Scikit-learn。在这个压缩包中,有两个...

    朴素贝叶斯分类器(MATLAB源代码)

    朴素贝叶斯分类器 MATLAB 源代码,里面含有使用实例,用的是 UCI 的 mushroom 数据集。 分类器详细介绍见: http://blog.csdn.net/yunduanmuxue/article/details/39693917

    MATLAB中的朴素贝叶斯分类器matlab.7z

    标题 "MATLAB中的朴素贝叶斯分类器matlab.7z" 涉及到的主要知识点是关于在MATLAB环境中实现朴素贝叶斯分类器。MATLAB是一种强大的数学计算和编程环境,常用于数据分析、算法开发和模型创建。朴素贝叶斯分类器则是一...

Global site tag (gtag.js) - Google Analytics