贝叶斯分类算法

分类实际上就是按照某种标准来给对象贴标签,然后再根据标签进行区分,基于概率统计的贝叶斯分类算法是最常见的分类算法,也是目前垃圾文本识别领域应用最广泛的算法。

使用贝叶斯分类算法进行二分类大致可分为这几个步骤:

  1. 收集大量的垃圾内容和非垃圾内容语料,建立训练的垃圾语料集和正常内容的语料集。
  2. 对语料文本进行分词,提取出独立的字符串,并且统计字符串在文本中出现的频次。
  3. 每个训练语料集对应一个hash table,比如垃圾语料集放在hashtable_bad中,而非垃圾语料集放在hashtable_good中,而hashtable中存储通过分词提取出的字符串以及对应的词频。
  4. 计算hashtable所有的字符串出现的概率,即P=字符串的词频/字符串的总数。
  5. 综合hashtable_good与hashtable_bad,推测当一串文本中包含某个字符串时,该文本为垃圾内容的概率,对应的数学表达式如下: P(A|ki) = Pbad(ki) / [ Pgood(ki) +Pbad(ki) ],其中事件A表示文本为垃圾内容,k1,k2 ……kn 代表提取的关键词,而P(A|ki)则表示在文本中出现关键词ki时,该文本为垃圾内容的概率,Pbad(ki)为ti在hashtable_bad中的值,而Pgood(ki)为ki在hashtable_good中的值。
  6. 建立新的hashtable_probability存储字符串ki到P(A|ki)的映射。

行文至此,贝叶斯分类的训练学习过程就完成了,接下来就可以根据hashtable_probability来计算文本为垃圾内容的可能性了。假设用户提交的文本内容经过分词得到n个关键词k1,k2,k3……kn,hashtable_probability中对应的值为 P1,P2……Pn ,P(A|k1,k2,k3……kn) 表示在用户提交的文本中同时出现关键字k1,k2,k3……kn时,该段内容为垃圾文本的概率, P(A|k1,k2,k3……kn) =P1*P2*……Pn 。当P(A|k1,k2,k3……kn)超过预定阈值时,可以判断该内容为垃圾内容,通过调整阀值,可以控制反垃圾系统对于内容过滤的严苛程度。

时间: 2024-10-10 21:19:28

贝叶斯分类算法的相关文章

朴素贝叶斯分类算法介绍及python代码实现案例

朴素贝叶斯分类算法 1.朴素贝叶斯分类算法原理 1.1.概述 贝叶斯分类算法是一大类分类算法的总称 贝叶斯分类算法以样本可能属于某类的概率来作为分类依据 朴素贝叶斯分类算法是贝叶斯分类算法中最简单的一种 注:朴素的意思是条件概率独立性 P(A|x1x2x3x4)=p(A|x1)*p(A|x2)p(A|x3)p(A|x4)则为条件概率独立 P(xy|z)=p(xyz)/p(z)=p(xz)/p(z)*p(yz)/p(z) 1.2.算法思想 朴素贝叶斯的思想是这样的: 如果一个事物在一些属性条件发生

从决策树学习谈到贝叶斯分类算法、EM、HMM

从决策树学习谈到贝叶斯分类算法.EM.HMM 引言 近期在面试中,除了基础 &  算法 & 项目之外,经常被问到或被要求介绍和描写叙述下自己所知道的几种分类或聚类算法(当然,这全然不代表你将来的面试中会遇到此类问题,仅仅是由于我的简历上写了句:熟悉常见的聚类 & 分类算法而已),而我向来恨对一个东西仅仅知其皮毛而不得深入,故写一个有关数据挖掘十大算法的系列文章以作为自己备试之用,甚至以备将来经常回想思考.行文杂乱,但侥幸若能对读者起到一点帮助,则幸甚至哉. 本文借鉴和參考了两本书,

朴素贝叶斯分类算法原理分析与代码实现

前言 本文介绍机器学习分类算法中的朴素贝叶斯分类算法并给出伪代码,Python代码实现. 词向量 朴素贝叶斯分类算法常常用于文档的分类,而且实践证明效果是挺不错的. 在说明原理之前,先介绍一个叫词向量的概念. --- 它一般是一个布尔类型的集合,该集合中每个元素都表示其对应的单词是否在文档中出现. 对应关系和词汇表一一对应. 比如说,词汇表只有三个单词:'apple', 'orange', 'melo',某文档中,apple和melo出现过,那么其对应的词向量就是 {1, 0, 1}. 这种模型

数据挖掘系列(8)朴素贝叶斯分类算法原理与实践

隔了很久没有写数据挖掘系列的文章了,今天介绍一下朴素贝叶斯分类算法,讲一下基本原理,再以文本分类实践. 一个简单的例子 朴素贝叶斯算法是一个典型的统计学习方法,主要理论基础就是一个贝叶斯公式,贝叶斯公式的基本定义如下: 这个公式虽然看上去简单,但它却能总结历史,预知未来.公式的右边是总结历史,公式的左边是预知未来,如果把Y看出类别,X看出特征,P(Yk|X)就是在已知特征X的情况下求Yk类别的概率,而对P(Yk|X)的计算又全部转化到类别Yk的特征分布上来. 举个例子,大学的时候,某男生经常去图

数据挖掘十大算法之贝叶斯分类算法

1.引言 贝叶斯分类算法是统计学的一种分类方法,它是一类利用概率统计知识进行分类的算法.在许多场合,朴素贝叶斯(Na?ve Bayes,NB)分类算法可以与决策树和神经网络分类算法相媲美,该算法能运用到大型数据库中,而且方法简单.分类准确率高.速度快. 由于贝叶斯定理假设一个属性值对给定类的影响独立于其它属性的值,而此假设在实际情况中经常是不成立的,因此其分类准确率可能会下降.为此,就衍生出许多降低独立性假设的贝叶斯分类算法,如TAN(tree augmented Bayes network)算

基于朴素贝叶斯分类算法的邮件过滤系统

转自穆晨 阅读目录 前言 准备数据:切分文本 训练并测试 小结 回到顶部 前言 朴素贝叶斯算法最为广泛而经典的应用毫无疑问是文档分类,更具体的情形是邮件过滤系统. 本文详细地讲解一个基于朴素贝叶斯分类算法的邮件过滤系统的具体实现. 本文侧重于工程实现,至于其中很多算法的细节请参考之前的一篇文章:朴素贝叶斯分类算法原理分析与代码实现. 回到顶部 准备数据:切分文本 获取到文本文件之后,首先要做的是两件事情: 1. 将文本文件转换为词汇列表 2. 将上一步的结果进一步转换为词向量 对于 1,具体来说

朴素贝叶斯分类算法:对贝叶斯公式的理解

为了完成自己的毕业论文,不得不接触这个朴素贝叶斯分类算法...真是惭愧啊(快毕业了才学这个...还初识) 哈哈,不过只要肯学什么时候都不会晚 要想完全理解这个算法,必须先去百度一下 原来朴素贝叶斯分类算法是借用到了贝叶斯定理,那什么是贝叶斯定理呢...不多BB, 先看一看什么是条件概率:P(A|B)=P(AB)/P(B) 其中P(A|B)指的是在B已经发生的情况下A发生的概率.而这个概率是由A和B同时发生的概率除以B发生的概率.点解???这是我第一次看到这个公式后的反应 当我看完这张图后,就差不

scikit-learn学习之贝叶斯分类算法

版权声明:<-- 用心写好你的每一篇文章,转载请注明出处@http://blog.csdn.net/gamer_gyt <-- 目录(?)[+] ====================================================================== 本系列博客主要参考 Scikit-Learn 官方网站上的每一个算法进行,并进行部分翻译,如有错误,请大家指正 转载请注明出处,谢谢 ======================================

第五篇:朴素贝叶斯分类算法原理分析与代码实现

前言 本文介绍机器学习分类算法中的朴素贝叶斯分类算法并给出伪代码,Python代码实现. 词向量 朴素贝叶斯分类算法常常用于文档的分类,而且实践证明效果挺不错的. 在说明原理之前,先介绍一个叫词向量的概念. --- 它一般是一个布尔类型的集合,该集合中每个元素都表示其对应的单词是否在文档中出现. 比如说,词汇表只有三个单词:'apple', 'orange', 'melo',某文档中,apple和melo出现过,那么其对应的词向量就是 {1, 0, 1}. 这种模型通常称为词集模型,如果词向量元

第六篇:基于朴素贝叶斯分类算法的邮件过滤系统

前言 朴素贝叶斯算法最为广泛而经典的应用毫无疑问是文档分类,更具体的情形是邮件过滤系统. 本文详细地讲解一个基于朴素贝叶斯分类算法的邮件过滤系统的具体实现. 本文侧重于工程实现,至于其中很多算法的细节请参考之前的一篇文章:朴素贝叶斯分类算法原理分析与代码实现. 准备数据:切分文本 获取到文本文件之后,首先要做的是两件事情: 1. 将文本文件转换为词汇列表 2. 将上一步的结果进一步转换为词向量 对于 1,具体来说,就是将文本文件以非字母或数字之外的字符为界进行切割. 仅仅使用字符串的 split