网络安全参考 | UNIX参考 | GPS参考 | 无线参考 | 在线手册 | OSBUG.ORG | SUNNY-NETWORK.COM
网站地图 RSS订阅
高级搜索 收藏本站
Home | 业界动态 | 防火墙 | IDS/IPS | VPN | PKI | Honeypot | Hacker/Intruder | 黑客技术 | 破解技术 | 加密技术 | 病毒防护 | 木马 | 反垃圾邮件 | 反流氓软件 | 漏洞 | 无线安全 | UNIX | Windows | 安全编程 | 安全软件 | TPM/TCG | 数据恢复 | 企业信息安全 | 个人信息安全
 当前位置: Home > 反垃圾邮件 > 技术 > 文章  
贝叶斯算法(bayesian)介绍
文章来源: 5DMail.Net 文章作者: 不详 发布时间: 2006-05-18   字体: [ ]
 

一、   贝叶斯介绍

 

贝叶斯是基于概率的一种算法,是Thomas Bayes:一位伟大的数学大师所创建的,目前此种算法用于过滤垃圾邮件得到了广泛地好评。贝叶斯过滤器是基于自我学习的智能技术,能够使自己适应垃圾邮件制造者的新把戏,同时为合法电子邮件提供保护。在智能邮件过滤技术中,贝叶斯(Bayesian)过滤技术取得了较大的成功,被越来越多地应用在反垃圾邮件的产品中。

 

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

 

1. 收集大量的垃圾邮件和非垃圾邮件,建立垃圾邮件集和非垃圾邮件集。

 

2. 提取邮件主题和邮件体中的独立字符串,例如 ABC32,¥234等作为TOKEN串并统计提取出的TOKEN串出现的次数即字频。按照上述的方法分别处理垃圾邮件集和非垃圾邮件集中的所有邮件。

 

3. 每一个邮件集对应一个哈希表,hashtable_good对应非垃圾邮件集而hashtable_bad对应垃圾邮件集。表中存储TOKEN串到字频的映射关系。

 

4. 计算每个哈希表中TOKEN串出现的概率P=(TOKEN串的字频)/(对应哈希表的长度)

 

5. 综合考虑hashtable_goodhashtable_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 ) =P2 ( ti ) /[ ( P1 ( ti ) +P2 ( ti ) ]

 

6. 建立新的哈希表hashtable_probability存储TOKENtiP(A|ti)的映射

 

7. 至此,垃圾邮件集和非垃圾邮件集的学习过程结束。根据建立的哈希表 hashtable_probability可以估计一封新到的邮件为垃圾邮件的可能性。

 

当新到一封邮件时,按照步骤2,生成TOKEN串。查询hashtable_probability得到该TOKEN 串的键值。

 

假设由该邮件共得到NTOKEN 串,t1,t2…….tn,hashtable_probability中对应的值为 P1 P2 ……PN P(A|t1 ,t2, t3……tn) 表示在邮件中同时出现多个TOKENt1,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

 

由此可推出该邮件为非垃圾邮件。

 

四、   总结

 

叶斯过滤器为什么能够工作得这么好呢?因为贝叶斯过滤器纯粹根据统计学规律运作,比起那些需要分析邮件句法或内容含义的过滤器来显然要简单的多,而且可计算性强得多。更重要的是,这些标记完全可以由用户根据自己所接收的垃圾邮件和非垃圾邮件来创建,因而可以获得一种对用户来说独一无二的过滤器。这意味着垃圾邮件发送者根本无法猜测出你的过滤器是如何配置的,从而有效地阻截住各类垃圾邮件。

 

不过,尽管贝叶斯过滤器非常有效,但它仍需要进行优化才能真正完美。比如它可以结合 白名单降低误报率,结合黑名单降低漏过率,还可以利用其他技术如源址认证使其成为更加精确的垃圾邮件过滤器。

 

--

原文链接: http://www.5dmail.net/html/2006-5-18/2006518234548.htm

 
推荐文章
·Google有新垃圾邮件评分算法?
·使用Exchange智能信息过滤器阻止
·反垃圾邮件应慎用实时黑名单技术
·新一代反垃圾邮件技术及产品介绍
·通过电子邮件标头了解其真实来源
·为你的Mail Server增加SPF记录
·垃圾邮件过滤技术-消除不需要的
·可爱的 Python: 用 hashcash 打
·实时黑名单技术
·当前反垃圾邮件技术纵览分析
·SPF简介
 
 
↑返回顶部   打印本页   关闭窗口↓  

Google
 
Web oldhand.org unixreference.net meshmea.org
热点文章
·使用Exchange智能信息过
·SPF简介
·新一代反垃圾邮件技术及
·评测:11种反垃圾邮件工
·实时黑名单技术
·为你的Mail Server增加S
·邮件过滤技术
·使用badmailfrom控制垃
相关分类
相关文章
·反垃圾邮件应慎用实时黑
·Linux中防御垃圾邮件的
·使用badmailfrom控制垃
·四招减少垃圾邮件骚扰
·新一代反垃圾邮件技术及
·通过电子邮件标头了解其
·6款反垃圾邮件产品横向
·为你的Mail Server增加S
更多...
 
 

Copyright(c) 2001-2008 OLDHAND ORGANIZATION, All Rights reserved.
Power by DedeCms 织梦内容管理系统
$Id: article_article.html,v 1.3 2007/02/10 12:00:37 yjs Exp $