`
yuaqian2003
  • 浏览: 13718 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

朴素贝叶斯分类器

阅读更多
在文本分类中,设每个数据样本用一个n维特征向量来描述n个属性的值,即:X={x1,x2,…,xn},假定有m个类,分别用C1, C2,…,Cm表示。给定一个未知的数据样本X(即没有类标号),若朴素贝叶斯分类法将未知的样本X分配给类Ci,则一定是

P(Ci|X)>P(Cj|X) 1≤j≤m,j≠i

根据贝叶斯定理
由于P(X)对于所有类为常数,最大化后验概率P(Ci|X)可转化为最大化先验概率P(X|Ci)P(Ci)。如果训练数据集有许多属性和元组,计算P(X|Ci)的开销可能非常大,为此,通常假设各属性的取值互相独立,这样

先验概率P(x1|Ci),P(x2|Ci),…,P(xn|Ci)可以从训练数据集求得。

根据此方法,对一个未知类别的样本X,可以先分别计算出X属于每一个类别Ci的概率P(X|Ci)P(Ci),然后选择其中概率最大的类别作为其类别。

朴素贝叶斯算法成立的前提是各属性之间互相独立。当数据集满足这种独立性假设时,分类的准确度较高,否则可能较低。另外,该算法没有分类规则输出。

优点和缺点

Strengths and Weaknesses

朴素贝叶斯分类器与其他方法相比最大的优势或许就在于,它在接受大数据量训练和查询时所具备的高速度。即使选用超大规模的训练集,针对每个项目通常也只会有相对较少的特征数,并且对项目的训练和分类也仅仅是针对特征概率的数学运算而已。

尤其当训练量逐渐递增时则更是如此--在不借助任何旧有训练数据的前提下,每一组新的训练数据都有可能会引起概率值的变化。(你会注意到,贝叶斯分类器的算法实现代码允许我们每次只使用一个训练项,而其他方法,比如决策树和支持向量机,则须要我们一次性将整个数据集都传给它们。)对于一个如垃圾邮件过滤这样的应用程序而言,支持增量式训练的能力是非常重要的,因为过滤程序时常要对新到的邮件进行训练,然后必须即刻进行相应的调整;更何况,过滤程序也未必有权访问已经收到的所有邮件信息。

朴素贝叶斯分类器的另一大优势是,对分类器实际学习状况的解释还是相对简单的。由于每个特征的概率值都被保存了起来,因此我们可以在任何时候查看数据库,找到最适合的特征来区分垃圾邮件与非垃圾邮件,或是编程语言与蛇。保存在数据库中的这些信息都很有价值,它们有可能会被用于其他的应用程序,或者作为构筑这些应用程序的一个良好基础。

朴素贝叶斯分类器的最大缺陷就是,它无法处理基于特征组合所产生的变化结果。假设有如下这样一个场景,我们正在尝试从非垃圾邮件中鉴别出垃圾邮件来:假如我们构建的是一个Web应用程序,因而单词"online"时常会出现在你的工作邮件中。而你的好友则在一家药店工作,并且喜欢给你发一些他碰巧在工作中遇到的奇闻趣事。同时,和大多数不善于严密保护自己邮件地址的人一样,偶尔你也会收到一封包含单词"online pharmacy"的垃圾邮件。

也许你已经看出了此处的难点--我们往往会告诉分类器"online"和"pharmacy"是出现在非垃圾邮件中的,因此这些单词相对于非垃圾邮件的概率会更高一些。当我们告诉分类器有一封包含单词"online pharmacy"的邮件属于垃圾邮件时,则这些单词的概率又会进行相应的调整,这就导致了一个经常性的矛盾。由于特征的概率都是单独给出的,因此分类器对于各种组合的情况一无所知。在文档分类中,这通常不是什么大问题,因为一封包含单词"online pharmacy"的邮件中可能还会有其他特征可以说明它是垃圾邮件,但是在面对其他问题时,理解特征的组合可能是至关重要的。
分享到:
评论

相关推荐

    朴素贝叶斯分类器算法

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

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

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

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

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

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

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

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

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

    C++实现朴素贝叶斯分类器

    朴素贝叶斯分类器是一种基于概率的机器学习算法,它基于贝叶斯定理和特征条件独立假设。在C++中实现朴素贝叶斯分类器,可以为各种数据分类任务提供一个高效且易于理解的解决方案。 首先,我们需要理解贝叶斯定理。...

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

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

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

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

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

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

    朴素贝叶斯分类器(离散).rar

    朴素贝叶斯分类器是一种基于概率的机器学习算法,它源于贝叶斯定理和特征条件独立假设。在本项目中,我们关注的是离散型朴素贝叶斯分类器,这意味着输入特征变量都是离散的,如二元(是/否)或计数数据。这种分类器...

    Python-一个实现朴素贝叶斯分类器简单的Python库

    **Python中的朴素贝叶斯分类器** 朴素贝叶斯分类器是一种基于概率的监督学习算法,广泛应用于文本分类、垃圾邮件检测、情感分析等领域。在Python中,有多个库提供了朴素贝叶斯分类器的实现,如`sklearn`、`numpy`、...

    朴素贝叶斯分类器-人脸识别方面的

    朴素贝叶斯分类器是一种基于概率的机器学习方法,它在人脸识别领域有着广泛的应用。该算法的核心思想是假设特征之间相互独立,并且每个特征对类别都有独立的影响。在这个项目中,我们将探讨如何利用朴素贝叶斯分类器...

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

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

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

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

    基于机器学习的朴素贝叶斯分类器C++

    朴素贝叶斯分类器是一种基于概率的机器学习算法,它在C++中实现可以提供高效且灵活的分类功能。这个项目的核心是利用朴素贝叶斯理论来预测未知数据的类别,这种理论假设特征之间相互独立,这使得计算变得更加简单。 ...

    Spring-Boot集成Neo4j并利用Spark的朴素贝叶斯分类器实现基于电影知识图谱的智能问答系统

    在构建智能问答系统时,将Spring-Boot与Neo4j数据库和Spark的朴素贝叶斯分类器相结合是一种高效的方法,特别是在处理与电影相关的知识图谱数据时。以下将详细阐述这个系统的组成部分及其工作原理。 首先,Spring-...

    C++编写的朴素贝叶斯分类器跟k-means聚类

    在机器学习领域,朴素贝叶斯分类器和k-means聚类是两种广泛使用的算法,分别应用于分类和无监督学习任务。本项目采用C++语言实现了这两种算法,为学习者提供了一个直观的实践平台,特别是在Linux环境下运行效果更佳...

Global site tag (gtag.js) - Google Analytics