`
dogandwolf
  • 浏览: 18080 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

朴素bayes公式分类器

阅读更多
理论问题
朴素贝叶斯文本分类模型分为两种:

    * 文档型
    * 词频型

都是使用下式计算进行分类:

      cNB=arg Max( P(cj) * ∏1C P(xi|cj) )
      其中,P(cj)为类别j的先验概率,P(xi|cj)为特征量 xi在类别cj的类条件概率

上次的分类模型属于文档型的,正确率约为50%左右,理论上朴素贝叶斯分类的正确率可以达到80%以上。文档型的正确率很低,主要原因是训练库的以分文本质量低下。目前我们已经在着手自己收集训练数据了,提高训练库的质量。

先验概率计算
先验概率计算方式有两种:

    * 文档型 不考虑词频在各分类下的出现次数,仅考虑各分类下文档的数目。如下式计算:
      P(cj)=N(C=cj)/N
      其中,N(C=cj)表示类别cj中的训练文本数量; N表示训练文本集总数量。
    * 词频型 考虑单词在各分类文档中出现的频次,如下式计算:
      P(cj)=V∑k=1TF(X=xk, C=cj)/W∑m=1V∑ k=1TF(X=xk, C=cm)
      其中,V表示特征词表中总单词(属性)数,TF(X=xi, C=cj) 表示属性xi在类cj中出现次数之和,W表示总类别数目。

注意:类条件概率的计算方式必须与先验概率的计算方式匹配,如果先验概率是用文档型 计算的,那么类条件概率也必须使用文档型计算方式,反之亦然。

类条件概率
类条件概率的计算有两种方式:

    * 文档型 不考虑单词在文档中的出现频次,仅考虑单词在文档中是否出现。 0表示未出现,1表示出现。 如下式计算:
      P(xj|cj)=( N(X=xi, C=cj )+1 ) / ( N(C=cj)+V )
      其中,N(X=xi, C=cj)表示类别cj中包含属性x i的训练文本数量;N(C=cj)表示类别cj中的训练文本数量;V表示类别的总数。
    * 词频型 考虑单词在文档中出现的频次,如下式计算:
      P(xj|cj)=( TF(X=xi, C=cj)+1) / ( V+V∑k=1TF(X=xk, C=cj) )
      其中,V表示特征词表中总单词(属性)数,TF(X=xi, C=cj) 表示属性xi在类cj中出现次数之和。

注意:

    * 类条件概率的计算方式必须与先验概率的计算方式匹配,如果先验概率是用文档型 计算的,那么类条件概率也必须使用文档型计算方式,反之亦然
    * 为避免类条件概率结果为0,采用了拉普拉斯概率估计

关于训练库的预处理

为了提高分类的效率和准确率,必须对训练库进行预处理。主要预处理步骤如下:

   1. 读取某一分类下的所有训练文本
   2. 对这些文本进行分词处理
   3. 通过词性、词长过滤无用词
   4. 将剩下的词作为这一分类的特征结果并保存成文本

目前实现的训练库预处理器主要是针对词频分类模型的。
分享到:
评论

相关推荐

    基于朴素Bayes的情感分类器-设计文档1

    朴素Bayes分类器的核心是利用贝叶斯公式,假设特征之间相互独立,简化计算。分类时,利用训练集统计先验概率和条件概率,用最大似然估计处理数据稀疏问题。 最后,为了提升性能,实验还尝试了结合情感词典和朴素...

    基于IRIS bayes分类器

    在本项目中,“基于IRIS bayes分类器”指的是利用朴素贝叶斯方法对IRIS数据集进行分类。IRIS数据集是机器学习领域中经典的数据集,包含了150个样本,每个样本有4个特征(花萼长度、花萼宽度、花瓣长度、花瓣宽度)和...

    朴素贝叶斯分类器算法

    3. **Python实现**:在Python中,可以使用`sklearn`库的`naive_bayes`模块来实现朴素贝叶斯分类器。在提供的`bayes.py`文件中,可能包含了一个自定义的朴素贝叶斯分类器实现,或者是对`sklearn`库的封装。自定义实现...

    基于朴素Bayes组合的简易集成分类器

    本文用朴素Bayes分类器的原理推导出“朴素Bayes组合”公式, 并构造相应的分类器. 经过测试, 该分类器有较好的分类性能和实用性, 克服了朴素Bayes分类器精确度差的缺点, 并且比其他分类器更加快速而不会显著丧失精确...

    朴素贝叶斯文本分类器(java实现)

    朴素贝叶斯文本分类器是一种广泛应用的机器学习算法,尤其在自然语言处理领域,用于将文本数据归类到预定义的类别中。本程序的Java实现深入探讨了这一概念,并提供了完整的工具集,包括源代码、实验报告、可执行程序...

    基于Hadoop实现朴素贝叶斯文本分类器.zip

    《基于Hadoop实现朴素贝叶斯文本分类器》 在当今大数据时代,高效的数据处理和分析成为了企业竞争力的关键。Hadoop作为开源的分布式计算框架,以其高容错性、可扩展性和低成本的优势,广泛应用于海量数据的处理。而...

    基于naive bayes英文分类器(利用HashMAP进行预处理)(java)

    **基于朴素贝叶斯的英文分类器** 朴素贝叶斯分类器是一种基于概率的机器学习算法,它在文本分类领域有着广泛的应用。本项目利用Java实现了一个针对英文文本的分类器,特别之处在于它结合了HashMap进行预处理,提高...

    NaiveBayes朴素贝叶斯用于文章类型分类

    在C#中实现朴素贝叶斯,可以使用如Accord.NET这样的库,它提供了丰富的机器学习和统计工具,包括朴素贝叶斯分类器的实现。此外,还可以自定义编写代码来实现,这有助于理解和掌握算法的内部工作原理。 压缩包中的...

    bayes分类器

    在贝叶斯分类器中,我们通常假设特征之间相互独立,这就是所谓的朴素贝叶斯分类器(Navie Bayes)。 在数据挖掘中,贝叶斯分类器常用于文本分类、垃圾邮件过滤、情感分析等多种任务。其优点包括计算效率高、易于...

    java贝叶斯分类器

    在"bayes"这个文件中,很可能包含了实现该分类器的Java代码,包括数据预处理、特征向量构建、模型训练和分类预测等功能模块。通过理解和学习这个代码,开发者可以更好地掌握贝叶斯分类器的工作原理,并应用到实际...

    test_bayes.zip_朴素贝叶斯_朴素贝叶斯分类 matlab

    朴素贝叶斯分类器基于贝叶斯定理,该定理描述了在已知某些证据的情况下,某一假设的概率如何通过先验概率和似然性更新。具体来说,给定一个实例x,朴素贝叶斯分类器会计算其属于每个类k的概率P(k|x),并选择概率最大...

    贝叶斯_bayes_朴素贝叶斯_

    分类器将根据邮件中单词的出现情况,利用贝叶斯公式来判断邮件是否为垃圾邮件。 在图像识别中,朴素贝叶斯可能不太适用,因为图像特征往往有复杂的依赖关系,而朴素贝叶斯假设特征之间的独立性可能过于简化。然而,...

    NaiveBayes朴素贝叶斯算法总结

    朴素贝叶斯分类器构建模型时,首先计算每个类别的先验概率,然后对每个特征计算条件概率,即在给定类别下特征出现的概率。由于假设特征之间相互独立,故称为“朴素”。分类时,利用贝叶斯定理计算给定观测数据属于...

    朴素贝叶斯分类器的一个应用

    朴素贝叶斯分类器(Naive Bayes Classifier, NBC)是一种基于概率理论的机器学习算法,因其简单且在处理大量数据时效率高而被广泛应用于文本分类、垃圾邮件过滤、情感分析等多个领域。该方法的核心思想是利用贝叶斯...

    Bayes分类算法

    **Bayes分类算法** Bayes分类算法是一种基于概率理论的机器学习方法,它利用贝叶斯定理...通过理解贝叶斯定理、朴素贝叶斯假设以及不同类型的朴素贝叶斯分类器,开发者可以有效地解决分类问题,并进一步提升模型性能。

    NaiveBayes:朴素贝叶斯分类器

    总结来说,"NaiveBayes:朴素贝叶斯分类器"是一个关于使用Java实现朴素贝叶斯分类器的项目,涵盖了从数据预处理到模型训练和预测的全过程。在实际应用中,开发者可以根据具体需求对其进行定制和优化,以提高分类效果...

    python3-bayes朴素贝叶斯

    这个项目使用Python3.5来实现朴素贝叶斯分类器,特别适用于处理大量文本数据。 ### 一、贝叶斯定理 贝叶斯定理描述了在已知一些证据的情况下,某个假设的概率如何被更新。公式为: P(A|B) = [P(B|A) * P(A)] / P...

    Naive Bayes_python_朴素贝叶斯_

    `sklearn`库中的`naive_bayes`模块提供了多种朴素贝叶斯分类器,包括高斯朴素贝叶斯(GaussianNB)、多项式朴素贝叶斯(MultinomialNB)和伯努利朴素贝叶斯(BernoulliNB)。这些分类器适用于不同类型的数据,如连续...

Global site tag (gtag.js) - Google Analytics