`
hqman
  • 浏览: 354687 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

贝叶斯过滤技术

阅读更多

   贝叶斯被誉为最有效的反垃圾邮件技术,有效过滤率达到98%,网络上有些这样的资料,但不是比较晦涩就是语焉不详,故本文希望能比较通俗,同时也更全面介绍此项技术。

       [1]-为引用资料

 概述

 

Thomas Bayes(1702-1763), 斯·贝叶斯是一位英国牧师数学家,1742年成为英国皇家学会会员176347日逝世,1763年,他发表了贝叶斯统计理论,即根据已经发生的事件预测事件发生的可能性,贝叶斯理论设:如果事件的结果不确定,那么量化它的唯一方法就是事件的发生概率。如果过去试验中事件的出现率已知,那么根据数学方法可以计算出未来试验中事件出现的概率。贝叶斯定理可以用一个数学公式表达。即贝叶斯公式。[1]

 

       反垃圾邮件是具有相当难度的事情,垃圾邮件每天都在增加和变化。据Radicati估计2007年,垃圾邮件的比例将达到70%。现在的垃圾邮件发送者变得更加狡猾,采用静态反垃圾邮件技术很难防范。垃圾邮件发送者只要简单的研究一下现在采用了哪些静态反垃圾邮件,然后相应的改变一下邮件的内容或发送方式,就可以逃避检查了。

       因此,必须采用一种新的技术来克服静态反垃圾邮件的弱点,这种技术应该对垃圾邮件发送者的各种伎俩了如指掌,还要能适应不同用户对于反垃圾邮件的个性化需求。这种技术就是贝叶斯过滤技术。

 

 贝叶斯过滤技术的工作原理

       根据贝叶斯理论,根据已经发生的时间可以预测未来事件发生的可能性。将该理论运用到反垃圾邮件上:若已知某些字词经常出现在垃圾邮件中,却很少出现在合法邮件中,当一封邮件含有这些字词时,那么他是垃圾邮件的可能性就很大。

 

       1创建基于字词符号的贝叶斯数据库

       用户首先需要对贝叶斯进行培训,即将邮件分类为垃圾邮件(用户不想要的)和正常邮件(用户想要的),贝叶斯将提取这些邮件样本中主题和信体中的独立字串,包括字词(word)和符号(token)(如$IP地址,域名等),并建立相应的数据库。

 

       2创建贝叶斯概率库

       统计出每个字串在垃圾邮件中出现的概率以及在正常邮件中出现的概率,然后根据公式计算出邮件中含某字串则为垃圾邮件的概率。例如:在3000封垃圾邮件样本中"mortgage"(抵押)出现了400次,而在300封正常邮件中这个词出现了5次,那么其对应的垃圾概率为0.8889[400/3000]/[5/300+400/3000])。[2]

 

       3创建个性化的贝叶斯库(最符合您公司需求的贝叶斯库)

       由于每个公司对所收到的邮件偏好是不同的,例如,某个金融类公司在正常邮件中可能经常用到"mortgage"这个词,如果使用静态的关键词过滤,就可能产生很多误判。如果采用贝叶斯过滤,在对贝叶斯进行培训的时候,将该公司的合法邮件(自然,很多都包含了"mortgage"这个词)分类为正常邮件。这样,垃圾邮件的识别率将更高,同时也使得误判率变得很低。

       有些反垃圾邮件软件使用了比较初级的贝叶斯过滤机制,如outlookfoxmail等。他们采用的是通用化的贝叶斯数据库。这种贝叶斯不需要进行培训,但有两个明显的弱点:

       ◘ 如果采用通用化的贝叶斯过滤则很容易被专业的垃圾邮件发送者攻破从而绕过检查,但是如果采用个性化的贝叶斯,则他们很难攻破。

       ◘ 通用化的贝叶斯与您公司的邮件过滤要求不符,因此过滤效果通常不明显,并且可能产生较高的误判。

       除了学习好的邮件之外,贝叶斯还应学习垃圾邮件,这些垃圾邮件样本应该包括了大量的已知垃圾邮件样本以及最新的变化了的垃圾邮件样本。这样才能达到最好的过滤效果,对最新的垃圾邮件样本的学习通常需要两周左右的时间。

      

4贝叶斯过滤器的处理过程。

       贝叶斯过滤器学习了垃圾邮件样本及正常邮件样本后,每个字串代表的垃圾概率就被计算出了。

       一封新的邮件到达时,这封邮件的内容将被分成字串(词或符号)。依据数据库中这些字词的概率通过公式[3]进行计算,贝叶斯将推算出这封邮件是垃圾邮件还是正常邮件。通常当贝叶斯计算出的垃圾邮件可能性高于某个数值(阈值)时,比如0.9,就判定这封邮件是垃圾邮件。[4]

      

 贝叶斯过滤的优点

――20035BBC专题报道称,贝叶斯可以达到99.7%的垃圾邮件识别率,同时误判率极低。是目前最有效的反垃圾邮件技术。

      

       贝叶斯过滤技术对邮件的所有内容进行分析,不仅仅是其中的某个关键词,而且他能判别邮件是垃圾邮件还是正常邮件。例如:包含“free”“cash”“发票”字样的邮件不一定是垃圾邮件,如果采用关键字过滤技术,显然难以达到理想的效果。而贝叶斯呢,即考虑了这些词在垃圾邮件中出现的概率又考虑了它在正常邮件中的概率,综合考虑这些因素才做出判断。可以说,贝叶斯具有一定的智能,它对邮件中的关键词汇能综合的进行评判,可以把握“好”与“坏”之间的平衡。显然,这种技术远远高于非10的静态过滤技术。

 

       贝叶斯过滤技术具备自适应功能――通过学习新的垃圾邮件及正常邮件样本,贝叶斯将能对抗最新的垃圾邮件。并且对变体字有奇效。比如,垃圾邮件发送者开始使用"f-r-e-e"来代替“free”这样能够绕过关键字检查,除非"f-r-e-e"被加到新的关键字中。对贝叶斯而言,当它发现邮件中含有"f-r-e-e"时,由于正常邮件中从来没有发现这个词,因此他是垃圾邮件的可能性将急剧增加,"f-r-e-e"这个新词无疑成了垃圾邮件的指示器。在比如,垃圾邮件中用5ex代替sex,贝叶斯也推算出他是垃圾邮件的可能性也急剧增加。

 

       贝叶斯过滤技术更加个性化。他能学习并理解用户对邮件的偏好。如前所述,‘mortgage’抵押一词对软件公司而言意味者垃圾,但对金融类公司则意味着好邮件。贝叶斯能根据用户的这种偏好进行处理。

 

       贝叶斯过滤技术支持多语种或者说与编码无关。对于贝叶斯而言,他分析的是字串,无论他是字、词、符号、还是别的什么,当然更与语言无关。

 

       贝叶斯过滤器很难被欺骗。垃圾邮件发送高手通常通过减少垃圾词汇(如freeviagra、发票)或者在信中多掺一些好的词汇(如合同、文件)来绕过检查一般的邮件内容检查,但由于贝叶斯具有的个性化色彩,要想成功的绕过贝叶斯的检查,他就不得不对每个收件人的偏好进行研究,这简直是“不可能完成的任务”。垃圾邮件发送者无法容忍的。若采用变化字,则如前所述贝叶斯判断其为垃圾邮件的可能性反而增加。

 

 如何才能培训出好的贝叶斯过滤器

       贝叶斯的样本数并不是越多越好,但一般需要超过一定的数量才能工作。要培训出比较好的贝叶斯,有如下建议:

       不要过多的重复分类某一封或某一类邮件,以免概率失真(失衡),要分批分时间多次进行,这样样本分布广泛。

       对要分类的邮件应认真看完,不要瞟一眼就分类。

       如果邮件是垃圾邮件,但是和您公司的邮件或者和正常的邮件很接近,最好不要分类这种邮件。

       如果这封邮件不是垃圾邮件,是那种在网络上订阅的邮件,如淘宝、当当等,最好把发件人加入白名单,而不要分类到贝叶斯中。

       避免将哪些含有随机字词(贝叶斯中毒策略)的邮件进行分类。虽然新的贝叶斯系统提供了相应的保护机制。

       样本的文字篇幅极大,请避免。(样本提供的数据将过于复杂);样本的文字篇幅极少,或者只有图,请避免。(贝叶斯针对的是字词概率)

 

       好的贝叶斯通常需要两周左右的培训时间,虽然需要花些时间和精力,但是机遇总是惠顾勤奋的人,这些努力都是值得的

分享到:
评论

相关推荐

    贝叶斯过滤技术交流

    本文档将从算法步骤、算法举例、模块划分3个角度介绍贝叶斯过滤技术。

    基于ASP+贝叶斯过滤技术的反垃圾邮件管理系统设计与实现.zip

    资源名字:基于ASP+贝叶斯过滤技术的反垃圾邮件管理系统设计与实现(源码+文档)_asp_贝叶斯过滤技术_反垃圾邮件管理系统.zip 资源内容:项目全套源码+完整文档 源码说明: 全部项目源码都是经过测试校正后百分百...

    基于MapReduce的贝叶斯垃圾邮件过滤机制.pdf

    提出一种基于MapReduce技术的贝叶斯垃圾邮件过滤机制,一方面对传统贝叶斯过滤技术进行改进,另一方面利用MapReduce模型的海量数据处理优势优化邮件集训练与学习。实验,较之目前流行的传统贝叶斯算法、K最近邻(NN算法...

    基于贝叶斯算法的垃圾邮件过滤技术的研究与改进

    随着电子邮件的应用与普及,...缺点,通过引入分级的最小风险算法和对多项式和多重贝努利估计模型进行混合的方法分别对贝叶斯过滤器进 行了改进,并进行了实验。实验结果表明,改进后的贝叶斯过滤器具有了更好过滤效果

    毕业设计:基于ASP的反垃圾邮件管理系统的设计(源代码)

    通过黑名单、白名单、主题关键字、贝叶斯过滤技术完成客户端的垃圾邮件过滤,每个过滤规则在对邮件进行处理判断后,若可以确定邮件的属性,即为垃圾邮件或非垃圾邮件就可以直接把邮件显示在垃圾邮件夹和收件夹。...

    基于ASP的反垃圾邮件管理系统(源代码+说明报告)

    研究了三种过滤垃圾邮件的方法,分别是黑白名单技术、主题关键字过滤技术和贝叶斯策略,对这三种技术的设计方法做了说明,重点介绍了贝叶斯过滤技术的设计原理和实现步骤。最后总结了这几种过滤技术的不足之处和设计...

    基于ASP的反垃圾邮件管理系统的设计(源代码)

    研究了三种过滤垃圾邮件的方法,分别是黑白名单技术、主题关键字过滤技术和贝叶斯策略,对这三种技术的设计方法做了说明,重点介绍了贝叶斯过滤技术的设计原理和实现步骤。最后总结了这几种过滤技术的不足之处和设计...

    [计算机毕设]基于asp的反垃圾邮件管理系统设计与实现(源代码+项目报告).zip

    研究了三种过滤垃圾邮件的方法,分别是黑白名单技术、主题关键字过滤技术和贝叶斯策略,对这三种技术的设计方法做了说明,重点介绍了贝叶斯过滤技术的设计原理和实现步骤。最后总结了这几种过滤技术的不足之处和设计...

    论文研究-垃圾邮件过滤的贝叶斯方法综述.pdf

    目前,基于内容的垃圾邮件过滤问题是Internet安全技术研究的一个重点问题,将机器学习的相关方法应用于垃圾邮件的搜索和判定是进行大量垃圾邮件处理的有效方法。由于贝叶斯分类方法在垃圾邮件处理上表现出了很高的...

    基于ASP的反垃圾邮件管理系统的设计

    研究了三种过滤垃圾邮件的方法,分别是黑白名单技术、主题关键字过滤技术和贝叶斯策略,对这三种技术的设计方法做了说明,重点介绍了贝叶斯过滤技术的设计原理和实现步骤。最后总结了这几种过滤技术的不足之处和设计...

    基于贝叶斯技术的邮件过滤研究

    基于贝叶斯技术的邮件过滤技术,采用两种方法对垃圾邮件进行识别,内容浅显,可以参考. 查看时要使用CAJViewer.

    gems-bayesian:贝叶斯概率过滤器的 C# 版本,可用于将文本分类为好或坏的集合

    贝叶斯过滤是一种流行的统计技术,用于过滤电子邮件以检测垃圾邮件。 如果您将一组电子邮件分成两个不同的堆。 一堆包含垃圾邮件,另一堆包含非垃圾邮件,然后您可以计算属于垃圾邮件或非垃圾邮件堆的单词的统计...

    垃圾邮件过滤的贝叶斯方法综述.pdf

    目前,基于内容的垃圾邮件过滤问题是Internet安全技术研究的一个重点问题,将机器学习的相关方法应用于垃圾邮件的搜索和判定是进行大量垃圾邮件处理的有效方法。由于贝叶斯分类方法在垃圾邮件处理上表现出了很高的准确...

    GFI MailEssentials 12 for Exchange/SMTP_part2

    > 贝叶斯过滤技术提供了最高的垃圾邮件检测率(98%) > 正待批准专利的自动白名单功能提供最低的误报率 > 基于服务器的安装,无需客户端软件 > 允许用户从垃圾邮件文件夹中检查标记为垃圾邮件的邮件...

    GFI MailEssentials 12 for Exchange/SMTP_part3

    >贝叶斯过滤技术提供了最高的垃圾邮件检测率(98%) > 正待批准专利的自动白名单功能提供最低的误报率 > 基于服务器的安装,无需客户端软件 > 允许用户从垃圾邮件文件夹中检查标记为垃圾邮件的邮件...

    GFI MailEssentials 12 for Exchange/SMTP_part1

    >贝叶斯过滤技术提供了最高的垃圾邮件检测率(98%) > 正待批准专利的自动白名单功能提供最低的误报率 > 基于服务器的安装,无需客户端软件 > 允许用户从垃圾邮件文件夹中检查标记为垃圾邮件的邮件...

    贝叶斯算法(bayesian)介绍

    贝叶斯是基于概率的一种算法,是Thomas Bayes:一位伟大的数学大师所创建的,目前此种算法用于过滤垃圾...在智能邮件过滤技术中,贝叶斯(Bayesian)过滤技术取得了较大的成功,被越来越多地应用在反垃圾邮件的产品中。

    论文研究-基于贝叶斯算法的垃圾邮件过滤 .pdf

    基于贝叶斯算法的垃圾邮件过滤,曾志中,雷友珣,垃圾邮件过滤问题是Internet安全技术研究的一个重要的问题,而基于贝叶斯的垃圾邮件的分类方法在处理垃圾邮件上表现出了很高的准确�

    利用最小风险贝叶斯算法对邮件进行过滤

    利用最小风险贝叶斯算法对邮件进行过滤。包括三篇文章: 基于贝叶斯算法的垃圾邮件过滤技术的研究与改进; 基于Milter实现的中文垃圾邮件过滤系统; 基于认知学习的最小风险贝叶斯邮件过滤算法;

    基于贝叶斯算法的垃圾邮件过滤相关技术研究.pdf

    基于贝叶斯算法的垃圾邮件过滤相关技术研究.pdf

Global site tag (gtag.js) - Google Analytics