贝叶斯过滤算法的基本步骤

原创 2006年05月18日 18:01:00

一. 贝叶斯过滤算法的基本步骤

1) 收集大量的垃圾邮件和非垃圾邮件,建立垃圾邮件集和非垃圾邮件集。
2) 提取邮件主题和邮件体中的独立字串例如 ABC32,¥234等作为TOKEN串并统计提取出的TOKEN串出现的次数即字频。按照上述的方法分别处理垃圾邮件集和非垃圾邮件集中的所有邮件。
3) 每一个邮件集对应一个哈希表,hashtable_good对应非垃圾邮件集而hashtable_bad对应垃圾邮件集。表中存储TOKEN串到字频的映射关系。
4) 计算每个哈希表中TOKEN串出现的概率P=(某TOKEN串的字频)/(对应哈希表的长度)
5) 综合考虑hashtable_good和hashtable_bad,推断出当新来的邮件中出现某个TOKEN串时,该新邮件为垃圾邮件的概率。数学表达式为:
A事件----邮件为垃圾邮件;
t1,t2 …….tn代表TOKEN串
则P(A|ti)表示在邮件中出现TOKEN串ti时,该邮件为垃圾邮件的概率。

P1(ti)=(ti在hashtable_good中的值)
P2(ti)=(ti在hashtable_ bad中的值)
则 P(A|ti)= P1(ti)/[(P1(ti)+ P2(ti)];
6) 建立新的哈希表 hashtable_probability存储TOKEN串ti到P(A|ti)的映射
7) 至此,垃圾邮件集和非垃圾邮件集的学习过程结束。根据建立的哈希表 hashtable_probability可以估计一封新到的邮件为垃圾邮件的可能性。
当新到一封邮件时,按照步骤2)生成TOKEN串。查询hashtable_probability得到该TOKEN 串的键值。
假设由该邮件共得到N个TOKEN串,t1,t2…….tn, hashtable_probability中对应的值为P1,P2,。。。。。。PN,
P(A|t1 ,t2, t3……tn)表示在邮件中同时出现多个TOKEN串t1,t2…….tn时,该邮件为垃圾邮件的概率。
由复合概率公式可得
P(A|t1 ,t2, t3……tn)=(P1*P2*。。。。PN)/[P1*P2*。。。。。PN+(1-P1)*(1-P2)*。。。(1-PN)]
当P(A|t1 ,t2, t3……tn)超过预定阈值时,就可以判断邮件为垃圾邮件。

二. 贝叶斯过滤算法举例

例如:一封含有“法 轮 功”字样的垃圾邮件 A
和 一封含有“法律”字样的非垃圾邮件B
根据邮件A生成hashtable_ bad,该哈希表中的记录为
法:1次
轮:1次
功:1次
计算得在本表中:
法出现的概率为0。3
轮出现的概率为0。3
功出现的概率为0。3
根据邮件B生成hashtable_good,该哈希表中的记录为:
法:1
律:1
计算得在本表中:
法出现的概率为0。5
律出现的概率为0。5
综合考虑两个哈希表,共有四个TOKEN串: 法 轮 功 律
当邮件中出现“法”时,该邮件为垃圾邮件的概率为:
P=0。3/(0。3+0。5)=0。375
出现“轮”时:
P=0。3/(0。3+0)=1
出现“功“时:
P=0。3/(0。3+0)=1
出现“律”时
P=0/(0+0。5)=0;
由此可得第三个哈希表:hashtable_probability 其数据为:
法:0。375
轮:1
功:1
律:0

当新到一封含有“功律”的邮件时,我们可得到两个TOKEN串,功 律
查询哈希表hashtable_probability可得
P(垃圾邮件| 功)=1
P (垃圾邮件|律)=0
此时该邮件为垃圾邮件的可能性为:
P=(0*1)/[0*1+(1-0)*(1-1)]=0
由此可推出该邮件为非垃圾邮件

贝叶斯公式的理解及应用(垃圾邮件过滤)

全概公式 贝叶斯公式 贝叶斯推断 过滤垃圾邮件 条件概率
  • vivian_ll
  • vivian_ll
  • 2017年03月10日 16:23
  • 1422

贝叶斯原理应用:过滤垃圾邮件

1、什么是贝叶斯过滤器? 垃圾邮件是一种令人头痛的顽症,困扰着所有的互联网用户。 正确识别垃圾邮件的技术难度非常大。传统的垃圾邮件过滤方法,主要有"关键词法"和"校验码法"等。前者的过滤依...
  • tuolaji8
  • tuolaji8
  • 2015年08月15日 21:16
  • 1647

垃圾邮件和贝叶斯过滤算法

一. 贝叶斯过滤算法的基本步骤 1) 收集大量的垃圾邮件和非垃圾邮件,建立垃圾邮件集和非垃圾邮件集。 2) 提取邮件主题和邮件体中的独立字串例如 ABC32,¥234等作为TOKEN串并统计提...
  • nocml
  • nocml
  • 2012年02月10日 14:54
  • 12318

垃圾邮件是如何用贝叶斯方法过滤掉的

垃圾邮件曾经是一个令人非常头痛的问题,长期困扰着邮件运营商和用户。据统计,在2005年,用户收到的电子邮件中80%以上是垃圾邮件。但你有没有感觉到,这些年来,你收到的垃圾邮件越来越少了,甚至已经几乎感...
  • saltriver
  • saltriver
  • 2017年05月20日 12:02
  • 663

贝叶斯过滤算法

from:http://www.cnblogs.com/shanyou/archive/2012/08/11/2634101.html 朴素贝叶斯分类是一种十分简单的分类算法,叫它朴素贝叶斯分类...
  • tjcwt2011
  • tjcwt2011
  • 2017年09月09日 11:15
  • 88

贝叶斯过滤算法的基本步骤

一. 贝叶斯过滤算法的基本步骤1) 收集大量的垃圾邮件和非垃圾邮件,建立垃圾邮件集和非垃圾邮件集。2) 提取邮件主题和邮件体中的独立字串例如 ABC32,¥234等作为TOKEN串并统计提取出的TOK...
  • chaowang2008
  • chaowang2008
  • 2006年05月18日 18:01
  • 3146

贝叶斯过滤垃圾邮件算法的基本步骤

 一. 贝叶斯过滤算法的基本步骤 1) 收集大量的垃圾邮件和非垃圾邮件,建立垃圾邮件集和非垃圾邮件集。 2) 提取邮件主题和邮件体中的独立字串例如 ABC32,¥234等作为TOKEN串并统计提取出...
  • DL88250
  • DL88250
  • 2008年01月07日 02:12
  • 4671

贝叶斯过滤算法的基本步骤

  1) 收集大量的垃圾邮件和非垃圾邮件,建立垃圾邮件集和非垃圾邮件集。2) 提取邮件主题和邮件体中的独立字串例如 ABC32,¥234等作为TOKEN串并统计提取出的TOKEN串出现的次数即字频。按...
  • chl033
  • chl033
  • 2009年10月30日 17:33
  • 1193

一种基于多贝叶斯算法的垃圾邮件过滤方法

  • 2011年11月23日 20:43
  • 308KB
  • 下载

朴素贝叶斯python实现

概率论是很多机器学习算法基础,朴素贝叶斯分类器之所以称为朴素,是因为整个形式化过程中只做最原始、简单的假设。(这个假设:问题中有很多特征,我们简单假设一个个特征是独立的,该假设称做条件独立性,其实往往...
  • sergeycao
  • sergeycao
  • 2017年07月17日 15:23
  • 375
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:贝叶斯过滤算法的基本步骤
举报原因:
原因补充:

(最多只允许输入30个字)